first commit
This commit is contained in:
261
docs/archive/领导演示资料/docs-scripts/export-all-pdf.sh
Executable file
261
docs/archive/领导演示资料/docs-scripts/export-all-pdf.sh
Executable file
@@ -0,0 +1,261 @@
|
||||
#!/bin/bash
|
||||
|
||||
# sgClaw 文档一键导出 PDF 脚本
|
||||
# 使用方法:chmod +x export-all-pdf.sh && ./export-all-pdf.sh
|
||||
|
||||
echo "============================================================"
|
||||
echo "📄 sgClaw 文档一键导出 PDF"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
|
||||
# 创建输出目录
|
||||
mkdir -p pdfs
|
||||
echo "✅ 创建输出目录: pdfs/"
|
||||
echo ""
|
||||
|
||||
# 定义需要导出的文档
|
||||
declare -A docs=(
|
||||
["协作时间表.html"]="协作时间表_interactive.pdf"
|
||||
["协作时间表_printable.md"]="协作时间表.pdf"
|
||||
["协作甘特图_printable.md"]="协作甘特图.pdf"
|
||||
["团队分工.md"]="团队分工.pdf"
|
||||
)
|
||||
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "📋 导出清单"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
|
||||
# 列出所有文件
|
||||
for src in "${!docs[@]}"; do
|
||||
if [ -f "$src" ]; then
|
||||
size=$(du -h "$src" | cut -f1)
|
||||
dst="${docs[$src]}"
|
||||
echo " 📄 $src ($size) → pdfs/$dst"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "🚀 选择导出方式"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "1) 自动导出(使用 wkhtmltopdf,需要安装)"
|
||||
echo "2) 浏览器手动打印(推荐,最美观)"
|
||||
echo "3) 在线工具(最简单)"
|
||||
echo "4) VS Code 插件(最专业)"
|
||||
echo ""
|
||||
read -p "请选择 (1-4): " choice
|
||||
|
||||
case $choice in
|
||||
1)
|
||||
# 检查 wkhtmltopdf 是否安装
|
||||
if ! command -v wkhtmltopdf &> /dev/null; then
|
||||
echo ""
|
||||
echo "⚠️ 未安装 wkhtmltopdf,正在尝试安装..."
|
||||
echo ""
|
||||
if command -v apt-get &> /dev/null; then
|
||||
sudo apt-get update && sudo apt-get install -y wkhtmltopdf
|
||||
elif command -v yum &> /dev/null; then
|
||||
sudo yum install -y wkhtmltopdf
|
||||
else
|
||||
echo "❌ 无法自动安装,请手动安装 wkhtmltopdf"
|
||||
echo " 访问: https://wkhtmltopdf.org/downloads.html"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "开始自动导出..."
|
||||
echo ""
|
||||
|
||||
# 导出 HTML 文件
|
||||
if [ -f "协作时间表.html" ]; then
|
||||
echo "📄 处理: 协作时间表.html"
|
||||
wkhtmltopdf --enable-local-file-access \
|
||||
--orientation Landscape \
|
||||
--page-size A4 \
|
||||
协作时间表.html \
|
||||
pdfs/协作时间表_interactive.pdf 2>/dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 成功: pdfs/协作时间表_interactive.pdf"
|
||||
else
|
||||
echo " ❌ 失败"
|
||||
fi
|
||||
fi
|
||||
|
||||
# 导出 Markdown 文件(先转 HTML)
|
||||
for md_file in 协作时间表_printable.md 协作甘特图_printable.md 团队分工.md; do
|
||||
if [ -f "$md_file" ]; then
|
||||
echo ""
|
||||
echo "📄 处理: $md_file"
|
||||
|
||||
# 创建临时 HTML
|
||||
temp_html="/tmp/${md_file%.md}.html"
|
||||
cat > "$temp_html" << 'HTML_HEAD'
|
||||
<!DOCTYPE html>
|
||||
<html lang="zh-CN">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<style>
|
||||
body {
|
||||
font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
|
||||
max-width: 900px;
|
||||
margin: 40px auto;
|
||||
padding: 20px;
|
||||
line-height: 1.8;
|
||||
}
|
||||
h1 { color: #1e40af; border-bottom: 3px solid #3b82f6; padding-bottom: 10px; }
|
||||
h2 { color: #2563eb; margin-top: 30px; }
|
||||
table { width: 100%; border-collapse: collapse; margin: 20px 0; }
|
||||
th, td { border: 1px solid #ddd; padding: 10px; }
|
||||
th { background: #3b82f6; color: white; }
|
||||
img { max-width: 100%; height: auto; }
|
||||
code { background: #f1f5f9; padding: 2px 6px; border-radius: 3px; }
|
||||
pre { background: #1e293b; color: #f1f5f9; padding: 15px; border-radius: 6px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
HTML_HEAD
|
||||
|
||||
# 简单的 Markdown to HTML(保留图片链接)
|
||||
sed 's/^# \(.*\)/<h1>\1<\/h1>/g; s/^## \(.*\)/<h2>\1<\/h2>/g; s/^### \(.*\)/<h3>\1<\/h3>/g' "$md_file" >> "$temp_html"
|
||||
|
||||
echo '</body></html>' >> "$temp_html"
|
||||
|
||||
# 转 PDF
|
||||
pdf_file="pdfs/${md_file%.md}.pdf"
|
||||
pdf_file="${pdf_file/_printable/}"
|
||||
|
||||
wkhtmltopdf --enable-local-file-access \
|
||||
--orientation Portrait \
|
||||
--page-size A4 \
|
||||
"$temp_html" \
|
||||
"$pdf_file" 2>/dev/null
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " ✅ 成功: $pdf_file"
|
||||
else
|
||||
echo " ❌ 失败"
|
||||
fi
|
||||
|
||||
rm -f "$temp_html"
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "✅ 导出完成!"
|
||||
;;
|
||||
|
||||
2)
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "🌐 浏览器手动打印步骤"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "正在打开文件..."
|
||||
firefox 协作时间表.html 2>/dev/null &
|
||||
sleep 1
|
||||
firefox 协作时间表_printable.md 2>/dev/null &
|
||||
sleep 1
|
||||
firefox 团队分工.md 2>/dev/null &
|
||||
echo ""
|
||||
echo "✅ 已在浏览器中打开文档"
|
||||
echo ""
|
||||
echo "对每个文件:"
|
||||
echo " 1. 按 Ctrl+P(或 Cmd+P)"
|
||||
echo " 2. 目标打印机:选择「另存为 PDF」"
|
||||
echo " 3. 方向:选择「横向」(甘特图)或「纵向」(其他)"
|
||||
echo " 4. 保存到 pdfs/ 目录"
|
||||
echo " 5. 点击「保存」"
|
||||
;;
|
||||
|
||||
3)
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "🌍 在线工具"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "推荐工具:"
|
||||
echo ""
|
||||
echo " 📄 Markdown to PDF:"
|
||||
echo " https://markdown2pdf.com"
|
||||
echo " https://www.markdowntopdf.com"
|
||||
echo ""
|
||||
echo " 🎨 HTML to PDF:"
|
||||
echo " https://www.sejda.com/html-to-pdf"
|
||||
echo " https://html2pdf.com"
|
||||
echo ""
|
||||
echo "使用步骤:"
|
||||
echo " 1. 访问上述网站"
|
||||
echo " 2. 上传文件(见下方文件列表)"
|
||||
echo " 3. 下载生成的 PDF"
|
||||
echo " 4. 保存到 pdfs/ 目录"
|
||||
echo ""
|
||||
echo "文件列表:"
|
||||
echo " • 协作时间表.html"
|
||||
echo " • 协作时间表_printable.md"
|
||||
echo " • 协作甘特图_printable.md"
|
||||
echo " • 团队分工.md"
|
||||
echo ""
|
||||
echo "文件位置: $(pwd)/"
|
||||
|
||||
# 打开文件管理器
|
||||
xdg-open . 2>/dev/null &
|
||||
;;
|
||||
|
||||
4)
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "📝 VS Code 插件方法"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "步骤:"
|
||||
echo " 1. 打开 VS Code"
|
||||
echo " 2. 安装插件:Markdown PDF"
|
||||
echo " (Ctrl+Shift+X 搜索 \"Markdown PDF\")"
|
||||
echo ""
|
||||
echo " 3. 打开 Markdown 文件:"
|
||||
echo " code 协作时间表_printable.md"
|
||||
echo " code 协作甘特图_printable.md"
|
||||
echo " code 团队分工.md"
|
||||
echo ""
|
||||
echo " 4. 右键 → \"Markdown PDF: Export (pdf)\""
|
||||
echo ""
|
||||
echo " 5. PDF 会自动保存到同目录"
|
||||
echo ""
|
||||
|
||||
# 提供快捷命令
|
||||
echo "快捷命令:"
|
||||
echo " code 协作时间表_printable.md &"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo ""
|
||||
echo "❌ 无效选择"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
echo ""
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo "📊 输出目录"
|
||||
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo ""
|
||||
echo "PDF 文件将保存到:"
|
||||
echo " $(pwd)/pdfs/"
|
||||
echo ""
|
||||
|
||||
# 列出已生成的 PDF
|
||||
if ls pdfs/*.pdf 1> /dev/null 2>&1; then
|
||||
echo "已生成的 PDF 文件:"
|
||||
ls -lh pdfs/*.pdf | awk '{printf " • %s (%s)\n", $9, $5}'
|
||||
else
|
||||
echo "(尚无 PDF 文件)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo "完成!🎉"
|
||||
echo "============================================================"
|
||||
Reference in New Issue
Block a user