1

xhtml ドキュメントを PDF 形式と Docx 形式の両方にフォーマットできるようにしたいプロジェクトがあります。

しばらくの間、flyingsaucer を使用して PDF ドキュメントをフォーマットしてきましたが、互換性の理由から常に古いバージョンの iText を使用する必要がありました。docx4j を使用しているので、iText を最新バージョンに更新する必要があります。そうしないと、機能しません。

FlyingSaucer (xhtmlrenderer R8pre2) は iText 2.0.8 を
使用 docx4j 2.8.0 は iText 2.1.7 を使用

使用できる iText ライブラリは 1 つだけですが、どちらを使用しても、空飛ぶ円盤または docx4j のいずれかで互換性の問題が発生します。

現時点では、ある特定のメソッド ( com.lowagie.text.pdf.BaseFont.getCharBBox) に問題があるようです。このメソッドは、あるバージョンではcharパラメーターを受け取り、別のバージョンではパラメーターを受け取りintます。

Flyingsaucer または iText のソースをダウンロードして (どちらもオープン ソースだと思います)、自分で修正する必要があるかもしれません (以前に行ったことはありませんが、管理できると思います)。この問題に遭遇した最初の人であり、おそらく別の方法で回避するか、他の誰かがこの種の問題を解決するためにプロジェクトの 1 つをすでにフォークしています。

4

1 に答える 1

2

開示:私はdocx4jプロジェクトに取り組んでいます

docx4j 2.8.0は、XHTML インポートを行うFlying Saucer のフォークで必要とされるため、iText のみを使用します。

そのフォークで、docx 関連のものを追加し、必要のないものをいくつか削除しました。将来、これを Flying Saucer に提供する可能性があります - それは時間の問題です。

それまでの間、完全を期すために、フォークが再パッケージ化されているため、実際の Flying Saucer とフォークをクラスパスに同時に配置できることを述べておきます。

質問に戻ると、適切な FlyingSaucer には同じ 2.1.7 依存関係が含まれるようになったため、現在のソースを使用できる場合は、提起した問題に対処する必要があります。

于 2012-07-05T12:40:10.003 に答える