如何从特定矩形区域内的pdf文档中提取文本?

我必须从特定矩形区域内的pdf文档中提取文本。 工作流程如下。 首先,pdf被转换为jpg图像。 然后用户在图片顶部绘制选择矩形。 然后我不知何故需要从该选择区域内的pdf doc中提取所有文本。 有什么建议从C#可以使用的免费软件pdf库吗?

我同意,OCR不是在这里使用的方法。 您需要一个PDF库,可以提取文本以及边界框坐标。

QuickPDF是一个商业图书馆(www.quickpdf.com),可以以249美元的合理价格提取所需信息。 http://www.quickpdflibrary.com/help/quickpdf/DAExtractPageText.php是您正在寻找的function。 这将提取整个页面的文本,然后您需要使用简单的Point和/或Rectangle函数将文本限制为所选矩形。

根据我的研究,我不相信iText有这种能力。

您还应该阅读如何从PDF中提取文本?

此代码将使用itextsharp在矩形坐标的基础上完美地提取pdf数据

List linestringlist = new List(); PdfReader reader = new PdfReader(pdfFilename); iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(coordinate1, coordinate2, coordinate3, coordinate4); RenderFilter[] renderFilter = new RenderFilter[1]; renderFilter[0] = new RegionTextRenderFilter(rect); ITextExtractionStrategy textExtractionStrategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), renderFilter); string text = PdfTextExtractor.GetTextFromPage(reader, 1, textExtractionStrategy); 

一旦您将PDF格式化为JPEG图像以使用文本识别(OCR)提取所选区域内的文本,我建议您使用。 这是一篇关于.NET的OCR库的文章 。 就从PDF中提取文本而言, 这里有一篇文章说明了如何或多或少地实现这一点。 问题是如何识别用户在所选矩形内的文本。

(免责声明 – 我在Atalasoft的 PDF产品上工作) Atalasoft的PdfReader将会这样做。 它不是免费软件,但效果很好。 代码如下所示:

 using (PdfTextDocument doc = new PdfTextDocument(pathToFile)) { PdfTextPage page = doc.GetPage(pageNumber); string text = page.GetTextInBox(yourSelection); }