Java HTMLからPDFへ

WBOY
リリース: 2023-05-15 15:37:38
オリジナル
2058 人が閲覧しました

インターネットの発展に伴い、ますます多くの企業や個人がドキュメントや情報を電子形式で保存し、共有し始めています。これらの電子文書の中で、PDF 形式は、オペレーティング システムやアプリケーションに関係なく、異なるプラットフォーム上でも同様に表示でき、編集も容易ではないため、間違いなく最も人気があり汎用性の高い形式の 1 つです。

ただし、一部の HTML ページまたは Java プログラムの出力コンテンツを PDF 形式に変換する必要がある場合があり、その際には専門的なツールとテクノロジを使用する必要があります。この記事では、Java 言語がいくつかのライブラリとフレームワークを使用して HTML と Java を PDF に変換する機能を実現する方法を説明することにより、このプロセスの具体的な手順とアイデアを紹介します。

1. Flying Saucer を使用して HTML を PDF に変換する

Flying Saucer は、XHTML、XML、および CSS スタイル シートを PDF または画像形式に変換するために特別に使用される Java CSS レンダリング エンジンです。スーパー フォントや CSS3 などの機能を備えた PDF で完全かつ高品質のページをレンダリングできる、使いやすい API を提供します。

1. Flying Saucer の依存関係ライブラリを導入します

次のように pom.xml ファイルに依存関係を追加します:

<dependency>    
    <groupId>org.xhtmlrenderer</groupId>    
    <artifactId>flying-saucer-pdf</artifactId>    
    <version>9.1.20</version>
</dependency>
ログイン後にコピー

2. ITextRenderer オブジェクトを使用して HTML をPDF

次のコードでテンプレートを作成し、HTML コンテンツを入力します:

// DOM解析器
DocumentBuilder builder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); 
// 创建一个Model用于存储转换后的文档 
Document document = builder.newDocument(); 
 
// 读取html内容并转换为文档树 
StringReader reader = new StringReader("要转化为PDF的html格式内容"); 
InputSource source = new InputSource(reader); 
// 获取根元素 
Element root = document.getDocumentElement(); 
// 将html输入文档树种 
Node node = document.importNode(root, true); 
// 将html根元素加入文档树中 
document.appendChild(node); 
 
// 转化为PDF 
ITextRenderer renderer = new ITextRenderer(); 
renderer.setDocument(document, null); 
renderer.layout(); 
OutputStream out = new FileOutputStream(pdfUrl); 
renderer.createPDF(out);
ログイン後にコピー

2. iText を使用して Java オブジェクトを PDF

に変換するだけでなく、HTML を PDF に変換しますPDF では、iText ライブラリを通じて Java オブジェクトを PDF ファイルに変換することもできます。 iText は、PDF 形式ファイルを生成する機能と操作 API を提供する Java PDF 操作ライブラリです。

1. iText 依存関係の導入

以下に示すように、Maven に iText 依存関係ライブラリを追加します:

<dependency>    
    <groupId>com.itextpdf</groupId>    
    <artifactId>itextpdf</artifactId>    
    <version>5.5.11</version>
</dependency>
ログイン後にコピー

2. PDF ドキュメント オブジェクトを作成します

// 创建pdf文件对象 
Document document = new Document(PageSize.A4); 
// 文件输出流 
OutputStream outputStream = new FileOutputStream("test.pdf"); 
// 将文件流作为输出对象 
PdfWriter.getInstance(document, outputStream); 
// 打开文件 
document.open(); 
// 向文件中添加段落,代码省略 
// 关闭文件 
document.close()
ログイン後にコピー

3 、ドキュメントへのコンテンツの追加

次のコードは PDF に Java オブジェクトを追加できます:

// 添加文字 
Font font = new Font(); 
font.setStyle(Font.BOLD); 
font.setSize(18); 
Paragraph paragraph = new Paragraph("Hello World!", font); 
document.add(paragraph); 
 
// 添加表格 
PdfPTable table = new PdfPTable(3); 
table.addCell("Candidate ID"); 
table.addCell("Candidate Name"); 
table.addCell("Status"); 
for(int i=0;i<10;i++) { 
    table.addCell("00"+i); 
    table.addCell("Candidate "+i); 
    table.addCell("Selected"); 
}
document.add(table);
ログイン後にコピー

4. PDF ファイルの出力

最後に、PDF ファイルはファイル出力を通じてエクスポートされます。ストリーム出力:

// 文件输出流 
OutputStream outputStream = new FileOutputStream("test.pdf"); 
// 将文件流作为输出对象 
PdfWriter.getInstance(document, outputStream);
ログイン後にコピー

iText は PDF ドキュメント オブジェクトの作成と操作に使用できる豊富な API を提供し、Flying Saucer は複雑な CSS スタイルと XHTML タグを適切に処理して、HTML ページを Convert に変換できることがわかります。 PDFファイルにします。これら 2 つのツールを使用すると、HTML および Java プログラムのコンテンツをより簡単に PDF ファイルに変換できると思います。

以上がJava HTMLからPDFへの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート