gpt4 book ai didi

Java pdfbox 文件未加载

转载 作者:太空宇宙 更新时间:2023-11-04 11:56:50 28 4
gpt4 key购买 nike

我无法弄清楚为什么我的文件没有加载到 PDDocument 对象中。

我的流程如下:

  • 将目录作为文件打开
  • 从目录中获取文件数组
  • 将文件加载到 PDDocument 中。

请参阅下面的代码。

public class Main {

public static void main(String[] args) throws IOException {

//open directory
File folder = new File("pdfs");

//Extract Files
File[] files = folder.listFiles();

//print out file names
for (File file:files) {
System.out.println(file.getName());
System.out.println("Can read?: " + file.canRead());
System.out.println("Can write?: " + file.canWrite());
}


//Load PDF
PDDocument firstDocument = new PDDocument();

try {
firstDocument.load(files[0]);
}
finally
{
if (firstDocument != null) {
firstDocument.close();

}
}

System.out.println("Num Pages: " + firstDocument.getNumberOfPages());

输出:

EnterpriseArchitectInvoice.pdf
Can read?: true
Can write?: true
ooad_textbooks_invoice.pdf
Can read?: true
Can write?: true
Num Pages: 0

我可以保证该 PDF 是有效的。

感谢您的帮助!!!

最佳答案

不要像这样加载文档:

PDDocument firstDocument = new PDDocument();
firstDocument.load(files[0]);

这样做:

PDDocument firstDocument = PDDocument.load(files[0]);

您应该已经看到 IDE 发出的警告(如果它正常的话):load 是一个静态方法。

enter image description here

您的代码所做的是显示空 PDDocument 对象中的页数。

请注意,此答案仅适用于 2.0.*。在 1.8.* 中,它也可能有效,除非 PDF 已加密。为了解决这个问题,请使用 loadNonSeq 而不是 load,它也会解密。

关于Java pdfbox 文件未加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41306721/

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