pdf-translate
2
总安装量
2
周安装量
#70912
全站排名
安装命令
npx skills add https://github.com/chrislee121/pdf-translate-skill --skill pdf-translate
Agent 安装分布
openclaw
2
gemini-cli
2
claude-code
2
github-copilot
2
codex
2
kimi-cli
2
Skill 文档
PDF Translation Skill
ç¿»è¯ 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éç¨è½¬æ¢èæ¬
æ ¸å¿å·¥ä½æµ
Step 1: æå PDF ææ¬
import pdfplumber
pdf = pdfplumber.open("è¾å
¥æä»¶.pdf")
for i, page in enumerate(pdf.pages):
text = page.extract_text()
if text:
print(f"--- Page {i+1} ---")
print(text)
é¿ææ¡£ï¼>20 页ï¼å æååå 页äºè§£ç»æï¼ååæ¹æåã
Step 2: åæææ¡£ç»æ
éè¯»å ¨æï¼è¯å«ä»¥ä¸å ç´ å¹¶è§å Markdown æ å°ï¼
| åæå ç´ | Markdown æ å° |
|---|---|
| ææ¡£æ é¢ | # |
| ç« èï¼Chapterï¼ | ## |
| å°èï¼Sectionï¼ | ### |
| åå°èï¼Subsectionï¼ | #### |
| ç®å½ | 龿¥å表 - [ç« èå](#éç¹) |
| æ£ææ®µè½ | 段è½ï¼ç©ºè¡åéï¼ |
| 代ç å | ``` å´æ ï¼ä¸ç¿»è¯å
å®¹ï¼ |
| è¡¨æ ¼ | | å1 | å2 | è¯æ³ |
| æåºå表 | 1. å¼å¤´ |
| æ åºå表 | - å¼å¤´ |
| å¼ç¨/æç¤ºæ¡ | > è¯æ³ |
| 页è/页ç | ä¸¢å¼ |
Step 3: éç« èç¿»è¯ä¸ºä¸æ Markdown
å¿ é¡»éç« èç¿»è¯ï¼ä¸è¦ä¸æ¬¡è¾åºå ¨æãæ¯å®æä¸ä¸ªç« è就追å åå ¥æä»¶ã
ç¿»è¯è§å
- 䏿åè¯ä¿çè±æï¼é¦æ¬¡åºç°æ¶æ¬å·éè±æï¼å¦”æ¸è¿å¼æ«é²ï¼Progressive Disclosureï¼”
- 代ç åä¸ç¿»è¯ï¼
```å 代ç ä¿æåæï¼åªç¿»è¯å´æ å¤è¯´ææå - è¡å 代ç ä¸ç¿»è¯ï¼åå¼å·å æ è¯ç¬¦ãå½ä»¤ãæä»¶åä¿æè±æ
- ä¿æå±çº§ç»æï¼
#â##â###â####ä¸è·³çº§ - 段è½é´å¿ 须空è¡ï¼æ¯ä¸ªæ®µè½ãå表ã代ç åãè¡¨æ ¼ååé½è¦æç©ºè¡
- åè¡¨æ ¼å¼ï¼
-æ1.å¼å¤´ï¼åµå¥ç¨ 2 ç©ºæ ¼ç¼©è¿ - è¡¨æ ¼æ ¼å¼ï¼
| å1 | å2 |è¯æ³ï¼å¿ é¡»æ|---|---|åéè¡ - å¼ç¨æ ¼å¼ï¼
>å¼å¤´
ç¿»è¯è´¨éæ å
åè§ translation-standards.md
- 䏿¥ç¿»è¯å·¥ä½æµï¼éåå稿 â é®é¢è¯æ â æ¶¦è²å®ç¨¿
- å大è¯è¨è½¬æ¢çç¥ï¼å½¢åâæåã被å¨â主å¨ãæ½è±¡âå ·ä½ãç²¾ç®åä½
- æç»”欧å表达”å”ç¿»è¯è ”
å¿ é¡»é¿å çæ ¼å¼é误
- â æ®µè½ä¹é´æ²¡æç©ºè¡ â æåæ¤å¨ä¸èµ·
- â åè¡¨é¡¹åæ²¡æç©ºè¡ â ä¸è¢«è¯å«ä¸ºå表
- â è¡¨æ ¼ååæ²¡æç©ºè¡ â è¡¨æ ¼æ æ³æ¸²æ
- â 代ç å
```ååæ²¡æç©ºè¡ â 代ç å䏿¾ç¤º - â æ é¢
##ååæ²¡æç©ºè¡ â æ é¢ä¸è¯å« - â ç¿»è¯ä»£ç åå ç代ç
- â 䏿¬¡æ§è¾åºå ¨é¨å å®¹å¯¼è´æªæ
Step 4: è¾åº Markdown æä»¶
åå
¥ .md æä»¶ï¼è·¯å¾ä¸å PDF åç®å½ï¼æä»¶åï¼åæä»¶å_ä¸æç¿»è¯.md
Step 5: çæ PDF
ä½¿ç¨ scripts/md2pdf.py å° Markdown 转为æçç²¾ç¾ç PDFï¼
python3 ${SKILL_DIR}/scripts/md2pdf.py "è¾å
¥.md" "è¾åº.pdf"
macOS ä¸å¦ææ¥ gobject æ¾ä¸å°ï¼
DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib" python3 ${SKILL_DIR}/scripts/md2pdf.py "è¾å
¥.md" "è¾åº.pdf"
ä¹å¯ä»¥ä½¿ç¨é¡¹ç®ç®å½ä¸ç坿¬ï¼
python3 scripts/md2pdf.py "è¾å
¥.md" "è¾åº.pdf"
PDF æçç¹æ§ï¼
- A4 çé¢ï¼èªå¨å页ï¼é¡µç
- 䏿åä½ï¼è¹æ¹/é»ä½/é é»ï¼+ è±æåä½ fallback
- æ·±è²èæ¯ä»£ç åï¼æ¯æä¸ææ³¨éï¼
- ä¸ä¸è¡¨æ ¼æ ·å¼ï¼äº¤æ¿è¡è²ãè¾¹æ¡ï¼
- èè²å·¦è¾¹æ¡å¼ç¨å
- æ é¢å±çº§æ ·å¼ï¼èè²è¾¹çº¿ãåå·éåï¼
Step 6: 确认è¾åº
ç¿»è¯å®æååç¥ç¨æ·ï¼
.mdæä»¶è·¯å¾.pdfæä»¶è·¯å¾- ææ¡£æ¦åµï¼é¡µæ°ãåæ°ï¼
ä¾èµå®è£
# 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/generate_complete_pdf.py |
æ§çï¼å®æ´å·¥ä½æµï¼reportlabï¼ |
æ éæé¤
| é®é¢ | è§£å³æ¹æ¡ |
|---|---|
| 代ç å䏿乱ç | ä½¿ç¨ md2pdf.pyï¼v4.0ï¼å·²ä¿®å¤ CJK font fallbackï¼ |
| weasyprint æ¥ gobject æ¾ä¸å° | DYLD_FALLBACK_LIBRARY_PATH="/opt/homebrew/lib" |
| 䏿åä½ä¸æ¾ç¤º | ç¡®è®¤ç³»ç»æè¹æ¹æé»ä½åä½ |
| Markdown æ ¼å¼éä¹± | æ£æ¥å级å ç´ ååæ¯å¦æç©ºè¡ |
æ´å¤é®é¢åè§ troubleshooting.md
åèææ¡£ï¼