2016-09-19 68 views
-1

我使用PDFBox來確定PDF文件是否受密碼保護。 這是我的代碼:即使我可以打開文件,PDFBox返回isEncrypted爲真

boolean isProtected = pdfDocument.isEncrypted(); 

我的文件屬性是sceenshot。 在這裏我得到isProtected= true即使我可以打開它沒有密碼。

注意:此文件具有文檔打開密碼:否和權限密碼:是。

click here to view file

+0

@Tilman在他的回答中正確地描述了你所處的情況,但那是你想要的嗎?你的「問題」錯過了一個實際的問題。 – mkl

回答

0

你的PDF有一個空的用戶密碼和一個非空的所有者密碼。是的,它是加密的。這是爲了防止人們做某些事情,例如內容複製。

這不是一個真正的安全;查看器軟件有責任注意不允許「禁止」操作。

你可以找到一個更長(有點有趣)的解釋here

要查看文檔訪問權限,請使用PDDocument.getCurrentAccessPermission()。 。

在2.0 *,用戶將能夠查看一個文件,如果這個調用成功:

PDDocument doc = PDDocument.load(file); 

如果InvalidPasswordException被拋出,那麼就意味着需要一個非空口令。

+0

感謝您的重播,我希望如果用戶可以查看pdf而無需密碼,並且假如用戶無法在沒有密碼的情況下打開pdf文件,那麼您可以在這裏幫助我。在我上面的場景中,用戶可以打開/查看沒有密碼的pdf文件,那麼它應該返回true。 –

+0

在2.0。*中,如果您可以使用PDDocument.load(File)打開文件,則表示用戶可以查看它。 –

+0

你好,我準備將pdfbox遷移到2.0.2。什麼是pdfbox 2.0.2中的pDFTextStripper.resetEngine()的等效方法 –

相關問題