通过iText提取PDF文本会返回奇怪的字符

时间:2015-10-07 12:23:47

标签: java pdf itext

我使用itext 5.3.4从PDF文件中提取文本。我用来执行此操作的代码如下:

string regexPattern = @"(?<=^PR)(?:[gpr])?([A-Z]{2,3})(?:vB)?(?=\d{4}$)";

Regex regex = new Regex(regexPattern , RegexOptions.None);
Match match = regex.Match("PRrSV2012");

Console.WriteLine(match.Value);

但是对于特定的PDF,ë以°返回。知道为什么会发生这种情况以及可以做些什么呢?它是Python文库中的错误还是构造PDF时出错?

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

我看到两个可能的原因:

<强> 1。 PDF文档是问题

一些银行使用机密信息创建文档。为了避免解析文档并提取文档,他们故意创建一个包含错误信息的CMap。字符链接到字形(并且字形正确呈现),但也有字符到UNICODE符号的映射,并且该映射是故意错误的(因此无法提取内容) )。

我在这些电影中展示了这样一个文件的例子:

<强> 2。 iText就是问题

您使用的是2012年11月2日的版本。在接下来的(差不多)三年中,我们修复了许多错误。如果你升级到iText 5.5.7,也许你的问题已经解决了。

如果升级到iText 5.5.7没有解决问题,如果PDF不是问题,您可能在iText中遇到了错误。如果您在商业环境中使用iText,则您是iText Software的客户;在这种情况下,请通过仅供客户使用的封闭式票务系统联系iText的支持。