ITextを使用してHTMLページ(url)をPDFに変換できるかどうかは誰にもわかりますか?
答えが「いいえ」であれば、それを解決しようとして時間を浪費するのをやめて、私が知っている多くのコンポーネントの1つにお金を費やすだけなので、それでもOKです:)
回答ありがとうございます!
これはまさにあなたが探していたものだと思う
http://today.Java.net/pub/a/today/2007/06/26/generated-pdfs-with-flying-saucer-and-itext.html
http://code.google.com/p/flying-saucer
Flying Saucerの主な目的は、仕様に準拠したXHTMLおよびCSS 2.1を画面にSwingコンポーネントとしてレンダリングすることです。もともとはデスクトップアプリケーション(iTunes Music Storeなど)にマークアップを埋め込むことを目的としていましたが、Flying SaucerはiTextでも拡張されました。これにより、XHTMLをPDF、画像、および画面に非常に簡単にレンダリングできます。空飛ぶ円盤には、Java 1.4以上が必要です。
最終的にwebSupergooのABCPdfを使用しました。それは非常にうまく機能し、約350ドルで、上記のコメントに基づいて何時間も節約できました。 DanielとBratchにコメントをありがとう。
これを行う最も簡単な方法は、pdfHTMLを使用することです。 HTML5(+ CSS3)をpdf構文に変換するiText7アドオンです。
コードは非常に簡単です:
HtmlConverter.convertToPdf(
"<b>This text should be written in bold.</b>", // html to be converted
new PdfWriter(
new File("C://users/mark/documents/output.pdf") // destination file
)
);
詳細については、 http://itextpdf.com/itext7/pdfHTML にアクセスしてください
あなたの質問への答えは、実際には二つあります。まず、レンダリングされたHTMLで行うことを指定する必要があります。新しいPDFファイルに保存するか、別のレンダリングコンテキスト内で使用します(つまり、他のドキュメントに追加します生成しています)。
前者は、Flying Saucerフレームワークを使用して比較的簡単に実現できます。フレームワークは次の場所にあります。 https://github.com/flyingsaucerproject/flyingsaucer
後者は実際にはさらに包括的な問題であり、さらに分類する必要があります。 iTextを使用すると、iText要素(つまり、Paragraph
、Phrase
、Chunk
など)を生成されたHTMLと(少なくとも)組み合わせることができません。 ContentByte
のaddTemplate
メソッドを使用して、このテンプレートへのHTMLを生成することにより、これから抜け出すことができます。
一方、生成されたHTMLに透かしや日付などをスタンプしたい場合は、iTextを使用してこれを行うことができます。
つまり、レンダリングされたHTMLを他のPDF生成コンテキストに簡単に統合することはできませんが、HTMLを空白のPDFドキュメントに直接レンダリングできます。