公司动态

Docling 文档解析快速指南:一条命令把 PDF 转 Markdown

📅 2026/8/30 11:31:07
Docling 文档解析快速指南:一条命令把 PDF 转 Markdown
Docling 文档解析快速指南一条命令把 PDF 转 Markdown【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling输入一条命令带表格的 28 页 PDF 几分钟内变成结构完整的 Markdown。Docling 是开源文档解析工具20 多种格式统一接入输出结构化文档可导出 Markdown、JSON直接喂给 AI。 Docling 解决什么文档解析问题给 RAG 或 AI 应用备料时卡点往往在同一步原始材料散落在 PDF、Word、邮件、表格里各取各的文字格式很难统一。传统文本抽取工具把表格拍平成一串字符公式变乱码双栏版面按物理坐标从上到下切读出来的顺序是错的。Docling 用一条统一管线处理这件事前端负责读各种格式中间是版面、阅读顺序与表格结构模型产出统一的 DoclingDocument再按需要导出目标格式。整个解析过程本地运行敏感文档不出内网。⚡ 安装 Docling 并完成第一次转换pip install docling # 需要 Python 3.10 及以上 docling https://arxiv.org/pdf/2206.01062CLI 直接接受 URL下载 PDF、跑完整条管线在当前目录落一个 .md 文件零配置就能体验。想换成视觉模型管线加一个参数即可docling --pipeline vlm --vlm-model granite_docling https://arxiv.org/pdf/2206.01062Python 里三行搞定返回的对象支持多种导出方式from docling.document_converter import DocumentConverter doc DocumentConverter().convert(report.pdf).document print(doc.export_to_markdown()) # 也可 export_to_html / export_to_json这样写的好处是格式识别、模型选择全部走 Docling 默认值换文档时只需改 source。 Docling 核心能力拆解表格识别、层级结构与 OCR 增强表格结构识别行列关系不塌默认情况下do_table_structure就是开的Docling 先定位表格区域再用 TableFormer 识别每个单元格的行列归属和合并范围导出的 Markdown 是真正的表格而不是一堆文字。遇到合并单元格多的复杂表格切到高精度模式from docling.datamodel.pipeline_options import PdfPipelineOptions, TableFormerMode options PdfPipelineOptions() options.table_structure_options.mode TableFormerMode.ACCURATE # 用一点速度换准确率层级结构与阅读顺序从页面到 DoclingDocument版面模型负责判断哪块是标题、正文还是表格阅读顺序模型把多栏内容排成正确顺序。PDF 的标题默认全部输出一级打开层级推断后Docling 会结合书签、编号规则和字体样式推断章节深度from docling.datamodel.pipeline_options import PdfPipelineOptions, HeadingHierarchyOptions options PdfPipelineOptions() options.heading_hierarchy_options HeadingHierarchyOptions(enabledTrue) options.generate_parsed_pages True # 字体样式信号需要解析页这样导出的 Markdown 有真实的 #/##/### 层级切块入库时上下文不会串。OCR 与公式识别扫描件也能处理do_ocr默认开启扫描版 PDF 没有文字层时由 OCR 模型补上文档里带数学内容时再打开公式增强公式会被转成 LaTeX代码块同理有代码模型可处理options PdfPipelineOptions( do_ocrTrue, do_formula_enrichmentTrue, # 公式转 LaTeX )多开一个特征就多一份耗时按需开启。与传统解析方案的区别维度传统文本抽取工具Docling表格拍平成文字串列易错乱TableFormer 识别行列关系输出 Markdown 表格公式丢失或乱码公式模型转 LaTeX阅读顺序按物理坐标多栏错乱版面模型推断阅读顺序格式覆盖多为单一格式20 种PDF、DOCX、PPTX、XLSX、HTML、EPUB、EML、音视频等部署形态部分依赖云服务全本地运行适配敏感数据接入 LangChain文档直接进 RAG 管线解析完成后的下一步通常是切块入库。Docling 的官方集成包封装了 DocumentConverter自动处理分块from langchain_docling import DoclingLoader loader DoclingLoader(reports/) # 单文件或目录 docs loader.load()拿到的就是标准 LangChain Document后续 embedding、向量库代码一行不用改。LlamaIndex、Haystack、CrewAI 等框架接法类似见官方文档的集成章节。常见问题与坑新机器上第一次运行很慢、还下载了大量文件这是首次自动拉取版面、表格、OCR 等模型。生产环境建议先用docling-tools models download在单机上统一预取再通过--artifacts-path或DOCLING_ARTIFACTS_PATH环境变量让所有实例指向该目录离线内网同样适用。扫描件上的中文识别出乱码多半是 OCR 引擎的语言模型与文档语言不匹配。CLI 里用docling --ocr-lang engchi_sim指定语言Python 侧通过ocr_options设置。导出的 Markdown 里表格两列被合并成一列通常是模型预测文本与 PDF 内嵌文本的单元格边界没对上。把options.table_structure_options.do_cell_matching设为False改用模型自己预测的文本单元格表格特别难时再切TableFormerMode.ACCURATE。解析几百页年报时内存占用飙升因为 Docling 会把整份文档一次性读入内存。入口处用converter.convert(source, max_num_pages100, max_file_size20_971_520)设上限需要控制 CPU 线程数时设置OMP_NUM_THREADS环境变量默认 4 线程。今天就解析第一份文档跑一句pip install docling然后对手头的文档执行docling。完整参数说明见 CLI 参考更多真实工作流在 示例目录。【免费下载链接】doclingGet your documents ready for gen AI项目地址: https://gitcode.com/GitHub_Trending/do/docling创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考