gpt4 book ai didi

java - 创建 PdfReader 实例会引发异常并使程序崩溃

转载 作者:行者123 更新时间:2023-12-01 22:51:30 29 4
gpt4 key购买 nike

在阅读不同的pdf文档时,我遇到了一个问题,很难找到其原因。我刚刚运行了两个 pdf 的源代码,其属性如下所示,并且我得到了页数。然而,每当我读到第三个标有 * (PDF 2) 的内容时,我的程序就会崩溃,并且无法捕获抛出的空异常。我想知道为什么程序崩溃以及为什么我无法捕获抛出的异常。此外,我该如何解决这个问题?

更新:

itext版本:itext 5.5.1 文件已购买, claim 者限制我与第三方或在网站上共享

文档属性

 Abbreviation: A: ALLOWED   NA: NOT ALLOWED    NS: NO SECURİTY  AV: ALL VERSION

PDF 1 PDF 2 PDF 3
*
printing | A A A
document assembly | NA NA NA
content copying | A A A
content copying for accessibility | A A A
page extraction | NA NA NA
commenting | A NA A
filling of form fields | A NA A
signing | NA NA NA
creation of template pages | A NA A
security mode | NS PASSWORD SECURITY NS
can be opened by | AV ACROBAT 7.0 AND LATER AV
tagged pdf | YES NO NO

^
^
Note of PDF 2: All contents of document are encrypted and search engine cannot access the document's metadata

代码

    PdfReader pdfReader = null;
try {
RandomAccessFile rAF = new RandomAccessFile(this.openFilePath, "r");
RandomAccessSourceFactory sF = new RandomAccessSourceFactory();
RandomAccessFileOrArray rA = new RandomAccessFileOrArray( sF.createSource(rAF));

System.out.println("[DEBUG] - 4");
System.out.flush();
pdfReader = new PdfReader(rA, null);

System.out.println("[DEBUG] - 5");
System.out.flush();
this.totalPage = pdfReader.getNumberOfPages();

System.out.println("[DEBUG] - 6");
System.out.flush();
} catch (Exception e) {
// Technical Exception
System.out.println("[DEBUG] - 7");
System.out.flush();
e.printStackTrace();
} finally {
System.out.println("[DEBUG] - In finally clause");
System.out.flush();

line 179 pdfReader.close();

System.out.println("[DEBUG] - Near Out of finally clause");
System.out.flush();
}
System.out.printf("[DEBUG] - pdfReader\n");
System.out.flush();

抛出异常

[DEBUG] - 4
[DEBUG] - In finally clause
Exception in thread "main" java.lang.NullPointerException
at extractTotalPageNo(ControlCenter.java:179)
at control(ControlCenter.java:99)
at Manage.main(Management.java:22)

最佳答案

我已经根据@Henry的建议运行了该程序。

后来,我意识到系统实际上会导致错误,因为我忘记将 BouncyCaSTLe jar 添加到我的 CLASSPATH 中。包裹。当程序尝试读取加密文档时,我认为它会调用 iText 的 PdfReader 构造函数中的加密功能。

此外,由于 iText 依赖于 BouncyCaSTLe,因此 java 编译器会提示没有找到具有调用的加密函数的类。

总之,解决方案是将 BouncyCaSTLe jar 添加到我的 CLASSPATH 中。

关于java - 创建 PdfReader 实例会引发异常并使程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24676952/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com