这是我在这里的第一个问题,我没有找到任何解决问题的方法。请不要误会,如果我的文字是坏的英文。
对于我的程序,我想调整现有 PDF 文档中的图像大小。这应该在 Java 程序中自动发生。在搜索过程中,我在网上找到了 Ghost4j 库,它可以解决我的问题——也许吧!
作为第一次使用 Ghost4j 测试它是否有效,我想从 MySQL 数据库中加载我的 PDF 文档并检查 pageCount。
这是我的短代码:
...
for (File file : convertableFiles) {
InputStream inputStream = new ByteArrayInputStream(file.getFile());
PDFDocument doc = new PDFDocument();
doc.load(inputStream);
System.out.println(doc.getPageCount());
}
...
错误出现在第 45 行 = doc.load(inputStream)
(注意:如果我对 doc.load 使用 new File(Path) 并设置一个 pdfSample 文档。它可以工作。但不能使用 inputStream)
当我执行我的程序时,我每次都会得到这个 Excption:
Sep 29, 2014 4:54:53 PM ch.carauktion.dbresize.DBFileResizer convert
INFORMATION: P1 (asc): 0 / 1
Sep 29, 2014 4:54:54 PM ch.carauktion.dbresize.DBFileResizer run
SCHWERWIEGEND: P1 (asc): Exception
java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1OctetString
at com.lowagie.text.pdf.PdfEncryption.<init>(Unknown Source)
at com.lowagie.text.pdf.PdfReader.readDecryptedDocObj(Unknown Source)
at com.lowagie.text.pdf.PdfReader.readDocObj(Unknown Source)
at com.lowagie.text.pdf.PdfReader.readPdf(Unknown Source)
at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
at com.lowagie.text.pdf.PdfReader.<init>(Unknown Source)
at org.ghost4j.document.PDFDocument.load(PDFDocument.java:45)
at ch.carauktion.dbresize.pdf.DBPdfResizer.convertFiles(DBPdfResizer.java:50)
at ch.carauktion.dbresize.DBFileResizer.convert(DBFileResizer.java:114)
at ch.carauktion.dbresize.DBFileResizer.run(DBFileResizer.java:59)
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.asn1.ASN1OctetString
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 10 more
对于这个项目实现了库,这些库都来自下载的 ghost4j 包:
- 幽灵4j-0.5.1
- iText-2.1.7
- jna-3.3.0
- log4j-1.2.15
- 公共日志记录-1.1.1
- commons-io-1.3.1
- commons-beanutils-1.8.3
我搜索此错误时的示例站点:
http://sourceforge.net/p/itext/mailman/itext-questions/thread/4F422974.1070002@redlab.be/
我知道 iText 2.1.7 不再受支持,我应该使用 5.xx 版,但在这里下载最新的 iText Lib 不起作用,而在 Ghost4j Jar 中显然使用的是 Lib 2.1.7。否则,也许是我的错,我现在不明白如何正确实施最新版本。
PS:我正在使用 Java 1.7、Eclipse Kepler、Windows 8.1
我会很高兴,有人知道任何解决方案或可以帮助我一点。
武德曼