JavaでHTMLをPDFに変換する方法
近年、デジタル化の進展に伴い、電子文書の需要はますます高まっています。実際の業務ではHTMLファイルをPDFファイルに変換する必要が生じることが多く、その際にはJavaプログラミング技術を使用する必要があります。この記事では、HTML を PDF に変換する Java 実装方法を次の 3 つの側面から紹介します:
1. iText を使用して HTML を PDF に変換する
iText は、変換できる人気のある Java PDF ライブラリです。 HTML から PDF ファイルを PDF ファイルに変換します。 iText は HTML ファイルを解析し、PDF マークアップ言語を使用してページを再構築します。以下は、iText を使用して HTML を PDF に変換するための主要なコードです:
Document document = new Document(); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("output.pdf")); document.open(); HTMLWorker htmlWorker = new HTMLWorker(document); String html = "<html><head></head><body><p>Hello World</p></body></html>"; htmlWorker.parse(new StringReader(html)); document.close();
上記のコードは、PDF ファイルを生成するための Document オブジェクトを作成し、次に PDFWriter を使用して Document オブジェクトを出力ストリームに書き込み、PDF を生成します。ファイル。次に、HTMLWorker を使用して HTML ドキュメントが解析され、PDF ページに追加されます。最後に、Document オブジェクトを閉じて、PDF ファイルの生成を完了します。
2. Flying Saucer を使用して HTML を PDF に変換する
HTML を PDF に変換するために使用できるもう 1 つの Java ツールは、Flying Saucer です。これは、HTML を PDF 形式のドキュメントに変換できる、無料のオープンソース PDF レンダラーです。以下は、Flying Saucer を使用して HTML を PDF に変換するサンプル コードです。
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = documentBuilderFactory.newDocumentBuilder(); Document document = builder.parse(new InputSource(new StringReader(htmlContent))); ITextRenderer iTextRenderer = new ITextRenderer(); iTextRenderer.setDocument(document, null); iTextRenderer.layout(); OutputStream outputStream = new FileOutputStream("output.pdf"); iTextRenderer.createPDF(outputStream); outputStream.close();
上記のコードは、まず HTML ドキュメントを解析し、それを Document に読み込みます。次に、ITextRenderer のlayout() メソッドを使用してドキュメントをレイアウトします。最後に、createPDF() メソッドを使用して PDF ファイルを出力ストリームに生成します。
3. PDFBox を使用して HTML を PDF に変換する
PDFBox は、PDF ファイルを作成および処理するための多くのツールを提供する、人気のあるオープン ソース Java PDF ライブラリです。また、HTML から PDF へのサンプル コードも提供しています。完全なサンプル コードはここでご覧いただけます。
次は、PDFBox を使用して HTML を PDF に変換するサンプル コードです:
PDDocument document = new PDDocument(); PDPage page = new PDPage(); document.addPage(page); PDPageContentStream contentStream = new PDPageContentStream(document, page); PDRectangle mediaBox = page.getMediaBox(); float margin = 72; float startX = mediaBox.getLowerLeftX() + margin; float startY = mediaBox.getUpperRightY() - margin; float width = mediaBox.getWidth() - 2 * margin; String html = "<html><head></head><body><p>Hello World!</p></body></html>"; ByteArrayInputStream bais = new ByteArrayInputStream(html.getBytes()); InputStreamReader isr = new InputStreamReader(bais); COSDocument cosDoc = new COSDocument(); PDFOperator.reset(); PDPageTree pageTree = new PDPageTree(); PDDOMParser parser = new PDDOMParser(cosDoc); parser.parse(isr); PDDocumentOutline outline = new PDDocumentOutline(); document.getDocumentCatalog().setDocumentOutline(outline.getRootNode()); PDOutlineItem item = new PDOutlineItem(); item.setTitle("PDFBox"); PDOutlineItem childItem = new PDOutlineItem(); childItem.setTitle("Hello World 2"); item.addLast(childItem); outline.getRootNode().addLast(item); PDAcroForm form = new PDAcroForm(cosDoc); document.getDocumentCatalog().setAcroForm(form); PDPageContentStream cs = new PDPageContentStream(document, page); PDFTextStripper stripper = new PDFTextStripper(); stripper.setStartPage(0); stripper.setEndPage(1); String text = stripper.getText(document); cs.beginText(); cs.setFont(PDType1Font.COURIER, 14); cs.drawString(text, 100, 100); cs.endText(); contentStream.close(); document.save("output.pdf"); document.close();
上記のコードは、まず PDDocument オブジェクトを作成し、それに新しいページを追加します。次に、ページ上にコンテンツを描画するために使用される PDPageContentStream オブジェクトが作成されます。次に、PDDOMParser を使用して HTML を COSDocument オブジェクトに解析します。最後に、コンテンツが出力ストリームに書き込まれ、PDF ファイルが生成されます。
概要
HTML から PDF への変換は、実際の制作プロセスで非常に広範囲に応用でき、この重要なタスクは Java プログラミングを通じて簡単に完了できます。この記事では、iText、Flying Saucer、PDFBox の 3 つのツールを使用して HTML を PDF に変換する方法を紹介します。どのような状況であっても、プロジェクトのニーズに最適な方法を選択することで、開発をより迅速かつ便利に行うことができます。
以上がJavaでHTMLをPDFに変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

この記事では、functionコンポーネントでのデータフェッチやDOM操作などの副作用を管理するためのフックであるReactの使用Effectについて説明します。メモリリークなどの問題を防ぐための使用、一般的な副作用、およびクリーンアップについて説明します。

怠zyな読み込みは、必要になるまでコンテンツの読み込みを遅延させ、初期負荷時間とサーバーの負荷を削減することにより、Webパフォーマンスとユーザーエクスペリエンスを改善します。

この記事では、JavaScriptのカレーについて説明します。これは、マルチアーグメント関数を単一argument関数シーケンスに変換する手法です。 Curryingの実装、部分的なアプリケーションなどの利点、実用的な用途、コード読み取りの強化を調査します

JavaScriptの高次関数は、抽象化、共通パターン、および最適化技術を通じて、コードの簡潔さ、再利用性、モジュール性、およびパフォーマンスを強化します。

この記事では、Virtual DOMツリーを比較してDOMを効率的に更新するReactの調整アルゴリズムについて説明します。パフォーマンスの利点、最適化技術、ユーザーエクスペリエンスへの影響について説明します。

記事では、Connect()、MapStateToprops、MapDispatchToprops、およびパフォーマンスへの影響を説明するReduxストアに反応コンポーネントをReduxストアに接続します。

この記事では、ReactのUseContextを説明しています。これにより、小道具掘削を避けることで国家管理を簡素化します。再レンダーの削減により、集中状態やパフォーマンスの改善などの利点について説明します。

記事では、PreventDefault()メソッドを使用して、イベントハンドラーのデフォルト動作の防止、ユーザーエクスペリエンスの強化などの利点、およびアクセシビリティの懸念などの潜在的な問題について説明します。
