2016-12-23 11 views
1

私のファイルがPDDocumentオブジェクトにロードされていない理由を理解できません。Java pdfboxファイルがロードされていません

次のように私のプロセスは次のとおりです。

  • オープンディレクトリのファイルとして
  • は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が有効であることを保証することができます。

助けてくれてありがとう!代わりに、このようなあなたのドキュメントをロードする

答えて

0

:(宜しければ)あなたはloadが静的​​メソッドであることを、あなたのIDEで警告を見ている必要があります

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

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

これを行います。あなたのコードが何をしたか

enter image description here

空PDDocumentオブジェクト内のページ数を示すことでした。

この回答は2.0。*のみに適用されます。 1.8。*では、PDFが暗号化されていない限り動作します。それをカバーするには、loadの代わりにloadNonSeqを使用してください。これも復号化されます。

+0

優秀、ありがとうございます! – btbam91

関連する問題