Docling 处理 .doc 文件完整指南:从安装到成功运行

发布时间:2026/9/13 22:27:56
Docling 处理 .doc 文件完整指南:从安装到成功运行 Docling 处理 .doc 文件完整指南从安装到成功运行 背景说明本文记录了在 Linux 服务器无管理员权限上为 Docling 配置处理旧版.doc文件支持的全过程包括 LibreOffice 的安装、问题排查以及最终成功运行。环境信息操作系统Linux (Ubuntu/Debian 系)Python 环境Conda (toolorchestra)核心工具Docling LibreOffice 整体流程概览步骤操作关键命令1下载正确的 Linux 版 LibreOfficewget [下载链接]2解压并安装到用户目录./install ./RPMS ~/libreoffice3配置 PATH 环境变量export PATH.../program:$PATH4验证 LibreOffice 可用soffice --version5修改 Docling 脚本添加预处理添加.doc→.docx转换逻辑6运行测试python run_docling_test.py -i file.doc 第一步下载正确的 LibreOffice 安装包⚠️ 常见陷阱Windows 版.msi文件无法在 Linux 上使用必须下载 Linux 版下载链接可能失效建议从官方存档页面获取正确下载方式访问 LibreOffice 官方存档页面https://www.libreoffice.org/download/选择适合您系统的版本例如26.8.0.31.可以点击download然后下载到本地后拖到服务器对应的文件夹下比如我就是拖到了MaWenting/Agent/LongText目录下# 2.或者在服务器上执行示例请替换为实际可用链接wgethttps://downloadarchive.documentfoundation.org/libreoffice/old/26.8.0.3/linux/x86_64/LibreOffice_26.8.0.3_Linux_x86-64_rpm.tar.gz❌ 错误示例# 错误下载了 Windows 版本wgethttps://www.libreoffice.org/.../LibreOffice_26.8.0_Win_x86-64.msi# 无法在 Linux 使用 第二步解压并安装到用户目录如果终端开启了conda 环境记得执行conda deacyivate 退出环境# 1. 解压tar-xzvfLibreOffice_26.8.0.3_Linux_x86-64_rpm.tar.gz# 2. 进入解压目录cdLibreOffice_26.8.0.3_Linux_x86-64_rpm# 3. 执行安装注意需要两个参数./install ./RPMS ~/libreoffice命令执行结果如下❌ 常见的安装错误错误 1rpm: command not found执行图如下./install: line 141: rpm: command not found原因系统未安装rpm命令Ubuntu/Debian 默认没有。解决安装rpm或使用.deb版本## 没有sudo权限# 1. 进入 RPMS 目录cd/data/ZhaoShuyuan/Zhaoshuyuan/MaWenting/Agent/LongText/LibreOffice_26.8.0.3_Linux_x86-64_rpm/RPMS# 2. 创建目标目录mkdir-p/data/ZhaoShuyuan/Zhaoshuyuan/MaWenting/Agent/LongText/libreoffice# 3. 使用 rpm2cpio 和 cpio 手动解压这两个命令通常系统自带# 如果没有 rpm2cpio可以尝试安装sudo apt install rpm2cpioforrpmfilein*.rpm;doecho解压$rpmfile...rpm2cpio$rpmfile|cpio-idmv-D/data/ZhaoShuyuan/Zhaoshuyuan/MaWenting/Agent/LongText/libreoffice2/dev/nulldone执行结果如下# 法2 如果有sudo权限sudoaptinstallrpm# 如果有 sudo 权限# 或重新下载 .deb 版本错误 2./install: No such file or directorybash: ./install: No such file or directory原因当前在RPMS子目录中而install脚本在上一级目录。解决先cd ..返回上一级目录。错误 3参数数量不对Usage: ./install [-a,--add] [-l,--link] [-U,--update] [-h,--help] rpm-source-dir office-installation-dir原因只给了 1 个参数。正确用法./install ./RPMS ~/libreoffice# 第一个参数RPM 包所在目录# 第二个参数安装目标目录 第三步配置 PATH 环境变量安装完成后需要让系统能找到soffice命令# 查看 soffice 位置ls~/libreoffice/opt/libreoffice*/program/soffice# 添加到 PATH永久生效echoexport PATH$HOME/libreoffice/opt/libreoffice26.8/program:$PATH~/.bashrcsource~/.bashrc# 验证是否生效whichsoffice# 应输出/home/用户名/libreoffice/opt/libreoffice26.8/program/soffice✅ 第四步验证 LibreOffice 可用# 测试版本soffice--version# 输出示例LibreOffice 26.8.0.3 ...# 测试转换功能soffice--headless--convert-to docx--outdir/tmp test.doc成功得到版本结果 第五步修改 Docling 脚本添加预处理Docling 在识别某些.doc文件时可能错误地使用 Excel 后端因此需要在脚本中手动预处理。在run_docling_test.py中添加的代码在main()函数的文件处理循环中添加以下预处理逻辑# 在 for idx, source in enumerate(input_files, 1): 循环内部# 新增预处理 .doc 文件 ifos.path.isfile(source)andsource.lower().endswith(.doc):print( 检测到 .doc 文件正在使用 LibreOffice 转换为 .docx ...)try:docx_pathsource.rsplit(.,1)[0].docx# 如果 docx 已存在且比 doc 新跳过转换ifos.path.exists(docx_path)andos.path.getmtime(docx_path)os.path.getmtime(source):print(f ✓ 已存在转换后的文件:{docx_path}(跳过转换))sourcedocx_pathelse:importsubprocess cmd[soffice,--headless,--convert-to,docx,--outdir,os.path.dirname(source),source]resultsubprocess.run(cmd,capture_outputTrue,textTrue,timeout120)ifresult.returncode!0:print(f [警告] LibreOffice 转换失败:{result.stderr})elifos.path.exists(docx_path):print(f ✓ 转换成功:{docx_path})sourcedocx_pathelse:print( [警告] 转换完成但未找到输出文件)exceptExceptionase:print(f [警告] 预处理失败:{e})# 预处理结束 可选添加默认路径配置在脚本开头添加配置区域方便修改# 配置区域 DEFAULT_INPUT/your/default/path/document.docDEFAULT_OUTPUT./default_outputDEFAULT_FORMATSmarkdown,json,html,doctags# 然后修改argparse参数的default值。 第六步运行测试# 激活 Conda 环境conda activate toolorchestra# 运行脚本python run_docling_test.py\--input/path/to/your/document.doc\--output-dir ./output\--formatsmarkdown,json,html,doctags例如(toolorchestra)ZhaoShuyuansugon-X640-G40:~/Zhaoshuyuan/MaWenting/Agent/LongText$ python run_docling_test.py\--input/data/ZhaoShuyuan/Zhaoshuyuan/MaWenting/Agent/LongText/[QKSM] 财务情况说明书-2023年度财务情况说明书_久其北京海淀有限公司.doc\--output-dir ./docling_output_haidian\--formatsmarkdown,json,html,doctags成功输出示例✓ 转换成功: /path/to/document.docx ✓ 解析完成耗时: 4.22s 转换状态: ConversionStatus.SUCCESS ✓ [MARKDOWN] ./output/document.md (23.0 KB) ✓ [JSON ] ./output/document.json (529.7 KB) 成功处理 1 个文档 常见错误速查表错误信息原因解决方案rpm: command not found系统没有 rpm 命令安装 rpm 或使用 .deb 包./install: No such file or directory在错误的目录执行cd ..到脚本所在目录Usage: ./install rpm-source-dir office-installation-dir参数数量不对使用./install ./RPMS ~/libreofficeLibreOffice did not produce the expected outputDocling 错误识别文件类型手动预处理.doc→.docxsoffice: command not foundPATH 未配置添加soffice到 PATH 文件结构参考~/Zhaoshuyuan/MaWenting/Agent/LongText/ ├── LibreOffice_26.8.0.3_Linux_x86-64_rpm.tar.gz # 下载的安装包 ├── LibreOffice_26.8.0.3_Linux_x86-64_rpm/ # 解压后的目录 │ ├── install # 安装脚本 │ └── RPMS/ # RPM 包目录 ├── ~/libreoffice/ # 安装目标目录 │ └── opt/libreoffice26.8/program/ │ └── soffice # 主程序 ├── run_docling_test.py # 修改后的脚本 └── docling_output_haidian/ # 输出目录 ├── document.md ├── document.json ├── document.html ├── document.doctags.txt └── _processing_summary.json 关键总结LibreOffice 必须安装在 Linux 服务器上与 Conda 环境无关无管理员权限时可以安装到~/libreoffice用户目录.doc文件需要预处理为.docx避免 Docling 类型误判PATH 配置很重要确保soffice命令在任何位置都可用安装脚本需要两个参数RPM 源目录和目标目录最后更新2026-09-01环境Linux Conda Docling LibreOffice 26.8.0.3希望这份指南能帮助您和团队顺利处理.doc文件如有问题欢迎交流讨论。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询