fafaniuniu 0b0f6e2880 commit 1 месяц назад
..
src 0b0f6e2880 commit 1 месяц назад
.gitignore 0b0f6e2880 commit 1 месяц назад
README.md 0b0f6e2880 commit 1 месяц назад
package-lock.json 0b0f6e2880 commit 1 месяц назад
package.json 0b0f6e2880 commit 1 месяц назад

README.md

doc2markdown-node POC

这是一个独立的 Node.js 文档转 Markdown 验证项目,不接入当前 Python 后端和 React 前端。

支持范围

  • Markdown:读取 .md / .markdown,可选择内联本地图片。
  • DOCX:使用 mammoth 转 HTML,再用 turndown 转 GitHub Flavored Markdown。
  • PDF:使用 pdf-parse 提取文本、表格;开启 --include-images 时尝试追加图片 data URI。
  • DOC/WPS:调用本机 LibreOffice 转 DOCX 后继续转换。

不支持 OCR。扫描版 PDF 如果没有可选中文字层,会报错。

安装

cd tools\doc2markdown-node
npm install

单文件测试

npm run convert -- "D:\path\test.docx" --out ".\out\test.md"
npm run convert -- "D:\path\test.pdf" --out ".\out\test-pdf.md"
npm run convert -- "D:\path\test.pdf" --include-images --out ".\out\test-pdf-images.md"

不指定 --out 时会直接输出到控制台:

npm run convert -- "D:\path\test.md"

批量冒烟测试

npm run smoke -- "D:\CodeSpace\personal-secretary\Scripts\Word转Markdown\测试文件"
npm run smoke -- "D:\CodeSpace\personal-secretary\Scripts\Word转Markdown\测试文件" --out-dir ".\out"
npm run smoke -- "D:\CodeSpace\personal-secretary\Scripts\Word转Markdown\测试文件" --include-images --out-dir ".\out-images"

输出示例:

OK  test.docx -> 12345 chars
FAIL scan.pdf: PDF 未检测到可选中文字层

DOC/WPS 说明

.doc / .wps 需要本机安装 LibreOffice,并且能找到 soffice。如果没有加入 PATH,会自动尝试以下路径:

  • C:\Program Files\LibreOffice\program\soffice.exe
  • C:\Program Files (x86)\LibreOffice\program\soffice.exe

也可以手动指定:

$env:LIBREOFFICE_PATH = "C:\Program Files\LibreOffice\program\soffice.exe"
npm run convert -- "D:\path\old.doc" --out ".\out\old.md"