2016-04-25 5 views
1

最近、私たちはitextバージョン5からバージョン5.2へのアップグレードが必要でした。なぜなら、後者は中国語をサポートしているからです。しかし、新しいバージョンの大きな変更の1つは、PdfTextExtractorクラスのコンストラクタでTextProvidingRenderListenerクラスをサポートしなくなったことです。私たちは、この機能を利用するためにカスタマイズされたクラスがありました: itext5からitext5.2へのアップグレードに伴う問題

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

しかし今、このクラスと CustomLocationAwarePdfRenderListenerのコンストラクタの一部であった lineAlignErrorAllowedという属性を使用する方法はありません結果として。 lineAlignErrorAllowedは、基本的に最小値をスキャンするパラメータとして機能します。ソースの前の行は複雑すぎると見なされます。 このトピックに関するご意見は本当にありがとうございます。

+1

iText 5.5.9では、iText 5.2よりもテキストの抽出がはるかに優れています。なぜなら、アップグレードすることを決めたら、5.5.9に移行してみましょう。さらに、iText 5.2にはいくつかの問題がありました。 changelogを参照してください:http://developers.itextpdf.com/content/changelogs/itext-520-521-february-29-2012-march-31-2012 –

+0

著者自身とうわー:)あなたの迅速な対応に感謝します。チームメイトの一人と再度確認したところ、バージョン5.5.8で試してみたところ、同じ問題に直面していました。同じことを達成するためのいくつかの方法、つまり、PdfTextExtractorクラスのcontructorで、TextProvidingRenderListenerオブジェクトを引数として渡すことを提案できれば、本当に役に立ちます。 – javshak

答えて

2

最新のitextバージョンのLocationTextExtractionStrategyクラスがTextProvidingRenderListenerの代わりになることを認識した後、この問題を修正するように管理しました。今回はクラスを拡張する必要がありました。必要とされた唯一の変更は、今度は静的PdfTextExtractorクラスを使用するコードに、LocationTextExtractionStrategyのインスタンスをgetTextFromPageに渡すことによって変更することです。最新のitext APIリファレンスドキュメントを探していたのですが、最後にhereが見つかりました。 (どういうわけか、通常のJava APIのドキュメントとは異なるフォーマットで表示されますが、それに合わせて使用​​することができます)。

+1

私はiText Software自身のQAエンジニアです。 :-)通常のJava APIドキュメントを好む場合は、http://itextsupport.com/apidocs/itext5/を参照することもできます。これらは開発拠点のCIによって構築されているため、最新の公式リリースとのわずかな違いがあります。 –

+0

このリンクをありがとう、私はapisのためにグーグルを始めたとき、私が期待していたことでした。それほど問題がなければ、http://developers.itextpdf.com/apisもこのページでも提供できると思います。後世のために今すぐブックマークしました! – javshak

関連する問題