在我的生活中无法弄明白为什么当我使用iTextSharp提取文本时,一些文字会向后反复出现。
using (iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(@"C:\Temp\pdftest\sample.pdf"))
{
string sText = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, 1, new iTextSharp.text.pdf.parser.LocationTextExtractionStrategy());
}
*我使用LocationTextExtractionStragegy的原因是因为我将使用坐标从此位置拉取文本。我刚刚为我的例子添加了完整的PDF文章。如果我使用SimpleTextExtractionStrategy,则“B uy 5 egt 5”和“eerf”不会显示。
输出(来自示例代码):
B uy 5 egt 5
eerf
4x6 PRINTS Download free
CVS Mobile App.
Promo code O H m OBILe PICS
sed items available in all stores We reserve the right to
“eerf”肯定会出现奇怪的事情。在pdf中,当您尝试选择它时,光标会变为水平(大红色免费)。
[
如果我使用acrobat professional,Advanced - > PDF优化器,选择透明度,然后保存文件,正确提取文本并选择“红色自由”。
所以有两个问题,如何在iTextSharp中模拟PDF优化器? 或者,iTextSharp如何正确读取此文本?
正如你所看到的,这是我的第一篇文章,所以不要把我打得太糟糕。
附加测试:
我甚至扩展了LocationTextExtractionStrategy和RegionTextRenderFilter,因此我可以返回每个Textchunk的坐标。关于“Big Red”Free的奇怪之处在于,F的起点和终点完全相同。 R和两个E的情况相同。我原以为终点等于文本的起点和宽度。