首页新闻找找看学习计划

itext如何读取中文的pdf

0
悬赏园豆:20 [已关闭问题] 关闭于 2016-03-02 14:56

直接调用PdfReader reader = new PdfReader(filename);会报错

静默虚空的主页 静默虚空 | 初学一级 | 园豆:177
提问于:2016-03-01 16:28
< >
分享
所有回答(2)
0

正常不会,可能PDF被其他程序占用

Yu | 园豆:12944 (专家六级) | 2016-03-02 10:03

谢谢你的答复。我已经解决问题了。我使用的itext版本为最新的5.5.8,需要引入bcprov-ext-jdk15on-154.jar才能识别中文pdf。

支持(0) 反对(0) 静默虚空 | 园豆:177 (初学一级) | 2016-03-02 14:43
0

【问题现象】

我使用的itext版本为最新的5.5.8,直接调用PdfReader reader = new PdfReader(filename);来解析中文pdf提示以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString
at com.itextpdf.text.pdf.PdfEncryption.<init>(PdfEncryption.java:149)
at com.itextpdf.text.pdf.PdfReader.readDecryptedDocObj(PdfReader.java:1024)
at com.itextpdf.text.pdf.PdfReader.readDocObj(PdfReader.java:1427)
at com.itextpdf.text.pdf.PdfReader.readPdf(PdfReader.java:732)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:181)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:219)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:207)
at com.itextpdf.text.pdf.PdfReader.<init>(PdfReader.java:197)
at com.notes.pdf.PdfUtil.getText(PdfUtil.java:45)
at com.notes.pdf.PdfUtil.main(PdfUtil.java:18)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.ASN1OctetString
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 10 more

【解决办法】

引入bcprov-ext-jdk15on-154.jar,即可以解决问题

如果使用maven,可以引入

<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.54</version>
</dependency>

静默虚空 | 园豆:177 (初学一级) | 2016-03-02 14:48

补充一下,这个应该是加密的pdf文档,如果不引入bcprov-ext,无法解析加密文档

支持(0) 反对(0) 静默虚空 | 园豆:177 (初学一级) | 2016-03-02 14:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册