2016-11-17 37 views
3

私たちはcom.lowagie:itext:jar:2.1.7.js2に依存するJasperReport 6.1.0を使用しています。 iText 2.1.7にはIPの問題があり、iTextは商用ライセンスが必要な最新バージョンを使用するようすべてのユーザーに求めているようだ。 iTextライセンスを購入したいと考えています。今iTextの最新バージョンは7.0.1です。 1.JasperReport iText 2.1.7を最新のiText 7.0.1に置き換えてください。

に新しいiTextのjarを追加のpom.xmlに

<dependency> 
    <groupId>net.sf.jasperreports</groupId> 
    <artifactId>jasperreports</artifactId> 
    <version>6.1.0</version> 
    <exclusions> 
    <exclusion> 
     <groupId>com.lowagie</groupId> 
     <artifactId>itext</artifactId> 
    </exclusion> 
    ... 

2.デフォルトのiTextの2.1.7依存関係を除外:私はJasperReportのiTextのは、最新のiTextの7.0.1と2.1.7交換する手順の下にやってみましたpom.xml

<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>barcodes</artifactId> 
    <version>7.0.1</version> 
    <!-- barcodes depends on kernel --> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>font-asian</artifactId> 
    <version>7.0.1</version> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>forms</artifactId> 
    <version>7.0.1</version> 
    <!-- forms depends on kernel and layout --> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>hyph</artifactId> 
    <version>7.0.1</version> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>io</artifactId> 
    <version>7.0.1</version> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>kernel</artifactId> 
    <version>7.0.1</version> 
    <!-- kernel depends on io --> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>layout</artifactId> 
    <version>7.0.1</version> 
    <!-- layout depends on kernel --> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>pdfa</artifactId> 
    <version>7.0.1</version> 
    <!-- pdfa depends on kernel --> 
</dependency> 
<dependency> 
    <groupId>com.itextpdf</groupId> 
    <artifactId>sign</artifactId> 
    <version>7.0.1</version> 
    <!-- sign depends on kernel, layout and forms --> 
</dependency> 

3.実行MVNとテストレポート機能は、私はエラーの下になった:それはJASPのように見える

2016-11-17 14:43:36,520 ERROR [c.i.c.d.DeferredOperationManager] [ Thread-49] Exception on Deferred Operation. Operation UUID: 2a647922-d6d0-450d-9b2d-4d97638ba03f. UI Error key:d9a16093-be20-4278-9f8b-93120c0a2231 - Error: java.lang.NoClassDefFoundError: com/lowagie/text/SplitCharacter

erReportは、名前空間が "com.lowagie ..."である古いiTextクラスを見つけようとしています。 新しいiText 7.0.1 jarを解凍しようとしましたが、クラスはパッケージ "com.itextpdf ..."にあります。

JasperReportを新しいiText jarと呼ぶにはどうしたらいいですか?

+3

* "新しいiText jarをJasperReportに呼び出すにはどうすればいいですか?" - *** *** iTextを使っているJasperReportクラスを書き直してください!***本当に依存関係を置き換えるとは言いません主要な部分が5(2.1.7.7.1.1)増加し、すべてがすぐに使えると期待しているバージョンでは、あなたはそうですか?クラスのパッケージが変更されただけでなく、7.x APIは完全な書き換えであり、多くの古い罪を取り除くために互換性が設計によって壊れています。 – mkl

+0

誰かがJasperの報告ウェブサイトhttp://community.jaspersoft.com/questions/1035351/itext7-supportで同じ質問をしました。そのページを見て、ジャスパー・レポートを管理している人から回答が得られたかどうかを確認するのが役に立ちます。 –

答えて

3

iText 2.1.7をiText 7に置き換えることはできません。これは、2つのバージョンの違いが大きすぎるためです。私たちは、JasperReportsでiText 5を使用していた人たちのことを知っています。これには、パッケージ名をcom.lowagieからcom.itextpdf(*)に変更し、参照をcom.lowagie.text.Colorからcom.itextpdf.text.BaseColorに変更するなど、JasperReportsにいくつかの変更が必要です。

iTextでは、iText5で天井に当たっていたことに気付きました。たとえば、charを使用してテキストを格納します。つまり、各文字は2バイトのみで格納されます。ヒンディー語をサポートしたいのであれば、これでは十分ではありませんでした。 Indic言語のサポートをiTextに追加したい場合は、完全なフォントレイヤーを書き直さなければなりませんでした。 iText 5の "フォントレイヤーの置き換え"は、フォントレイヤーがコードの残りの部分すべてが構築される基盤であるため、本当に難しいでしょう。したがって、完全なAPIを書き直すという我々の決定。しかしDevoxx 2016: "Oops I broke my API"

あなたはここにこの決定について、より詳細に入るビデオを見ることができますiTextの7とiTextの2.1.7を置き換えるの最大の問題は、JasperReportsのはPdfGraphics2Dに依存し、我々が持っていないということですその部分をiText 7に移植しました(まだ)。 PdfGraphics2D(そしてPDF/UAがますます重要になってきています)を使用することを選択した場合、PDF/UAを作成することは不可能であるため、これまでのところ移植することは決してできません。

(*)2009年に、私はパッケージ名から自分の名前を削除することにしました。 iTextを初めてリリースしたとき、私はlowagie.comドメインを所有していました。私が書いたすべてのJavaコードにcom.lowagieパッケージを使用しました。私はiTextがこのような成功になるとは思わなかった。誰もがiTextを使い始めると、誰もが私に個人的に質問をし始めました。私はもう人生を持っていませんでした。それで私は会社を作り、私たちはiTextをプロフェッショナルにしてcom.lowagieをニュートラルに置き換えました。com.itextpdfはそれらのプロフェッショナルの一つでした。

+0

お返事ありがとうございました。追加の質問、もし私たちがJasperReportでiText 2.1.7を使用し続けているのであれば、IPの問題はありますか? –

+0

これは、iTextのFAQで非常に詳細に説明されています:http://developers.itextpdf.com/question/versions-older-than-5 –

関連する問題