HTML ファイルを受け取ったので、それを メモリ内 PDF ファイルに変換したいと考えています。変換中は、外部の場所を使用したくありません。私が望むのは、記憶に留めておきたいだけです。
これまで、変換のためにいくつかの Java ライブラリを試してきましたが、常にどこかに一時ファイルが作成され、そこから読み取り/書き込みが行われます。変換中に I/O を実行したくありません。
P粉3087835852024-02-27 10:09:20
HTMLWorker クラスは何年も前に非推奨になりました。 HTMLWorker の目標は、小さくて単純な HTML フラグメントを iText オブジェクトに変換することです。完全な HTML ページを PDF に変換することを目的としたものではありませんでしたが、多くの開発者がそのように使用しようとしています。 HTMLWorker がすべての HTML タグをサポートしていなかったり、CSS ファイルを解析しなかったりするため、この結果、多くのフラストレーションが発生しました。この不満を避けるために、HTMLWorker は iText の最新バージョンから削除されました。
2011 年に、iText Group は、iText 5 に基づいて構築されたユニバーサル XML to PDF ツールとして XML Worker をリリースしました。デフォルトの実装では、XHTML (データ) と CSS (スタイル) を PDF に変換し、HTML タグをマッピングします。
、
、 そして
他の XML 形式に XML ワーカーを使用した実装は知りませんが、多くの開発者は XML ワーカーを jsoup と組み合わせて HTML2PDF コンバーターとして使用していました。
iText 5 が最初に作成されたとき、PDF をできるだけ早く生成し、完了するとページを OutputStream にフラッシュするツールとして設計されました。 iText が 2000 年に初めてリリースされたとき、非常に意味のあるデザインの選択肢が 16 年後の iText 5 にもいくつか登場しています。残念ながら、これらの選択によっては、XML ワーカーの機能を多くの開発者が期待する品質レベルに拡張することが、不可能ではないにしても、非常に困難になります。本当に優れた HTML から PDF へのコンバーターを作成したい場合は、iText を最初から書き直す必要があります。やった。
2016 年に、私たちは iText 7 をリリースしました。これは iText の完全に新しいバージョンで、以前のバージョンとの互換性はありませんが、pdfHTML を念頭に置いて作成されました。新しいレンダラー フレームワークには多くの作業が費やされました。 iText 7 を使用してドキュメントを作成すると、レンダラーとそのサブレンダラーのツリーが構築されます。レイアウトはこのツリーをたどることによって作成されます。これは、HTML から PDF への変換を処理するのに適しています。 iText オブジェクトは、HTML タグとよりよく一致し、「CSS 方式」でスタイルを設定できるように完全に再設計されました。
例: iText 5 では、テーブルとそのセルを作成するために PdfPTable と PdfPCell オブジェクトがありました。すべてのセルにデフォルトのフォントとは異なるフォントでテキストを含めたい場合は、そのフォントをiText 7 では、Table と Cell オブジェクトがあり、表全体に異なるフォントを設定すると、このフォントがすべてのセルのデフォルト フォントとして継承されます。これは、アーキテクチャ デザインの観点から、特に HTML を PDF に変換することが目的の場合。
しかし、過去にこだわるのはやめて、pdfHTML で何ができるかを見てみましょう。最初の章では、convertToPdf()/ConvertToPdf() メソッドのさまざまなバリエーションを見ていきます。コンバータの構成方法。