Example usage for com.itextpdf.text.pdf PdfReader isEncrypted

List of usage examples for com.itextpdf.text.pdf PdfReader isEncrypted

Introduction

In this page you can find the example usage for com.itextpdf.text.pdf PdfReader isEncrypted.

Prototype

public boolean isEncrypted() 

Source Link

Document

Returns true if the PDF is encrypted.

Usage

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();
    }
}