最近女朋友要通过html生成pdf文档,笨笨不爱思考的她直接求教与我,本人翻找 以前写过的案例(没有保存依赖jar包)进行测试一下,结果总是抛出莫名其妙的异常。慎重考虑 这恶心的问题可能是jar包不匹配问题引起的,估计广大网友也遇过类似这种问题,因此贴出相关依赖jar和程序代码防止防止广大网友好不容易找到一段程序却不能正常运行
程序源码
try {
String outputFile = "D:/pdf/demo.pdf";
OutputStream os = new FileOutputStream(outputFile);
ITextRenderer renderer = new ITextRenderer();
// 解决中文支持问题
ITextFontResolver fontResolver = renderer.getFontResolver();
// simsun.ttc为字体文件
fontResolver.addFont("D:/pdf/simsun.ttc", BaseFont.IDENTITY_H,
BaseFont.NOT_EMBEDDED);
//无论是方法1还是方法二对html格式要求都很严格
//=====1============直接拼接html代码 开始=====================
/*StringBuffer html = new StringBuffer();
// DOCTYPE 必需写否则类似于 这样的字符解析会出现错误
html.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">");
html.append("<html xmlns=\"http://www.w3.org/1999/xhtml\">")
.append("<head>")
.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" />")
.append("<style type=\"text/css\" mce_bogus=\"1\">body {font-family: SimSun;}</style>")
.append("</head>").append("<body>")
.append("<div>人员名单:</div>")
.append("<table width=\"200\" border=\"1\">")
.append("<tr>").append("<td>姓名:</td>")
.append("<td>年龄:</td>").append("</tr>").append("<tr>")
.append("<td>张小三</td>").append("<td>25</td>")
.append("</tr>").append("</table>");
html.append("</body></html>");
renderer.setDocumentFromString(html.toString());*/
//=================直接拼接html代码 结束====================
//=====2======直接加载模版 start
renderer.setDocument(new File("D:/pdf/t.htm"));
//=====2======直接加载模版 end
// 解决图片的相对路径问题,如果是绝对路劲的话这个设置无用
renderer.getSharedContext().setBaseURL("http://www.baidu.com/img/");
renderer.layout();
renderer.createPDF(os);
os.close();
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
依赖jar包
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.1.1</version>
</dependency>
<!-- <dependency> <groupId>org.xhtmlrenderer</groupId> <artifactId>xhtmlrenderer</artifactId>
<version>8.3-atlassian</version> </dependency> -->
<dependency>
<groupId>org.xhtmlrenderer</groupId>
<artifactId>core-renderer</artifactId>
<version>R8</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>com.lowagie</groupId>
<artifactId>itext</artifactId>
<version>2.0.8</version>
</dependency>
分享到:
相关推荐
freemarker html生成pdf 通过freemarker 和html模板生成对应的pdf或者图片 参考使用,欢迎下载
java 使用ITextRenderer将html模块生成pdf文件工具类,可直接下载测试。
对于没有使用宏、函数等word、excel,需要按模板动态生成word、excel、html,只需要一个freemarker,先将word、excel、html等另存为**xml**,即可使用模板动态生成文件,目前xlsx是不支持的 4. PdfTemplate 对于不会...
1.html模板+model数据,通过freemarker进行渲染,便于维护和修改 2.渲染后的html流,可通过Flying Saucer组件生成pdf文件流,或者生成pdf后再转成jpg文件流
利用flying和itext开源包,通过html模板生成PDF文件,使用简单,便于新手上手,附件是本人亲自测试通过的工程例子
web下使用itext renderer生成pdf(pdf带图片,文字可选),机器上如果安装了pdf阅读器就能直接打开,改造一下就能直接将pdf显示到页面,pdf可带图片,并且文字可选
itext 生成pdf 目录,itext 生成pdf 目录,itext 生成pdf 目录
1.使用html生成表格 1. Re:Qt-字体轮廓的绘制 2.生成pdf文档 3.使用打印机打印 3. Re:Qt-字体轮廓的绘制 4. Re:Qt-字体轮廓
html渲染页面转换为pdf并设置页眉,页码,水印,目录,二维码
Html生成Pdf(ASPX.C#),使用Word模板,可以含背景水印.
itext-pdf使用freemarker模板生成pdf时,样式错乱,乱折行问题解决,重写源码
2、由上述生成的html模板通过java代码生成pdf; 3、示例有本地模板和远程模板之分,可杜绝pdf标题丢失的问题; 4、资源概要:先阅读README.md文档,然后根据文档中的资源示例运行代码,有postman和内部调用两种方式; 5...
通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。 iText的安装非常方便,在http://www.lowagie.com/iText/download.html - download 网站上下载iText.jar文件后,只需要在系统的...
使用itextpdf将html模板生成pdf文档,poi导出excel,freemarker导出excel,pdf添加文字水印。
技术使用poi,实际功能为html文件转换成word, 生成pdf格式合同,html生成图片,生成html格式合同,下载解压缩即可运行
thinkphp5 框架 用tcpdf 把 HTML生成pdf
最近开发时需要用swagger生成文档,经多次测试,形成了一个完整的生成方案,供大家参考。...3、使用命令:mvn clean test 生成接口手册文档 4、生成的的文档路径如下: target\asciidoc\html target\asciidoc\pdf
一个使用itext生成pdf的代码例子,支持中文。 将html代码直接转换为pdf文档。方便便捷。
java工程中将word格式模板类型在浏览器中以pdf格式下载或预览,使用thymeleaf前端框架,maven工程的demo。