当打开首页上只有一列而其他页面上有超过一列的 PDF 文件时,我的下面的代码丢失了。
有人可以告诉我我做错了什么吗?
下面是我的代码:
PdfReader pdfreader = new PdfReader(pathNmArq);
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
for (int page=1; page <= lastPage; page++)
{
extractText = PdfTextExtractor.GetTextFromPage(pdfreader, page, strategy);
extractText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(extractText)));
/ / ...
}
您使用SimpleTextExtractionStrategy
。该策略假设PDF中的文本绘制指令按阅读顺序排序。就你而言,情况似乎并非如此。
如果您不能指望包含按阅读顺序绘制操作的 PDF,而仅使用分布中的 iText 文本提取策略,则您必须了解构成单列的区域。如果页面包含多个列,则必须使用RegionTextRenderFilter
限制为一列,然后使用LocationTextExtractionStrategy
.
PS:你的意图到底是什么
extractText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(extractText)));
line?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)