【问题标题】:How to extract text and word coordinates from pdf?如何从pdf中提取文本和单词坐标?
【发布时间】:2023-03-11 20:55:01
【问题描述】:

如何在 .NET 中从 PDF 文档中提取文本?另外,如何获取页面上每个单词的坐标?我可以使用iTextSharp 或其他一些组件来执行此操作吗?

【问题讨论】:

  • iTextSharp 是一种可能,但 PDF 提取通常不像人们想象的那么容易,因为 pdf 中的文本并不总是按照预期的顺序。
  • 感谢 Citykid。我们没想到会出现相同的顺序。您有使用 iTextSharp 的示例代码或文档吗?
  • 抱歉没有示例代码,几周前我刚刚深入探讨了这个主题,我记得 iTextSharp 是最常用的工具,而且转换通常不像我希望的那么简单成为。我用于测试的第一个文档会引起订单问题。
  • 看at this answer 以及从那里链接的答案。这将为您提供一些关于如何开始使用 iText(Sharp) 的想法。对于 PDFBox,请查看其示例 PrintTextLocations。
  • 非常感谢 mkl。我想使用 iTextSharp 从文本 pdf 中提取文本和单词坐标。在下面提到的链接中,我上传了文本 pdf。对于该 pdf,任何人都可以找到单词坐标吗?我不知道 itextsharp docs.google.com/file/d/0B_nzYHWVJJ7KQ0dPLWdyS2FBWUk/…

标签: .net vb.net pdf


【解决方案1】:

在Docotic.Pdf library的帮助下可以轻松完成任务。

下面的代码将所有单词及其坐标写入系统控制台,并在每个找到的单词周围绘制矩形。

public static void extractAndDrawWordBounds(string inputFileName, string outputFileName)
{
    using (PdfDocument pdf = new PdfDocument(inputFileName))
    {
        PdfPage page = pdf.Pages[0];
        foreach (PdfTextData data in page.GetWords())
        {
            System.Console.WriteLine(data.ToString());
            page.Canvas.DrawRectangle(data.Bounds);
        }

        pdf.Save(outputFileName);
    }

    System.Diagnostics.Process.Start(outputFileName);
}

除此之外,该库还可以提取格式化文本(PdfPage.GetTextWithFormatting 方法)甚至单个字符(PdfPage.GetChars 方法)

免责声明:我是该库的开发人员之一。

【讨论】:

  • 非常感谢 mkl。我想使用 iTextSharp 从文本 pdf 中提取文本和单词坐标。在下面提到的链接中,我上传了文本 pdf。对于该 pdf,任何人都可以找到单词坐标吗?我不知道 itextsharp docs.google.com/file/d/0B_nzYHWVJJ7KQ0dPLWdyS2FBWUk/…
【解决方案2】:

试试PDFLib TET

这是我发现的最好的工具,但它不是免费的(而且也不便宜)。

【讨论】:

  • 非常感谢。我想使用 iTextSharp 从文本 pdf 中提取文本和单词坐标。在下面提到的链接中,我上传了文本 pdf。对于该 pdf,任何人都可以找到单词坐标吗?我不知道 itextsharp docs.google.com/file/d/0B_nzYHWVJJ7KQ0dPLWdyS2FBWUk/…
猜你喜欢
  • 2014-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-05
  • 2021-01-07
  • 2011-11-16
  • 2011-06-02
  • 1970-01-01
相关资源
最近更新 更多