ホームページ >ウェブフロントエンド >フロントエンドQ&A >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 サイトの他の関連記事を参照してください。