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チュートリアル