用途:把一份 PDF 从一种语言翻译成另一种语言,流程为提取结构化 Markdown、翻译、再生成新 PDF。
用法:命令格式为 /translate-pdf <path-to-pdf> <source-language> <target-language>,例如 /translate-pdf ./report.pdf French English、/translate-pdf invoice.pdf German French。缺参数会提示用法并停止;文件不存在或非 .pdf 会报错停止。
主要能力:用 PyMuPDF 提取文本,并用其 find_tables() 自动识别表格、转换为 Markdown 表格;翻译时保留标题、加粗、斜体、列表、表格、代码块、链接、图片引用、分页注释与分隔线,代码片段、URL、文件路径、品牌与产品名、技术标识符不翻译。
依赖与用法:脚本位于 skills/translate-pdf/translate_pdf.py,需要 pymupdf、markdown、weasyprint;weasyprint 还需系统库 cairo、pango、gdk-pixbuf。安装命令:pip install pymupdf markdown weasyprint;macOS 用 brew install cairo pango gdk-pixbuf libffi;Ubuntu/Debian 用 sudo apt install libcairo2-dev libpango1.0-dev libgdk-pixbuf2.0-dev libffi-dev。检查依赖:python3 -c "import fitz; import markdown; from weasyprint import HTML; print('OK')"。提取:python3 <repo-root>/skills/translate-pdf/translate_pdf.py extract "<pdf-path>" -o "<output-dir>/<filename>source.md";构建:python3 <repo-root>/skills/translate-pdf/translate_pdf.py build "<output-dir>/<filename><target-language>.md" -o "<output-dir>/<filename><target-language>.pdf"。输出与源 PDF 同目录,生成 source.md、<target-language>.md、<target-language>.pdf。
适用场景:需要保留版式与表格的文档翻译。
限制:加密 PDF 直接报错停止;无可提取文本(扫描/图片 PDF)会警告并停止,建议先做 OCR;提取后需人工核对表格是否被完整识别,缺失或格式错乱的手工修复;weasyprint 缺系统库时构建失败并给出对应安装说明;源语言与目标语言相同时先警告并确认。