Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

pdfbox html转pdf代码

作者:冷月魄   发布日期:2026-03-07   浏览:115

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
import org.apache.pdfbox.pdmodel.PDPageContentStream;
import org.apache.pdfbox.pdmodel.font.PDType1Font;
import org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.File;
import java.io.IOException;

public class HtmlToPdf {

    public static void main(String[] args) {
        try {
            // 读取HTML文件
            File inputHtml = new File("input.html");
            Document doc = Jsoup.parse(inputHtml, "UTF-8");

            // 创建一个新的PDF文档
            PDDocument pdfDoc = new PDDocument();
            PDPage page = new PDPage();
            pdfDoc.addPage(page);

            try (PDPageContentStream contentStream = new PDPageContentStream(pdfDoc, page)) {
                // 设置字体和字号
                contentStream.setFont(PDType1Font.HELVETICA_BOLD, 12);

                // 获取HTML中的所有段落元素
                Elements paragraphs = doc.select("p");
                float yPosition = 750; // 初始y坐标位置

                for (Element paragraph : paragraphs) {
                    String text = paragraph.text();
                    contentStream.beginText();
                    contentStream.newLineAtOffset(50, yPosition);
                    contentStream.showText(text);
                    contentStream.endText();
                    yPosition -= 15; // 每行之间的间距
                }
            }

            // 保存PDF文件
            pdfDoc.save("output.pdf");
            pdfDoc.close();

            System.out.println("PDF created successfully.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

解释说明:

  1. 导入依赖库:使用了Apache PDFBoxJsoup两个库,分别用于生成PDF和解析HTML。
  2. 读取HTML文件:通过Jsoup库读取并解析HTML文件。
  3. 创建PDF文档:使用PDFBox创建一个新的PDF文档,并添加一个空白页。
  4. 设置字体和字号:设置PDF中的文本字体和大小。
  5. 提取HTML内容:从HTML中提取所有的段落元素,并逐行写入PDF中。
  6. 保存PDF文件:将生成的PDF保存到指定路径。

如果需要更复杂的HTML转PDF功能(如支持CSS、表格等),可以考虑使用其他工具或库,如Flying Saucerwkhtmltopdf

上一篇:html练习

下一篇:html 边框

大家都在看

静态html源码

404 html

ios打开html

nginx访问不到html

html 符号

colspan在html中是什么意思

怎么将网页另存为html

xml转html

html时间代码

html localstorage

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站