docxlisted
Install: claude install-skill Fantasia1999/skills-zh
# DOCX 创建、编辑与分析
## 概述
.docx 文件是一个包含 XML 文件的 ZIP 压缩包。
## 快速参考
| 任务 | 方法 |
|------|----------|
| 读取/分析内容 | `pandoc` 或解包以获取原始 XML |
| 创建新文档 | 使用 `docx-js` - 参见下文的“创建新文档” |
| 编辑现有文档 | 解包 → 编辑 XML → 重新打包 - 参见下文的“编辑现有文档” |
### 将 .doc 转换为 .docx
旧版的 `.doc` 文件在编辑前必须进行转换:
```bash
python scripts/office/soffice.py --headless --convert-to docx document.doc
```
### 读取内容
```bash
# 提取带有修订记录的文本
pandoc --track-changes=all document.docx -o output.md
# 访问原始 XML
python scripts/office/unpack.py document.docx unpacked/
```
### 转换为图片
```bash
python scripts/office/soffice.py --headless --convert-to pdf document.docx
pdftoppm -jpeg -r 150 document.pdf page
```
### 接受修订
要生成一个接受了所有修订的干净文档(���要 LibreOffice):
```bash
python scripts/accept_changes.py input.docx output.docx
```
---
## 创建新文档
使用 JavaScript 生成 .docx 文件,然后进行验证。安装:`npm install -g docx`
### 设置
```javascript
const { Document, Packer, Paragraph, TextRun, Table, TableRow, TableCell, ImageRun,
Header, Footer, AlignmentType, PageOrientation, LevelFormat, ExternalHyperlink,
InternalHyperlink, Bookmark, FootnoteReferenceRun, PositionalTab,
PositionalTabAlignment, PositionalTabRelativeTo, PositionalTabLeader,
TabStopType, TabStopPosition, Column, SectionType,
TableOfContents, HeadingLevel, BorderStyle, WidthType, ShadingType,
VerticalAlign, PageNumber, PageBreak } = require('docx');
const doc = new Document({ sections: [{ children: [/* content */] }] });
Packer.toBuffer(doc).then(buffer