Contents

Java 使用 freemarker (ftl) XHTML 轉 PDF

TODO: 整理

中文看不見問題(字型)

簡單說明一下,我這邊使用方法不是載入程式內部字型
是使用 jar 裡面自型解決解决PDF添加水印报错iText: Font ‘STSong-Light’ with ‘UniGB-UCS2-H’ is not recognized_HaHa_Sir的博客-CSDN博客

1、itext 經歷了從: itext.itext —> com.lowagie —> com.itextpdf 的三次升級,若使用了舊版本的jar,就會出現錯誤,還不好發現。
2、多從maven repository 搜索下相關jar包,關注組件的歷史變化情況。
3、會debeug,會追蹤源碼,找到拋出異常的根本原因所在!
這邊找相對應java 版本,所以把itext-asian升到 5.2 就可以跑了
後來對應網路上字型都不能跑(會亂碼),
猜測是簡體字型關係,看到JWorld@TW Java論壇 - iText RtfShape 內文為中文會出現亂碼

1
 bfChinese = BaseFont.createFont("MHei-Medium", "UniCNS-UCS2-H", BaseFont.NOT_EMBEDDED);

就可以跑出中文字,感動QQ

後來發現用 Android 中文會看不到
可能用標楷體會能解決

圖片(base64)

轉 xhtml

別人範例

一次java导出pdf的经历 - mickey007 - 博客园
Java生成pdf文件或jpg图片 - 简书

別的方法

jhonnymertz/java-wkhtmltopdf-wrapper: A Java wrapper for wkhtmltopdf