最近在网上看了一下如何使用iText创建Pdf文档,文章在此利用itext操作pdf从数据库导出大量数据--创建PDF相关(二)
然后我到官网下载了最新的iText5.4
然后根据他的方式去写,发现无法添加中文。于是乎google一下要添加一个包<iTextAsian.jar>,然后解压,将
com.lowagie.text 改为com.itextpdf.text,但是还是不行。但是很多前辈在博客中都是这样说的,有的无法解决的就直接调用系统字段。
我用心的看了看源代码,发现调用的很多文件在iTextAsian.jar位置不正确,还有很多文件结构错误。然后去官网发现还有一个extrajars-2.3.zip可以下载
下载过来解压一看 哈哈,找到了,里面有一个itext-asian.jar 和上面的iTextAsian.jar
应该差不多,添加到工程,运行 Ok!
接下来 就是设置PDF的加密和只读权限 通过pdfWriter.setEncryption()这个方法调用,但是令人沮丧的事情又来了,来了个The document is not open.异常。一开始不懂,瞎折腾,把document.open()方法放到pdfWriter.setEncryption()
之前,才发现这个方法必须在文档没有open之前调用,那么是不是版本的问题?试过也不是。 想了想,发现extrajars-2.3.zip 解压之后里面有4个包,我现在只用了一个,那么我全部添加过去。OK!
然后再去官网看看文档,点击查看文档
想见恨晚啊,很清晰的在文档的后面标注了
If you want this example to work, you need the following
jars: iText.jar,bcpkix-jdk15on-1.47.jar, bcprov-jdk15on-1.47.jar