2016-04-25 110 views
1

最近我们不得不从itext版本5升级到版本5.2,因为后者支持中文语言。然而,新版本的一个主要变化是它不再支持PdfTextExtractor类的配置者中的TextProvidingRenderListener类。有我们已经定制,以利用此功能的类:问题从itext5升级到itext5.2

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

但是作为一个结果现在有没有办法使用这个类,并呼吁lineAlignErrorAllowed的属性,它是CustomLocationAwarePdfRenderListener的构造的一部分。 lineAlignErrorAllowed基本上充当扫描最小编号的参数。在来源被认为过于复杂之前的界限。 任何有关这个主题的帮助真的很感激。

+1

iText 5.5.9中的文本提取比iText 5.2好得多,那么为什么不现在迁移到5.5.9现在您已决定升级?而且:iText 5.2有几个问题。查看更改日志:http://developers.itextpdf.com/content/changelogs/itext-520-521-february-29-2012-march-31-2012 –

+0

哇作者自己:)感谢您的及时响应。我再次与我的一位队友进行了检查,当他尝试使用5.5.8版本时,他也面临同样的问题。如果你可以建议某种方式来实现同样的事情,那么真的会有所帮助,即将TextProvidingRenderListener对象作为PdfTextExtractor类的contsructor中的一个参数传递。 – javshak

回答

2

在意识到最新的itext版本中的LocationTextExtractionStrategy类是TextProvidingRenderListener的有价值替代品之后,设法解决此问题。虽然这次我们不得不延长课程。唯一需要做的其他更改是通过将LocationTextExtractionStrategy的实例传递给getTextFromPage,将代码更改为使用现在静态的PdfTextExtractor类。在寻找最新的itext API参考文档方面有些困难,但最终得到了here。 (不知何故,它们会显示一些不同于常规java API文档的格式,但是可以忍受这一点)。

+1

我是iText Software自己的质量保证工程师。 :-)如果您更喜欢普通的Java API文档,您也可以查阅http://itextsupport.com/apidocs/itext5/。这些是由我们的开发分支的CI构建的,因此最新的官方发布可能会有一些微小的差异。 –

+0

非常感谢这个链接,当我开始为apis进行搜索时,这是我期待的。如果没有那么麻烦,我想你可以在这个页面上提供它http://developers.itextpdf.com/apis。为后人收藏它! – javshak