itext
Pdfの作成:iText 5とiText 7
サーチ…
備考
iTextのオリジナルデザインでは、高水準のDocumentオブジェクトを作成し、そのDocumentオブジェクトをリッスンする異なるDocListenerオブジェクトを作成することができました。これは、 PdfWriter 、 HTMLWriter 、およびHTMLWriterという異なるライターを使用することで実現しRtfWriter 。 PdfWriterを使用すると、内部で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();
}
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チュートリアル

