闲社服务运行正常AI智能体自动化平台
p

PDF翻译

技能标识:pdf-translate

Translates PDF documents to Chinese with professional typography. Extracts text, translates section-by-section into well-structured Markdown, then generates PDF via weasyprint with full CJK support. Use when user asks to translate a PDF, says "翻译PDF", "translate this document", or "pdf translate".

作者:admin | 来源记录:ClawHub
登记来源
ClawHub
版本
V 4.0.0
检测标记
后台标记通过
免费
免费获取
0
收藏
来源与检测标记为平台登记信息,并不代表已展示可复核的检测报告。使用前请核对版本、依赖和所需权限,建议先在隔离环境中运行。
概述
安装方式
版本历史

PDF翻译

PDF 翻译技能

翻译 PDF 文档并生成排版精美的中文文档。输出 Markdown + PDF 双格式。

版本信息

当前版本: v4.0.0
发布日期: 2026-02-21

v4.0.0 变更

  • - 采用 Markdown-first 工作流:先生成结构化 Markdown,再转 PDF
  • PDF 引擎从 reportlab 切换为 weasyprint(支持完整 HTML/CSS 排版)
  • 修复代码块中文乱码问题(添加 CJK 字体 fallback)
  • 完整支持:标题层级、代码块、表格、列表、引用、粗体斜体
  • 新增 scripts/md2pdf.py 通用转换脚本

核心工作流

步骤 1: 提取 PDF 文本

python
import pdfplumber

pdf = pdfplumber.open(输入文件.pdf)
for i, page in enumerate(pdf.pages):
text = page.extract_text()
if text:
print(f--- 第 {i+1} 页 ---)
print(text)

长文档(>20 页)先提取前几页了解结构,再分批提取。

步骤 2: 分析文档结构

通读全文,识别以下元素并规划 Markdown 映射:

原文元素Markdown 映射
文档标题#
章节(Chapter)
## |
| 小节(Section) | ### |
| 子小节(Subsection) | #### |
| 目录 | 链接列表 - 章节名 |
| 正文段落 | 段落(空行分隔) |
| 代码块 | 围栏(不翻译内容) |
| 表格 | \| 列1 \| 列2 \| 语法 |
| 有序列表 | 1. 开头 |
| 无序列表 | - 开头 |
| 引用/提示框 | > 语法 |
| 页脚/页码 | 丢弃 |

步骤 3: 逐章节翻译为中文 Markdown

必须逐章节翻译,不要一次输出全文。每完成一个章节就追加写入文件。

翻译规则

  1. 1. 专有名词保留英文:首次出现时括号附英文,如渐进式披露(Progressive Disclosure)
  2. 代码块不翻译: 内代码保持原文,只翻译围栏外说明文字
  3. 行内代码不翻译:反引号内标识符、命令、文件名保持英文
  4. 保持层级结构:# → ## → ### → #### 不跳级
  5. 段落间必须空行:每个段落、列表、代码块、表格前后都要有空行
  6. 列表格式:- 或 1. 开头,嵌套用 2 空格缩进
  7. 表格格式:| 列1 | 列2 | 语法,必须有 |---|---| 分隔行
  8. 引用格式:> 开头

翻译质量标准

参见 translation-standards.md

  • - 三步翻译工作流:重写初稿 → 问题诊断 → 润色定稿
  • 四大语言转换策略:形合→意合、被动→主动、抽象→具体、精简冗余
  • 杜绝欧化表达和翻译腔

必须避免的格式错误

  • - ❌ 段落之间没有空行 → 文字挤在一起
  • ❌ 列表项前没有空行 → 不被识别为列表
  • ❌ 表格前后没有空行 → 表格无法渲染
  • ❌ 代码块 前后没有空行 → 代码块不显示
  • ❌ 标题 ## 前后没有空行 → 标题不识别
  • ❌ 翻译代码块内的代码
  • ❌ 一次性输出全部内容导致截断

步骤 4: 输出 Markdown 文件

写入 .md 文件,路径与原 PDF 同目录,文件名:原文件名_中文翻译.md

步骤 5: 生成 PDF

使用 scripts/md2pdf.py 将 Markdown 转为排版精美的 PDF:

bash
python3 ${SKILL_DIR}/scripts/md2pdf.py 输入.md 输出.pdf

macOS 上如果报 gobject 找不到:

bash
DYLDFALLBACKLIBRARYPATH=/opt/homebrew/lib python3 ${SKILLDIR}/scripts/md2pdf.py 输入.md 输出.pdf

也可以使用项目目录下的副本:

bash
python3 scripts/md2pdf.py 输入.md 输出.pdf

PDF 排版特性:

  • - A4 版面,自动分页,页码
  • 中文字体(苹方/黑体/雅黑)+ 英文字体 fallback
  • 深色背景代码块(支持中文注释)
  • 专业表格样式(交替行色、边框)
  • 蓝色左边框引用块
  • 标题层级样式(蓝色边线、字号递减)

步骤 6: 确认输出

翻译完成后告知用户:

  1. 1. .md 文件路径
  2. .pdf 文件路径
  3. 文档概况(页数、字数)

依赖安装

bash

macOS


brew install pango
pip3 install pdfplumber markdown weasyprint

旧方案依赖(仍可用)

pip3 install reportlab pypdf

脚本目录

脚本用途
scripts/md2pdf.py推荐 Markdown → PDF(weasyprint 引擎)
scripts/translate_pdf.py
旧版:基础 PDF 提取和生成(reportlab) | | scripts/generatecompletepdf.py | 旧版:完整工作流(reportlab) |

故障排除

问题解决方案
代码块中文乱码使用 md2pdf.py(v4.0,已修复 CJK font fallback)
weasyprint 报 gobject 找不到
DYLDFALLBACKLIBRARY_PATH=/opt/homebrew/lib | | 中文字体不显示 | 确认系统有苹方或黑体字体 | | Markdown 格式错乱 | 检查块级元素前后是否有空行 |

更多问题参见 troubleshooting.md



参考文档:

标签

skill ai

通过对话安装

以下为平台配置的接入选项,并非逐项实测通过。能否安装取决于客户端支持、技能来源和运行环境:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 pdf-translate-1776281938 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 pdf-translate-1776281938 技能

通过命令行安装

skillhub install pdf-translate-1776281938

下载

⬇ 下载 pdf-translate v4.0.0(免费)

文件大小: 42.15 KB | 发布时间: 2026-4-16 17:08

v4.0.0 最新 2026-4-16 17:08
Initial release of PDF translation tool with professional Markdown-to-PDF workflow.

- Provides section-by-section translation of PDFs to Chinese, preserving document structure in Markdown.
- Generates high-quality PDFs from Markdown using weasyprint with full CJK (Chinese, Japanese, Korean) font support and modern typography.
- Fixes previous issues with code blocks displaying Chinese characters incorrectly.
- Includes robust handling of tables, lists, code, blockquotes, and headings.
- Adds `scripts/md2pdf.py` for universal Markdown-to-PDF conversion.
- Reference guides cover translation standards, font configuration, troubleshooting, and complete workflow examples.
返回顶部