List of usage examples for com.itextpdf.text.pdf PdfReader isEncrypted
public boolean isEncrypted()
true
if the PDF is encrypted. From source file:org.h819.commons.file.MyPDFUtilss.java
/** * ??? findEcryptPdf()//from ww w. j ava 2 s .c o m * * @param srcPdfFileDir * @throws java.io.IOException */ private static void testEcryptPdf(File srcPdfFileDir) throws IOException { encryptPdfNamesTemp = new StringBuffer(); if (!srcPdfFileDir.isDirectory()) { logger.info("srcPdfFileDir is not a Directory: " + srcPdfFileDir.getAbsolutePath()); return; } File listFiles[] = srcPdfFileDir.listFiles(); if (listFiles.length == 0) { logger.info("srcPdfFileDir has not file. " + srcPdfFileDir.getAbsolutePath()); return; } // logger.info(descPdfFileDir.getAbsolutePath()); for (File f : listFiles) { String fileName = f.getName(); String extensiion = FilenameUtils.getExtension(fileName).toLowerCase(); if (f.isFile()) { if (extensiion.equals("pdf")) { // ??? 0 40 M if (FileUtils.sizeOf(f) == 0 || FileUtils.sizeOf(f) > 40 * 1000000) { encryptPdfNamesTemp.append("size > 40M :" + f.getAbsolutePath() + "\n"); continue; } PdfReader reader = null; try { reader = getPdfReader(f); } catch (BadPasswordException e) { // ?? e.printStackTrace(); encryptPdfNamesTemp.append("can not open :" + f.getAbsolutePath() + "\n"); continue; } catch (Exception e2) { encryptPdfNamesTemp.append("other exception :" + f.getAbsolutePath() + "\n"); e2.printStackTrace(); continue; } // logger.info("fileDesc name :" + fileDesc.getAbsolutePath()); if (reader.isEncrypted()) {// encryptPdfNamesTemp.append("encrypted :" + f.getAbsolutePath() + "\n"); reader.close(); continue; } else { logger.info("not encrypted :" + f.getAbsoluteFile()); reader.close(); continue; } } // end if f.isFile else continue; } else if (f.isDirectory()) { testEcryptPdf(f); } // end if f.isDirectory else continue; } // end for }
From source file:org.opencps.pki.PdfSigner.java
License:Open Source License
/** * Sign document with external signature container *///from www .j a va2 s.co m protected Boolean signExternal(ExternalSignatureContainer container, String filePath) throws SignatureException { if (signatureFieldName == null || signatureFieldName.length() == 0) { throw new SignatureException("You must set signature field name before sign the document"); } Boolean signed = false; try { OutputStream os = new FileOutputStream(getSignedFilePath()); PdfReader reader = new PdfReader(filePath); if (!reader.isEncrypted()) { MakeSignature.signDeferred(reader, signatureFieldName, os, container); reader.close(); os.close(); signed = true; } } catch (Exception e) { throw new SignatureException(e.getMessage(), e); } return signed; }
From source file:tutorials.readpdf.readpdf.java
public static void main(String[] args) { try {//from w w w . j a v a 2s. c o m PdfReader reader = new PdfReader("test.pdf"); System.out.println("This PDF has " + reader.getNumberOfPages() + " pages."); System.out.println("Is this document tampered: " + reader.isTampered()); System.out.println("Is this document encrypted: " + reader.isEncrypted()); for (int i = 1; i <= reader.getNumberOfPages(); i++) { String page = PdfTextExtractor.getTextFromPage(reader, i); System.out.println("Page Content:\n\n" + page + "\n\n"); } reader.close(); } catch (IOException e) { e.printStackTrace(); } }
From source file:uk.bl.dpt.qa.flint.wrappers.iTextWrapper.java
License:Apache License
/** * Check if a PDF file has DRM or not//from w w w. j av a 2 s. co m * @param pFile file to check * @return whether the file is had DRM or not */ public boolean hasDRM(File pFile) { boolean drm = false; PdfReader reader = null; try { reader = new PdfReader(pFile.getAbsolutePath()); drm = reader.isEncrypted(); } catch (BadPasswordException e) { //assume drm drm = true; } catch (IOException e) { // TODO Auto-generated catch block //e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { if (reader != null) reader.close(); } return drm; }
From source file:uk.bl.wa.tika.parser.pdf.itext.PDFParser.java
License:Apache License
private static void extractMetadata(PdfReader reader, Metadata metadata) { try {//from ww w . ja v a2 s . c om HashMap<String, String> map = reader.getInfo(); // Clone the PDF info: for (String key : map.keySet()) { metadata.set(key.toLowerCase(), map.get(key)); } // Add other data of interest: metadata.set("pdf:version", "1." + reader.getPdfVersion()); metadata.set("pdf:numPages", "" + reader.getNumberOfPages()); metadata.set("pdf:cryptoMode", "" + getCryptoModeAsString(reader)); metadata.set("pdf:openedWithFullPermissions", "" + reader.isOpenedWithFullPermissions()); metadata.set("pdf:encrypted", "" + reader.isEncrypted()); metadata.set("pdf:metadataEncrypted", "" + reader.isMetadataEncrypted()); metadata.set("pdf:128key", "" + reader.is128Key()); metadata.set("pdf:tampered", "" + reader.isTampered()); // Also grap XMP metadata, if present: byte[] xmpmd = reader.getMetadata(); if (xmpmd != null) { // This is standard Tika code for parsing standard stuff from the XMP: JempboxExtractor extractor = new JempboxExtractor(metadata); extractor.parse(new ByteArrayInputStream(xmpmd)); // This is custom XMP-handling code: XMPMetadata xmp = XMPMetadata.load(new ByteArrayInputStream(xmpmd)); // There is a special class for grabbing data in the PDF schema - not sure it will add much here: // Could parse xmp:CreatorTool and pdf:Producer etc. etc. out of here. //XMPSchemaPDF pdfxmp = xmp.getPDFSchema(); // Added a PDF/A schema class: xmp.addXMLNSMapping(XMPSchemaPDFA.NAMESPACE, XMPSchemaPDFA.class); XMPSchemaPDFA pdfaxmp = (XMPSchemaPDFA) xmp.getSchemaByClass(XMPSchemaPDFA.class); if (pdfaxmp != null) { metadata.set("pdfaid:part", pdfaxmp.getPart()); metadata.set("pdfaid:conformance", pdfaxmp.getConformance()); String version = "A-" + pdfaxmp.getPart() + pdfaxmp.getConformance().toLowerCase(); //metadata.set("pdfa:version", version ); metadata.set("pdf:version", version); } } // Attempt to determine Adobe extension level: PdfDictionary extensions = reader.getCatalog().getAsDict(PdfName.EXTENSIONS); if (extensions != null) { PdfDictionary adobeExt = extensions.getAsDict(PdfName.ADBE); if (adobeExt != null) { PdfName baseVersion = adobeExt.getAsName(PdfName.BASEVERSION); int el = adobeExt.getAsNumber(PdfName.EXTENSIONLEVEL).intValue(); metadata.set("pdf:version", baseVersion.toString().substring(1) + " Adobe Extension Level " + el); } } // Ensure the normalised metadata are mapped in: if (map.get("Title") != null) metadata.set(Metadata.TITLE, map.get("Title")); if (map.get("Author") != null) metadata.set(Metadata.AUTHOR, map.get("Author")); } catch (Exception e) { System.err.println("PDFParser.extractMetadata() caught Exception: " + e.getMessage()); e.printStackTrace(); } }