docx
npx skills add https://github.com/marcelleon/skills-zh --skill docx
Agent 安装分布
Skill 文档
DOCX å建ãç¼è¾ååæ
æ¦è¿°
ç¨æ·å¯è½ä¼è¦æ±æ¨å建ãç¼è¾æåæ .docx æä»¶çå 容ã.docx æä»¶æ¬è´¨ä¸æ¯ä¸ä¸ªå å« XML æä»¶åå ¶ä»èµæºç ZIP åæ¡£ï¼æ¨å¯ä»¥è¯»åæç¼è¾ãæ¨æä¸åçå·¥å ·å工使µç¨å¯ç¨äºä¸åçä»»å¡ã
工使µç¨å³çæ
读å/åæå 容
使ç¨ä¸é¢ç”ææ¬æå”æ”åå§ XML 访鮔é¨å
åå»ºæ°ææ¡£
使稔åå»ºæ° Word ææ¡£”工使µç¨
ç¼è¾ç°æææ¡£
-
æ¨èªå·±çææ¡£ + ç®åæ´æ¹ ä½¿ç¨”åºæ¬ OOXML ç¼è¾”工使µç¨
-
ä»äººçææ¡£ 使ç¨**”ä¿®è®¢è¿½è¸ªå·¥ä½æµç¨”**ï¼æ¨èé»è®¤ï¼
-
æ³å¾ã妿¯ãå䏿æ¿åºææ¡£ 使ç¨**”ä¿®è®¢è¿½è¸ªå·¥ä½æµç¨”**ï¼å¿ éï¼
读åååæå 容
ææ¬æå
妿æ¨åªéè¦è¯»åææ¡£çææ¬å 容ï¼åºè¯¥ä½¿ç¨ pandoc å°ææ¡£è½¬æ¢ä¸º markdownãPandoc 为ä¿çææ¡£ç»ææä¾äºåºè²çæ¯æï¼å¹¶å¯ä»¥æ¾ç¤ºä¿®è®¢è¿½è¸ªï¼
# å°ææ¡£è½¬æ¢ä¸ºå¸¦ä¿®è®¢è¿½è¸ªç markdown
pandoc --track-changes=all path-to-file.docx -o output.md
# é项ï¼--track-changes=accept/reject/all
åå§ XML 访é®
æ¨éè¦åå§ XML 访é®ä»¥å¤çï¼è¯è®ºãå¤ææ ¼å¼ãææ¡£ç»æãåµå ¥åªä½åå æ°æ®ã对äºè¿äºåè½ä¸çä»»ä½ä¸ä¸ªï¼æ¨é½éè¦è§£å ææ¡£å¹¶è¯»åå ¶åå§ XML å 容ã
è§£å æä»¶
python ooxml/scripts/unpack.py <office_file> <output_directory>
å ³é®æä»¶ç»æ
word/document.xml– ä¸»ææ¡£å 容word/comments.xml– å¨ document.xml ä¸å¼ç¨çè¯è®ºword/media/– åµå ¥çå¾åååªä½æä»¶- 修订追踪使ç¨
<w:ins>ï¼æå ¥ï¼å<w:del>ï¼å é¤ï¼æ ç¾
åå»ºæ° Word ææ¡£
ä»å¤´å¼å§åå»ºæ° Word ææ¡£æ¶ï¼ä½¿ç¨ docx-jsï¼å®å 许æ¨ä½¿ç¨ JavaScript/TypeScript å建 Word ææ¡£ã
工使µç¨
- å¿
é¡» – 宿´è¯»åæä»¶ï¼ä»å¤´å°å°¾å®æ´é
读
docx-js.mdï¼çº¦ 500 è¡ï¼ãè¯»åæ¤æä»¶æ¶ç»ä¸è¦è®¾ç½®ä»»ä½èå´éå¶ã å¨ç»§ç»åå»ºææ¡£ä¹åï¼è¯·é è¯»å®æ´çæä»¶å 容以äºè§£è¯¦ç»çè¯æ³ãå ³é®æ ¼å¼è§ååæä½³å®è·µã - ä½¿ç¨ DocumentãParagraphãTextRun ç»ä»¶å建 JavaScript/TypeScript æä»¶ï¼æ¨å¯ä»¥å设ææä¾èµé¡¹å·²å®è£ ï¼å¦ææ²¡æï¼è¯·åé ä¸é¢çä¾èµé¡¹é¨åï¼
- ä½¿ç¨ Packer.toBuffer() 导åºä¸º .docx
ç¼è¾ç°æ Word ææ¡£
ç¼è¾ç°æ Word ææ¡£æ¶ï¼ä½¿ç¨ Document åºï¼ç¨äº OOXML æä½ç Python åºï¼ã该åºèªå¨å¤çåºç¡è®¾æ½è®¾ç½®ï¼å¹¶æä¾ææ¡£æä½æ¹æ³ã对äºå¤æåºæ¯ï¼æ¨å¯ä»¥éè¿è¯¥åºç´æ¥è®¿é®åºå± DOMã
工使µç¨
- å¿
é¡» – 宿´è¯»åæä»¶ï¼ä»å¤´å°å°¾å®æ´é
读
ooxml.mdï¼çº¦ 600 è¡ï¼ãè¯»åæ¤æä»¶æ¶ç»ä¸è¦è®¾ç½®ä»»ä½èå´éå¶ã é è¯»å®æ´çæä»¶å 容以äºè§£ Document åº API åç¨äºç´æ¥ç¼è¾ææ¡£æä»¶ç XML 模å¼ã - è§£å
ææ¡£ï¼
python ooxml/scripts/unpack.py <office_file> <output_directory> - ä½¿ç¨ Document åºå建并è¿è¡ Python èæ¬ï¼åè§ ooxml.md ä¸ç”Document 应é¨åï¼
- æå
æç»ææ¡£ï¼
python ooxml/scripts/pack.py <input_directory> <office_file>
Document åºä¸ºå¸¸è§æä½æä¾é«çº§æ¹æ³ï¼ä¸ºå¤æåºæ¯æä¾ç´æ¥ DOM 访é®ã
ææ¡£å®¡é çä¿®è®¢è¿½è¸ªå·¥ä½æµç¨
æ¤å·¥ä½æµç¨å 许æ¨å¨å®ç°å° OOXML ä¹åä½¿ç¨ markdown è§åå ¨é¢ç修订追踪ãå ³é®ï¼å¯¹äºå®æ´çä¿®è®¢è¿½è¸ªï¼æ¨å¿ 须系ç»å°å®æ½æææ´æ¹ã
æ¹å¤ççç¥ï¼å°ç¸å ³æ´æ¹åç»ä¸º 3-10 ä¸ªæ´æ¹çæ¹æ¬¡ãè¿ä½¿è°è¯å¯ç®¡çï¼åæ¶ä¿ææçãå¨ç»§ç»ä¸ä¸æ¹ä¹åæµè¯æ¯ä¸æ¹ã
ååï¼æå°ã精确çç¼è¾
宿½ä¿®è®¢è¿½è¸ªæ¶ï¼ä»
æ è®°å®é
æ´æ¹çææ¬ãé夿ªæ´æ¹çææ¬ä¼ä½¿ç¼è¾æ´é¾å®¡é
ï¼å¹¶æ¾å¾ä¸ä¸ä¸ãå°æ¿æ¢å解为ï¼[æªæ´æ¹çææ¬] + [å é¤] + [æå
¥] + [æªæ´æ¹çææ¬]ãéè¿ä»åå§ä¸æå <w:r> å
ç´ å¹¶éç¨å®æ¥ä¿çæªæ´æ¹ææ¬çåå§ run ç RSIDã
ç¤ºä¾ – å°å¥åä¸ç”30天”æ´æ¹ä¸º”60天”ï¼
# ä¸å¥½ - æ¿æ¢æ´ä¸ªå¥å
'<w:del><w:r><w:delText>æé为30天ã</w:delText></w:r></w:del><w:ins><w:r><w:t>æé为60天ã</w:t></w:r></w:ins>'
# 好 - ä»
æ è®°æ´æ¹çå
容ï¼ä¸ºæªæ´æ¹çææ¬ä¿çåå§ <w:r>
'<w:r w:rsidR=\"00AB12CD\"><w:t>æé为 </w:t></w:r><w:del><w:r><w:delText>30</w:delText></w:r></w:del><w:ins><w:r><w:t>60</w:t></w:r></w:ins><w:r w:rsidR=\"00AB12CD\"><w:t> 天ã</w:t></w:r>'
ä¿®è®¢è¿½è¸ªå·¥ä½æµç¨
-
è·å markdown 表示ï¼å°ææ¡£è½¬æ¢ä¸ºä¿ç修订追踪ç markdownï¼
pandoc --track-changes=all path-to-file.docx -o current.md -
è¯å«å¹¶åç»æ´æ¹ï¼å®¡é ææ¡£å¹¶è¯å«æéçæææ´æ¹ï¼å°å®ä»¬ç»ç»æé»è¾æ¹æ¬¡ï¼
å®ä½æ¹æ³ï¼ç¨äºå¨ XML 䏿¥æ¾æ´æ¹ï¼ï¼
- é¨å/æ é¢ç¼å·ï¼ä¾å¦ï¼”第 3.2 è”ã”ç¬¬åæ¡”ï¼
- æ®µè½æ è¯ç¬¦ï¼å¦æç¼å·ï¼
- å ·æå¯ä¸å¨å´ææ¬ç Grep 模å¼
- ææ¡£ç»æï¼ä¾å¦ï¼”ç¬¬ä¸æ®µ”ã”ç¾åå”ï¼
- ä¸è¦ä½¿ç¨ markdown è¡å· – å®ä»¬ä¸æ å°å° XML ç»æ
æ¹æ¬¡ç»ç»ï¼æ¯æ¹åç» 3-10 个ç¸å ³æ´æ¹ï¼ï¼
- æé¨åï¼”æ¹æ¬¡ 1ï¼ç¬¬ 2 è修订”ã”æ¹æ¬¡ 2ï¼ç¬¬ 5 èæ´æ°”
- æç±»åï¼”æ¹æ¬¡ 1ï¼æ¥ææ´æ£”ã”æ¹æ¬¡ 2ï¼å½äºäººåç§°æ´æ¹”
- æå¤ææ§ï¼ä»ç®åçææ¬æ¿æ¢å¼å§ï¼ç¶åå¤ç夿çç»ææ´æ¹
- 顺åºï¼”æ¹æ¬¡ 1ï¼ç¬¬ 1-3 页”ã”æ¹æ¬¡ 2ï¼ç¬¬ 4-6 页”
-
è¯»åææ¡£å¹¶è§£å ï¼
- å¿
é¡» – 宿´è¯»åæä»¶ï¼ä»å¤´å°å°¾å®æ´é
读
ooxml.mdï¼çº¦ 600 è¡ï¼ãè¯»åæ¤æä»¶æ¶ç»ä¸è¦è®¾ç½®ä»»ä½èå´éå¶ã ç¹å«æ³¨æ”Document 应å”修订追踪模弔é¨åã - è§£å
ææ¡£ï¼
python ooxml/scripts/unpack.py <file.docx> <dir> - è®°ä¸å»ºè®®ç RSIDï¼è§£å èæ¬å°å»ºè®®ç¨äºä¿®è®¢è¿½è¸ªç RSIDãå¤å¶æ¤ RSID 以卿¥éª¤ 4b ä¸ä½¿ç¨ã
- å¿
é¡» – 宿´è¯»åæä»¶ï¼ä»å¤´å°å°¾å®æ´é
读
-
忹宿½æ´æ¹ï¼å°æ´æ¹é»è¾åç»ï¼æé¨åãæç±»åæææ¥è¿ç¨åº¦ï¼ï¼å¹¶å¨åä¸ªèæ¬ä¸ä¸èµ·å®æ½å®ä»¬ãè¿ç§æ¹æ³ï¼
- 使è°è¯æ´å®¹æï¼æ´å°çæ¹æ¬¡ = æ´å®¹æé离é误ï¼
- å 许å¢éè¿åº¦
- ä¿ææçï¼3-10 ä¸ªæ´æ¹çæ¹æ¬¡å¤§å°ææå¾å¥½ï¼
å»ºè®®çæ¹æ¬¡åç»ï¼
- æææ¡£é¨åï¼ä¾å¦ï¼”第 3 èæ´æ¹”ã”å®ä¹”ã”ç»æ¢æ¡æ¬¾”ï¼
- ææ´æ¹ç±»åï¼ä¾å¦ï¼”æ¥ææ´æ¹”ã”å½äºäººåç§°æ´æ°”ã”æ³å¾æ¯è¯æ¿æ¢”ï¼
- ææ¥è¿ç¨åº¦ï¼ä¾å¦ï¼”第 1-3 é¡µçæ´æ¹”ã”ææ¡£ååé¨åçæ´æ¹”ï¼
å¯¹äºæ¯æ¹ç¸å ³æ´æ¹ï¼
a. å°ææ¬æ å°å° XMLï¼å¨
word/document.xmlä¸ Grep ææ¬ä»¥éªè¯ææ¬å¦ä½å¨<w:r>å ç´ ä¹é´æåãb. å建并è¿è¡èæ¬ï¼ä½¿ç¨
get_nodeæ¥æ¾èç¹ï¼å®æ½æ´æ¹ï¼ç¶ådoc.save()ãåè§ ooxml.md ä¸ç**”Document 应**é¨åçæ¨¡å¼ã注æï¼å¨ç¼åèæ¬ä¹åï¼å§ç»ç«å³ grep
word/document.xml以è·åå½åè¡å·å¹¶éªè¯ææ¬å å®¹ãæ¯æ¬¡èæ¬è¿è¡åè¡å·é½ä¼æ´æ¹ã -
æå ææ¡£ï¼æææ¹æ¬¡å®æåï¼å°è§£å çç®å½è½¬æ¢å .docxï¼
python ooxml/scripts/pack.py unpacked reviewed-document.docx -
æç»éªè¯ï¼å¯¹å®æ´ææ¡£è¿è¡å ¨é¢æ£æ¥ï¼
- å°æç»ææ¡£è½¬æ¢ä¸º markdownï¼
pandoc --track-changes=all reviewed-document.docx -o verification.md - éªè¯æææ´æ¹é½å·²æ£ç¡®åºç¨ï¼
grep "åå§çè¯" verification.md # ä¸åºæ¾å° grep "æ¿æ¢çè¯" verification.md # åºè¯¥æ¾å° - æ£æ¥æ¯å¦å¼å ¥äºæå¤æ´æ¹
- å°æç»ææ¡£è½¬æ¢ä¸º markdownï¼
å°ææ¡£è½¬æ¢ä¸ºå¾å
è¦ç´è§å°åæ Word ææ¡£ï¼è¯·ä½¿ç¨ä¸¤æ¥è¿ç¨å°å ¶è½¬æ¢ä¸ºå¾åï¼
-
å° DOCX 转æ¢ä¸º PDFï¼
soffice --headless --convert-to pdf document.docx -
å° PDF 页é¢è½¬æ¢ä¸º JPEG å¾åï¼
pdftoppm -jpeg -r 150 document.pdf pageè¿å°å建类似
page-1.jpgãpage-2.jpgççæä»¶ã
é项ï¼
-r 150ï¼å°å辨ç设置为 150 DPIï¼è°æ´è´¨é/大å°å¹³è¡¡ï¼-jpegï¼è¾åº JPEG æ ¼å¼ï¼å¦æéè¦ï¼ä½¿ç¨-pngè¾åº PNGï¼-f Nï¼è¦è½¬æ¢ç第ä¸é¡µï¼ä¾å¦ï¼-f 2ä»ç¬¬ 2 页å¼å§ï¼-l Nï¼è¦è½¬æ¢çæåä¸é¡µï¼ä¾å¦ï¼-l 5å¨ç¬¬ 5 页忢ï¼pageï¼è¾åºæä»¶çåç¼
ç¹å®èå´ç示ä¾ï¼
pdftoppm -jpeg -r 150 -f 2 -l 5 document.pdf page # ä»
转æ¢ç¬¬ 2-5 页
代ç 飿 ¼æå
éè¦ï¼ä¸º DOCX æä½çæä»£ç æ¶ï¼
- ç¼åç®æ´ç代ç
- é¿å åé¿çåéååå使ä½
- é¿å ä¸å¿ è¦ç print è¯å¥
ä¾èµé¡¹
æéçä¾èµé¡¹ï¼å¦æä¸å¯ç¨åå®è£ ï¼ï¼
- pandocï¼
sudo apt-get install pandocï¼ç¨äºææ¬æåï¼ - docxï¼
npm install -g docxï¼ç¨äºåå»ºæ°ææ¡£ï¼ - LibreOfficeï¼
sudo apt-get install libreofficeï¼ç¨äº PDF 转æ¢ï¼ - Popplerï¼
sudo apt-get install poppler-utilsï¼ç¨äº pdftoppm å° PDF 转æ¢ä¸ºå¾åï¼ - defusedxmlï¼
pip install defusedxmlï¼ç¨äºå®å ¨ç XML è§£æï¼