最近打算用java代码生成一个pdf,结果找到了itextpdf, 感觉还是很强大的,只是网传不支持中文。引用了itextAsia 搞了好半天中文居然乱码。
网上的各种方法他能生成中文,但是我还是乱码,无奈之下研究了一下字符集,一切从Charset.defaultCharset()这个方法开始。
System.out.println(Charset.defaultCharset());输出结果如果是GBK,那么不好意思,你乱码是正常的,如果是UTF8,恭喜你你没乱码纯属侥幸。 听说网上要下载什么extrajars-2.3.zip,简直弱爆了,其实什么都不用下载,只需要:
implementation group: 'com.itextpdf', name: 'itextpdf', version: '+'
implementation group: 'com.itextpdf', name: 'itext-asian', version: '+'
如果你想指定版本:
implementation group: 'com.itextpdf', name: 'itextpdf', version: '5.4.4'
implementation group: 'com.itextpdf', name: 'itext-asian', version: '5.2.0'
其实乱不乱码跟版本没什么关系。
执行如下程序会乱码: