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

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

Introduction

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

Prototype

public boolean isTampered() 

Source Link

Document

Checks if the document was changed.

Usage

From source file:digiho.reading.java

public static void main(String[] args) {
    try {// w w  w . j av  a  2s.co m

        PdfReader reader = new PdfReader("G:\\43211688.pdf");
        System.out.println("This PDF has " + reader.getNumberOfPages() + " pages.");
        String page = PdfTextExtractor.getTextFromPage(reader, 2);
        System.out.println("Page Content:\n\n" + page + "\n\n");
        System.out.println("Is this document tampered: " + reader.isTampered());
        System.out.println("Is this document encrypted: " + reader.isEncrypted());

    } catch (IOException e) {
        e.printStackTrace();
    }

}

From source file:tutorials.readpdf.readpdf.java

public static void main(String[] args) {

    try {/*  w  w w. j  a  v  a2s .  co  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.wa.tika.parser.pdf.itext.PDFParser.java

License:Apache License

private static void extractMetadata(PdfReader reader, Metadata metadata) {
    try {/*from  w ww  .jav a  2  s . c o m*/
        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();
    }
}