从 itext5 升级到 itext5.2 的问题
issue with upgrading from itext5 to itext5.2
最近我们不得不从 itext 版本 5 升级到版本 5.2,因为后者支持中文。然而,新版本的一个主要变化是它不再支持 PdfTextExtractor
class 的构造函数中的 TextProvidingRenderListener
class。我们定制了一个 class 来利用此功能:
public class CustomLocationAwarePdfRenderListener
implements TextProvidingRenderListener
{
public CustomLocationAwarePdfRenderListener( int lineAlignErrorAllowed)
{
this.lineAlignErrorAllowed = lineAlignErrorAllowed;
reset();
}
然而,结果是现在无法使用此 class 和名为 lineAlignErrorAllowed
的属性,它是 CustomLocationAwarePdfRenderListener
的构造函数的一部分。 lineAlignErrorAllowed
基本上作为扫描最小编号的参数。源之前的行被认为太复杂了。
对此主题的任何帮助将不胜感激。
在意识到最新 itext 版本中的 LocationTextExtractionStrategy
class 可以替代 TextProvidingRenderListener
后设法解决了这个问题。虽然这次我们不得不延长class。唯一需要的其他更改是通过将 LocationTextExtractionStrategy
的实例传递给 getTextFromPage
来更改代码以使用现在静态的 PdfTextExtractor
class。在寻找最新的 itext API 参考文档时遇到了一些困难,但最终得到了它们 here。 (它们以某种方式显示出与常规 java API 文档不同的格式,但可以接受)。
最近我们不得不从 itext 版本 5 升级到版本 5.2,因为后者支持中文。然而,新版本的一个主要变化是它不再支持 PdfTextExtractor
class 的构造函数中的 TextProvidingRenderListener
class。我们定制了一个 class 来利用此功能:
public class CustomLocationAwarePdfRenderListener
implements TextProvidingRenderListener
{
public CustomLocationAwarePdfRenderListener( int lineAlignErrorAllowed)
{
this.lineAlignErrorAllowed = lineAlignErrorAllowed;
reset();
}
然而,结果是现在无法使用此 class 和名为 lineAlignErrorAllowed
的属性,它是 CustomLocationAwarePdfRenderListener
的构造函数的一部分。 lineAlignErrorAllowed
基本上作为扫描最小编号的参数。源之前的行被认为太复杂了。
对此主题的任何帮助将不胜感激。
在意识到最新 itext 版本中的 LocationTextExtractionStrategy
class 可以替代 TextProvidingRenderListener
后设法解决了这个问题。虽然这次我们不得不延长class。唯一需要的其他更改是通过将 LocationTextExtractionStrategy
的实例传递给 getTextFromPage
来更改代码以使用现在静态的 PdfTextExtractor
class。在寻找最新的 itext API 参考文档时遇到了一些困难,但最终得到了它们 here。 (它们以某种方式显示出与常规 java API 文档不同的格式,但可以接受)。