最近我们不得不从 itext 版本 5 升级到版本 5.2,因为后者支持中文。然而,新版本中的一个主要变化是它不再支持 PdfTextExtractor
类的构造函数中的 TextProvidingRenderListener
类。我们定制了一个类来利用此功能:
public class CustomLocationAwarePdfRenderListener
implements TextProvidingRenderListener
{
public CustomLocationAwarePdfRenderListener( int lineAlignErrorAllowed)
{
this.lineAlignErrorAllowed = lineAlignErrorAllowed;
reset();
}
但是,现在无法使用此类和名为 lineAlignErrorAllowed
的属性,该属性是 CustomLocationAwarePdfRenderListener
构造函数的一部分。 lineAlignErrorAllowed
基本上充当扫描最小编号的参数。源之前的行被认为过于复杂。
任何有关此主题的帮助将不胜感激。
最佳答案
在意识到最新 itext 版本中的 LocationTextExtractionStrategy
类值得替代 TextProvidingRenderListener
后,设法解决了此问题。虽然这次我们不得不延长类(class)。唯一需要的其他更改是通过将 LocationTextExtractionStrategy
的实例传递给 getTextFromPage
来更改代码以使用现在静态的 PdfTextExtractor
类。在寻找最新的 itext API 引用文档时遇到了一些困难,但还是找到了 here最后。 (不知何故,它们显示的格式与常规 java API 文档不同,但人们可以接受这一点)。
关于java - 从 itext5 升级到 itext5.2 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36843610/