栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java itextpdf将HTML转PDF解决图片或中文不显示

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java itextpdf将HTML转PDF解决图片或中文不显示

之前博主用了很多的html转pdf的插件,多多少少都有些问题,不是图片不显示,就是无法显示中文,或者是需要导入外部字体文件.ttc。通过好几天的研究最终发现了无需导入外部字体文件,或者将图片转base64的方式。废话不多说直接上代码!

首先导入maven的jar包


    com.itextpdf
    html2pdf
    2.1.0



    com.itextpdf
    layout
    7.1.3

 java工具类代码

import com.itextpdf.html2pdf.ConverterProperties;
import com.itextpdf.html2pdf.HtmlConverter;
import com.itextpdf.html2pdf.attach.impl.layout.HtmlPageBreak;
import com.itextpdf.html2pdf.resolver.font.DefaultFontProvider;
import com.itextpdf.kernel.geom.PageSize;
import com.itextpdf.kernel.pdf.Pdfdocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.document;
import com.itextpdf.layout.element.IBlockElement;
import com.itextpdf.layout.element.IElement;
import com.itextpdf.layout.font.FontProvider;


import java.io.*;
import java.util.List;


public class Html2PdfUtil {
 
    public static void htmlToPdf(String htmlPath,String pdfPath) throws Exception {
        Pdfdocument pdf = new Pdfdocument(new PdfWriter(pdfPath));
        document document = new document(pdf, PageSize.A2);
        InputStream htmlStream = new FileInputStream(htmlPath);

        ConverterProperties converterProperties = new ConverterProperties();
        //解决中文无法显示
        FontProvider dfp = new DefaultFontProvider(true, true, true);
        converterProperties.setFontProvider(dfp);

        List elements = HtmlConverter.convertToElements(htmlStream,converterProperties);
        for (IElement element : elements) {
            // 分页符
            if (element instanceof HtmlPageBreak) {
                document.add((HtmlPageBreak) element);
                //普通块级元素
            } else {
                document.add((IBlockElement) element);
            }
        }
        document.close();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/666800.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号