サーチ…


備考

iTextのオリジナルデザインでは、高水準のDocumentオブジェクトを作成し、そのDocumentオブジェクトをリッスンする異なるDocListenerオブジェクトを作成することができました。これは、 PdfWriterHTMLWriter 、およびHTMLWriterという異なるライターを使用することで実現しRtfWriterPdfWriterを使用すると、内部でPdfDocumentが作成されました。この低レベルのクラスは、すべてのPDF関連の構造を処理しました。多かれ少なかれ、他のフォーマットでも同じことが当てはまりました。

長年にわたり、iTextは専門的であり、純粋なPDFライブラリになりました。 HTMLとRTFの作成は中止されました。したがって、 PdfWriterを作成する前にDocumentを作成する必要はなくなりましたが、 PdfWriter準備ができていないため、元のアーキテクチャに固執する必要がありました。

長年にわたり、私たちはiTextにますます多くのPDF機能を追加し、 PdfDocument内部使用のクラスあったという事実だけが問題になりました。私たちは、回避策として許容可能であると思われる点の上限に達するまでPdfDocumentクラスに属する新しいPDF機能を導入できるように回避策を使用しました。

それで、私たちはiTextを一から書き直し、iTextのための全く新しいアーキテクチャを作ることに決めました。ここでは、 PdfDocument (低レベル操作の場合)とDocument (高レベル機能の場合)を明確に区別しています。私たちはもはやドキュメントを開く必要はなく、 リソースを試そうとするアプローチを使用する場合、私たちはそれを自分で閉じる必要はありません。

もっと知りたい? 無料の電子ブックを手に入れよう!

HelloWorld.java(iText 5)

簡単なHello Worldドキュメントを作成するとします。

ここに画像の説明を入力

iText 5では、これは次のようになります:

public void createPdf(String dest)
    throws DocumentException, IOException {
    Document document = new Document();
    PdfWriter.getInstance(
        document, new FileOutputStream(dest));
    document.open();
    document.add(new Paragraph("Hello World!"));
    document.close();
}

出典: developers.itextpdf.com

HelloWorld1.javaとHelloWorld2.java(iText 7)

簡単なHello Worldドキュメントを作成したかったとします。

ここに画像の説明を入力

iText 7では、次のようにすることができます:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    Document document = new Document(pdf);
    document.add(new Paragraph("Hello World!"));
    document.close();
}

あるいは、次のようにすることもできます:

public void createPdf(String dest) throws IOException {
    PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
    try (Document document = new Document(pdf)) {
        document.add(new Paragraph("Hello World!"));
    }
}

出典: developers.itextpdf.comおよびiText 7:Building Blocksチュートリアル



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow