从itext5升级到itext5.2的问题

时间:2016-04-25 14:34:17

标签: java itext etl

最近我们不得不从版本5升级到版本5.2,因为后者支持中文。但是,较新版本的一个主要变化是它不再支持TextProvidingRenderListener类的contsructor中的PdfTextExtractor类。我们定制了一个课程来使用这个功能:

public class CustomLocationAwarePdfRenderListener
implements TextProvidingRenderListener
{
    public CustomLocationAwarePdfRenderListener( int lineAlignErrorAllowed)
    {
        this.lineAlignErrorAllowed = lineAlignErrorAllowed;
        reset();
    }

然而,作为结果,现在无法使用此类和名为lineAlignErrorAllowed的属性,该属性是CustomLocationAwarePdfRenderListener的构造函数的一部分。 lineAlignErrorAllowed基本上作为扫描最小值的参数。源之前的线被认为太复杂。 对此主题的任何帮助将非常感激。

1 个答案:

答案 0 :(得分:2)

在意识到最新的itext版本中的LocationTextExtractionStrategy类是TextProvidingRenderListener的有价值的替代后,管理来修复此问题。虽然这次我们不得不延长课程。唯一需要的其他更改是通过将PdfTextExtractor的实例传递给LocationTextExtractionStrategy来更改代码以使用现在的静态getTextFromPage类。在搜索最新的itext API参考文档时遇到了一些困难,但最终得到了它们here。 (不知何故,它们会出现一些与常规Java API文档不同的格式,但可以使用它们。)