html模板结合itextpdf生成pdf文档--demo

这段时间,接到一个需求,是将doc文档生成pdf文档。由于doc文档还挺复杂的,按照网上的示例使用java代码一个一个生成,那就太复杂了,因此就想到使用html模板来生成pdf文档。文章结束附代码连接(下载pdf,pdf添加水印文字图片,poi导出excel,freemarker导出excel)。html

步骤:

1.wps打开doc文档,文件另存为html格式java

2.将生成的html复制进项目,若是有图片,则把同名文件中的图片复制进项目测试

3.把html中的图片路径替换成正确的路径ui

4.检查html中的标签是否都正确结束。编码

5.下载调试,若是有表格等,可能会致使有些边框出不来,因此须要调试table的td标签的border属性。.net

代码连接:
https://download.csdn.net/download/zj520_/13103967调试

图片是我使用demo代码测试导出的文件:
excel

生成的水印文字,支持多页生成:
code

可能遇到的坑:

1、报错信息: The document has no pages.
缘由1:在生成PDF时,须要生成PDF的内容,标签有误,在使用itextpdf下载pdf的适合,必定要保证标签有开始,有结束才行。
好比生成的html文件中的meta标签,img标签;
解决:orm

<meta http-equiv=Content-Type content="text/html; charset=UTF-8"/>
    <meta name=ProgId content=Word.Document/>
    <meta name=Generator content="Microsoft Word 14"/>
    <meta name=Originator content="Microsoft Word 14"/>
    <img src=""/>

缘由2:使用新版的wps生成的html文档中含有itextPdf不识别的内容,我此次就由于这个搞了我几天。后面发现就是在html中有下图中的内容。
解决:将这些内容删掉便可

2、java.nio.charset.MalformedInputException: Input length = 1
缘由:是由于html的字符编码的问题,将文件的编码转为utf-8便可。
解决:将生成的html文件中的标签中的

<meta http-equiv=Content-Type content="text/html; charset=gb2312" />

改成:

<meta http-equiv=Content-Type content="text/html; charset=UTF-8" />

3、在使用ftl生成excel的时候,wps生成的xml文件,里面有不少内容不能格式化,可能会致使导出的文件有问题,打不开,因此就只格式化Worksheet标签内的内容就好了。

4、生成的xls结尾的文档,使用office打开会提示:"文件格式和扩展名不匹配",可是点击是,仍然能打开,网上有解决方案,若是有大佬有更好的方案,麻烦留言告知。

使用freemarker导出doc文档同理,若是有图片或者表格合并的问题,请点击连接:

http://www.javashuo.com/article/p-eiwqqzzm-ca.html

相关文章
相关标签/搜索