博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ITextRenderer_html转换为pdf
阅读量:5987 次
发布时间:2019-06-20

本文共 1663 字,大约阅读时间需要 5 分钟。

hot3.png

最近做了一个用ITextRenderer实现的html转pdf的事例,其中遇到了很多小问题,在此一方面分享一下,另一方面记录一下以便下次需要时观看

  1. jar包  提供gradle依赖

    compile 'com.itextpdf:itext-asian:5.2.0'

     compile 'com.itextpdf.tool:xmlworker:5.5.6'
     compile('org.xhtmlrenderer:flying-saucer-pdf-itext5:9.0.8'){
       exclude group: 'com.lowagie'
     }
     compile 'com.lowagie:iTextAsian:2.1.7'

  2. java代码

 public class ITextHtmlToPdf { static final String inputfileName = "D://test.html"; static final String outputfileName = "D://test.pdf"; static final String FontsName = "C:/Windows/fonts/simsun.ttc"; public int HtmlToPdf() throws IOException, DocumentException{  String url = new File(inputfileName).toURI().toURL().toString();  OutputStream os = new FileOutputStream(outputfileName);  ITextRenderer renderer = new ITextRenderer();     // 解决中文支持问题        ITextFontResolver fontResolver = renderer.getFontResolver();        fontResolver.addFont(FontsName, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);        // 解决图片的相对路径问题        renderer.getSharedContext().setBaseURL("file:/D:/");        renderer.setDocument(url);        renderer.layout();  renderer.createPDF(os);  os.close();  return 1; }}

3.html

body {font-family: SimSun;}
支持中文!

4.小问题

①若报类找不到错误。可能是'org.xhtmlrenderer:flying-saucer-pdf-itext5:9.0.8'该包过期尝试更换

②中文问题。支持中文则需引入亚洲文字包compile 'com.lowagie:iTextAsian:2.1.7'

html中该部分必须存在

<head>

<style type="text/css" mce_bogus="1">body {font-family: SimSun;}</style>

</head>

而且样式中的字体(这里的font-family: SimSun)必须在java代码代码中加入(fontResolver.addFont(“C:/Windows/fonts/simsun.ttc”, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);

),字体应当对应,否则都会造成中文字不显示

 

转载于:https://my.oschina.net/zlb1992/blog/511996

你可能感兴趣的文章
《3D数学基础》1.8 混合积
查看>>
拍照之外, 游戏手机会成为手机新品类吗?
查看>>
Lync 小技巧-1-解决搜索不到联系人的方法
查看>>
数据仓库入门(实验6)添加层次结构
查看>>
第一次获得Microsoft MVP应该做的事
查看>>
用OSSIM发现网络扫描
查看>>
IT群侠传第四回大鱼小虾
查看>>
10分钟搭建Kubernetes容器集群平台(kubeadm)
查看>>
我的家庭私有云计划-18
查看>>
当我们谈论知识管理时,我们在谈论什么?
查看>>
我是这样看搜狗搜索与知乎合作的
查看>>
演示:为思科29系列的交换机升级IOS镜像
查看>>
统一沟通-技巧-4-让国内域名提供商“提供”SRV记录
查看>>
一次DPM备份Exchange DAG的故障处理过程
查看>>
Windows Server 2012 NIC Teaming配置实战
查看>>
KingbaseES的HA搭建
查看>>
思科加强生成树性能的属性(Portfast /Uplinkfast/BackboneFast)与RSTP的关系
查看>>
lvm的使用总结
查看>>
【马哥教育视频】Linux平台软件包管理系列视频
查看>>
DPM2012系列之五:开启最终用户恢复功能
查看>>