PDF 阅读顺序调试器

对比 PDF 原始绘制顺序与 XY-Cut++ 阅读顺序,定位多栏和复杂布局导致的抽取错乱

上传 PDF 后,工具会分别以 readingOrder=offreadingOrder=xycut 运行 OpenDataLoader,并生成逐页对比报告。对于多栏论文、宣传册、财报和图文混排文档,这个报告可以帮助你判断是否必须启用布局感知阅读顺序。

示例结果

1 个示例

在构建引用前调试 PDF 的阅读顺序

真实测试比较了 2 页内容,XY-Cut++ 与原始顺序在该 sample 上没有差异。

Reading order comparison report for 2 extracted pages with 0 changed pages between raw draw order and XY-Cut++.
查看输入参数
{ "pdfFile": "/public/samples/pdf/ebook-navigation-example1.pdf", "useStructTree": false, "includeHeaderFooter": false, "pages": "1-4" }

Click to upload file or drag and drop file here

Maximum file size: 10MB Supported formats: application/pdf

关键信息

分类
开发与 Web
输入类型
file, checkbox, text
输出类型
html
样本覆盖
4
支持 API
Yes

概览

PDF 阅读顺序调试器是一款专为开发者设计的工具,通过对比 PDF 原始绘制顺序与 XY-Cut++ 布局感知算法的解析结果,帮助用户直观定位多栏、图文混排或复杂排版文档中的文本抽取错乱问题。

适用场景

  • 处理多栏论文或报纸排版,发现文本提取顺序跨栏跳跃时。
  • 财务报表或宣传册中存在大量图文混排,导致解析内容逻辑不连贯时。
  • 需要评估是否在 OpenDataLoader 中启用 xycut 算法以优化 RAG 系统输入质量时。

工作原理

  • 上传需要分析的 PDF 文件,并可选配置页码范围及是否包含页眉页脚。
  • 系统分别以原始绘制顺序和 XY-Cut++ 算法运行解析引擎,提取文本流。
  • 自动比对两种模式下的文本差异,识别因布局导致的顺序变更点。
  • 生成交互式 HTML 报告,逐页展示对比结果并高亮显示解析顺序发生变化的区域。

使用场景

优化 RAG 知识库:确保多栏学术论文在向量化前按正确的逻辑顺序分块。
自动化报表解析:调试财报中表格与正文混排时的提取逻辑,防止数据错位。
电子书转换校验:在将复杂排版的 PDF 转换为 Markdown 前,验证阅读流的准确性。

用户案例

1. 双栏学术论文解析校验

AI 工程师
背景原因
正在构建一个基于学术论文的问答系统,但发现 LLM 经常将左栏末尾和右栏开头的句子混在一起。
解决问题
无法确定是 OCR 错误还是阅读顺序解析错误。
如何使用
上传论文 PDF,设置页码范围为正文页,运行调试器查看 HTML 报告。
示例配置
pdfFile: paper.pdf, useStructTree: true, pages: 2-10
效果
报告显示原始顺序确实存在跨栏混淆,而 XY-Cut++ 成功分离了左右栏,确认了必须开启阅读顺序优化。

2. 年度财报图文混排调试

数据分析师
背景原因
需要从大量包含侧边栏注释和插图说明的财报中提取正文。
解决问题
侧边栏的文字经常插入到正文段落中间,破坏了语义完整性。
如何使用
上传财报 PDF,勾选“包含页眉页脚”以观察边缘元素的处理情况。
示例配置
pdfFile: annual_report.pdf, includeHeaderFooter: true
效果
通过对比报告发现,开启 XY-Cut++ 后侧边栏被正确识别为独立块,不再干扰正文流。

用 Samples 测试

pdf, file

相关专题

常见问题

什么是 XY-Cut++ 算法?

这是一种基于递归投影切分的布局分析算法,能有效识别并按人类阅读习惯排列多栏文档的文本块。

为什么原始绘制顺序会出错?

PDF 内部对象的存储顺序往往取决于生成工具的写入逻辑,而非视觉上的阅读逻辑,导致多栏内容可能被横向串联。

“使用结构树”选项有什么作用?

启用后将尝试利用 PDF 内部自带的 Tagged 标签信息来辅助确定阅读顺序,适用于规范生成的电子文档。

报告中显示“0 changed pages”代表什么?

这意味着在该页面上,XY-Cut++ 算法的解析结果与原始绘制顺序完全一致,布局相对简单。

该工具支持扫描件吗?

支持,但效果取决于 PDF 内部是否包含 OCR 文本层,工具主要针对文本层对象的排列顺序进行调试。

API 文档

请求端点

POST /zh/api/tools/pdf-reading-order-debugger

请求参数

参数名 类型 必填 描述
pdfFile file (需要先上传) -
useStructTree checkbox -
includeHeaderFooter checkbox -
pages text -

文件类型参数需要先通过 POST /upload/pdf-reading-order-debugger 上传获取 filePath,然后将 filePath 传递给对应的文件字段。

响应格式

{
  "result": "
Processed HTML content
", "error": "Error message (optional)", "message": "Notification message (optional)", "metadata": { "key": "value" } }
HTML: HTML

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-pdf-reading-order-debugger": {
      "name": "pdf-reading-order-debugger",
      "description": "对比 PDF 原始绘制顺序与 XY-Cut++ 阅读顺序,定位多栏和复杂布局导致的抽取错乱",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=pdf-reading-order-debugger",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

支持 URL 文件链接或 Base64 编码作为文件参数。

如果遇见问题,请联系我们:[email protected]