【1】html源代码转pdf

本文详细介绍了将HTML文件和字符串转换为PDF时遇到的中文显示问题及解决方案,包括使用IText、BaseFont和HTMLWorker等工具包进行样式设置和中文字符处理的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考:

1.html文件和html字符串转pdf 解决中文样式:https://blog.youkuaiyun.com/lzq199528/article/details/78933496

2.html字符串转pdf源码:https://blog.youkuaiyun.com/jsyhello/article/details/51913447

3.IText实现对PDF文档属性的基本设置https://www.cnblogs.com/matrix-zhu/p/6305944.html

4.利用itext导出HTML到PDF,解决中文不显示和中文不换行的问题:https://blog.youkuaiyun.com/beaAcmen/article/details/78252921

5.方式五如下 【表格格式显示不出来(可能段落读取破坏了标签)】
System.out.println(pdfPath);
StyleSheet st = new StyleSheet();
st.loadTagStyle("body", "leading", "16,0");
// step 1
Document document = new Document(PageSize.A4);
// step 2
PdfWriter.getInstance(document, new FileOutputStream(pdfPath));
// step 3
document.open();
// step 4
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL);
List<Element> p = HTMLWorker.parseToList(dome_2(htmlCode), st);
System.out.println("who is 0:"+p.get(0).getChunks().get(0));
for (Element aP : p) {
    for (int m = 0; m < aP.getChunks().size(); m++) {
        Paragraph pCode = new Paragraph(aP.getChunks().get(m).toString(), FontChinese);
        document.add(pCode);
    }
}
// step 5
document.close();
private static Reader dome_2(String htmlCode){
    if(htmlCode != null && !htmlCode.trim().equals("")){
        try{
            InputStream tInputStringStream = new ByteArrayInputStream(htmlCode.getBytes());
            InputStreamReader isr = new InputStreamReader(tInputStringStream,"utf-8");
            return new BufferedReader(isr);
        }catch(Exception e){
            e.printStackTrace();
        }

    }
    return null;
}

结论:

第1种方式奏效,一开始中文显示不出来(工具包找到了,却读不出中文)

解决:切记不要在子标签里加font-family

另一个平台引用出现中文显示不出来,记得要用body包起来

 

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值