IRONSOFTWAREHOME

从挤得很紧的表格中提取文本时顺序错乱

Curtis Chau
Curtis Chau
Updated: 2026年6月10日

从紧密排列的表格或表单布局中提取的文本出现顺序错乱。 来自相邻行的字符混杂在一起,例如,"Unique Number 123456789"被提取为"U123456789nique Number"。

这是一个已知的从密集布局中提取page.Lines的限制。 page.Lines使用内置的不可配置的垂直容差对字符进行分组。 当表格单元格中的两个可见行仅相距一点或两点时,分组合并两个行为一条逻辑线,从左到右排序字符,并进行交错。 ExtractTextFromPage(i)方法默认使用内容流顺序,这可能与表单PDF中的视觉阅读顺序不符。

解决方案

建议:使用带有可调容差的TextChunks提取

每个BoundingBox,这样可以按垂直位置分组,并在每行内按水平位置排序:

using IronPdf.Pages;
using System.Text;

static string ExtractTextUsingTextChunks(IPdfPage page, double rowTolerance = 2.0)
{
    var rows = page.TextChunks
        .Where(c => !string.IsNullOrWhiteSpace(c.Contents))
        .GroupBy(c => Math.Round(c.BoundingBox.Top / rowTolerance) * rowTolerance)
        .OrderByDescending(g => g.Key);

    var extractedText = new StringBuilder();
    foreach (var row in rows)
    {
        var line = string.Join(" ",
            row.OrderBy(c => c.BoundingBox.Left)
               .Select(c => c.Contents.Trim())
               .Where(text => !string.IsNullOrWhiteSpace(text)));
        extractedText.AppendLine(line);
    }
    return extractedText.ToString();
}

rowTolerance = 2.0开始。 如果行仍然合并,将其降低到0.5。 为了更精细的控制,用page.TextChunks

替代方法:视觉顺序提取

对于只有内容流顺序错误的PDF:

pdf.ExtractTextFromPage(i, TextExtractionOrder.VisualOrder);

对于行之间视觉上非常接近的PDF,TextChunks方法更好地处理紧密的容差。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

...
阅读更多

准备开始了吗?

Nuget Downloads 20,878,335版本:2026.9刚刚发布

立即获取您的免费30 天试用密钥
无需信用卡或创建账户
C# 用于 PDF 的 NuGet 库
通过 NuGet 安装

版本: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. 在解决方案资源管理器中,右键点击引用,管理 NuGet 包
  2. 选择浏览并搜索 “IronPDF”
  3. 选择包并安装
C# PDF DLL
下载 DLL

版本: 2026.9

或在此处下载 Windows 安装程序。

  1. 下载并解压 IronPDF 到您的解决方案目录中的 ~/Libs 之类的位置
  2. 在 Visual Studio 解决方案资源管理器中,右键点击引用。选择浏览,“IronPDF.dll”

$999

Key in blue circle

立即获取免费的 30 天试用版密钥

Your trial license will be sent to your email address

无任何限制。100% 解锁。无需信用卡。

bullet_checked无需信用卡或创建账户无任何限制。100% 解锁。无需信用卡。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
预约您的免费现场演示
Booking Badge

深受全球数百万工程师信赖

Iron Software 的客户徽标
获取您的无义务咨询
填写下面的表格或通过sales@ironsoftware.com
您的资料将始终保密。
深受全球数百万工程师信赖
Iron Software 的客户徽标
立即获取您的免费30 天试用密钥
无需信用卡或创建账户