2015-10-14 47 views
0

這裏是我的代碼知道,我在閱讀PDF格式的密碼保護與否:PDFBOX「isEncrypted」 API是不會放棄理想的結果

public static boolean isPasswordProtected(File document) 
{ 
    boolean ret = false; 
    try { 
     PDDocument originalPdfDoc = PDDocument.load(document); 
     ret = originalPdfDoc.isEncrypted();  
     originalPdfDoc.close(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }   
    return ret; 
} 

但對於某些PDF文件雖然沒有密碼保護,它仍然是真的。這是否知道pdf是否受密碼保護的正確方法?

回答

0

這取決於你需要知道的。一些PDF文件使用空的用戶密碼進行加密,如果這些文件具有有限的權限,則會執行此操作。如果你想接受這些,你應該嘗試用openProtection()來解鎖:

doc.openProtection(new StandardDecryptionMaterial("")); 

且僅當失敗(用CryptographyException),返回true。

(這個答案是1.8 *只)。

參見這裏: How to distinguish between two encrypted/secured PDF files

+0

的感謝!有效。 –

+0

@RajMalhotra然後點擊綠色複選標記:-) –