Java pdfbox文件未加载

时间:2016-12-23 19:09:10

标签: java load pdfbox

我无法弄清楚为什么我的文件没有加载到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有效。

感谢您的帮助!!!

1 个答案:

答案 0 :(得分:0)

而不是像这样加载你的文件:

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,这也会解密。