Sådan kontrollerer du, om en PDF er adgangskodebeskyttet eller ej
Brug Apache PDFBox - Java PDF Library herfra:
Eksempelkode:
try
{
document = PDDocument.load( "C:\\abc.pdf");
if(document.isEncrypted())
{
//Then the pdf file is encrypeted.
}
}
I den gamle version af PDFBox
try
{
InputStream fis = new ByteArrayInputStream(pdfBytes);
PDDocument doc = PDDocument.load(fis);
if(doc.isEncrypted())
{
//Then the pdf file is encrypeted.
}
}
I den nyere version af PDFBox (f.eks. 2.0.4)
InputStream fis = new ByteArrayInputStream(pdfBytes);
boolean encrypted = false;
try {
PDDocument doc = PDDocument.load(fis);
if(doc.isEncrypted())
encrypted=true;
doc.close();
}
catch(InvalidPasswordException e) {
encrypted = true;
}
return encrypted;
Måden jeg gør det på er ved at forsøge at læse PDF-filen ved hjælp af PdfReader
uden at give adgangskode selvfølgelig. Hvis filen er beskyttet med adgangskode, en BadPasswordException
vil blive kastet. Dette bruger iText-biblioteket.