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

相關文章
相關標籤/搜索