【发布时间】:2021-03-04 00:57:24
【问题描述】:
我正在从 PDF 中提取文本,并且遇到从连续页面返回相同文本的问题。我已经使用 iTextSharper 编写了一些 PDF 解析器,并且刚刚将以下代码从 iTextSharper 移植到 iText7,并假设这只是一个 iTextSharper 问题:
var pdfDocument = new PdfDocument(new PdfReader(@"C:\Temp\MyForm.pdf"));
for (int page = 1; page <= pdfDocument.GetNumberOfPages(); page++)
{
var strategy = new SimpleTextExtractionStrategy();
var pdfPage = pdfDocument.GetPage(page);
var currentText = PdfTextExtractor.GetTextFromPage(pdfPage, strategy);
// Process this page
Console.WriteLine("PAGE {0}", page);
Console.WriteLine(currentText);
}
这里有什么我遗漏的吗?
【问题讨论】:
-
很遗憾,您没有共享测试 PDF。一个想法:默认情况下,iText 文本提取会忽略文本是在页面裁剪框内部还是外部。某些 PDF 在同一内容流上具有多个页面的内容,并且只能通过不同的裁剪框选择相应 PDF 页面对象的内容。您的 PDF 可能就是这种情况。如果是这样,对裁剪框应用过滤器应该可以解决问题。如果不是,请分享PDF进行分析。
-
感谢 mkl 的回复。我将不得不调查您的过滤器/裁剪框方法(我不熟悉的东西)这是 PDF(在公共领域 BTW):link