Java实现HTML转PDF

Java实现HTML转PDF

  • 引入相关依赖
  • HTML转PDF工具类

引入相关依赖


<dependency>
    <groupId>com.itextpdfgroupId>
    <artifactId>html2pdfartifactId>
    <version>3.0.2version>
dependency>

<dependency>
    <groupId>com.itextpdfgroupId>
    <artifactId>font-asianartifactId>
    <version>7.1.13version>
dependency>

HTML转PDF工具类

import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.font.FontProvider;
import org.apache.commons.lang3.StringUtils;

import java.io.*;

public class HtmlToPdfUtils {

    public static void html2Pdf(String htmlStr, String targetFilePath) throws Exception {
        if (StringUtils.isEmpty(htmlStr)) {
            throw new Exception("html string is empty");
        }
        InputStream inputStream = new ByteArrayInputStream(htmlStr.getBytes());
        OutputStream outputStream = new FileOutputStream(targetFilePath);
        PdfWriter pdfWriter = new PdfWriter(outputStream);
        PdfDocument pdfDocument = new PdfDocument(pdfWriter);

        ConverterProperties properties = new ConverterProperties();
        //添加中文字体支持
        FontProvider fontProvider = new FontProvider();
        PdfFont sysFont = PdfFontFactory.createFont("STSongStd-Light", "UniGB-UCS2-H", false);
        fontProvider.addFont(sysFont.getFontProgram(), "UniGB-UCS2-H");
        properties.setFontProvider(fontProvider);
        HtmlConverter.convertToPdf(inputStream, pdfDocument, properties);

        pdfWriter.close();
        pdfDocument.close();
        outputStream.close();
        inputStream.close();
    }
}

你可能感兴趣的:(Java基础问题,java,html,pdf)