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:at.laborg.briss.utils.DocumentCropper.java

License:Open Source License

private static boolean isPasswordRequired(final File file) throws IOException {
    PdfReader reader = new PdfReader(file.getAbsolutePath());
    boolean isEncrypted = reader.isEncrypted();
    reader.close();//from  w w  w  .  j  a  v  a2 s. co m
    return isEncrypted;
}

From source file:com.innoviu.signature.Signature.java

public static void main(String[] args) {
    boolean isEncrypted = false;
    boolean isFailed = false;
    try {//  w  ww. ja  v  a 2 s.c o m
        if (args.length < 2) {
            throw new FileNotFoundException();
        }
        PdfReader reader = new PdfReader(args[0]);
        isEncrypted = reader.isEncrypted();
        String suffix = ".pdf";
        if (isEncrypted) {
            System.out.println("Encrypted");
            String[] cmd = { "pdftk", args[0], "output", args[0] + ".pdftk.pdf" };
            try {
                Process proc = Runtime.getRuntime().exec(cmd);
                proc.waitFor();
            } catch (Exception e) {
                System.out.println("Exception is:" + e);
            }
            reader = new PdfReader(args[0] + ".pdftk.pdf");
            suffix = ".dec.pdf";
        }
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(args[0] + suffix));
        PdfContentByte over = stamper.getOverContent(1);
        String type = args[2];
        int xpos = 0;
        //int xpos = (type == "in") ? 120 : 10;
        if ("in".equals(type)) {
            xpos = 0;
        } else {
            xpos = 120;
        }
        over.setColorFill(BaseColor.WHITE);
        over.rectangle(xpos + 10, 8, 120, 8);
        over.fill();
        over.beginText();
        BaseFont bf_times = BaseFont.createFont(BaseFont.TIMES_ROMAN, "Cp1252", false);
        over.setFontAndSize(bf_times, 6);
        over.setColorFill(BaseColor.BLACK);
        over.showTextAligned(PdfContentByte.ALIGN_RIGHT, args[1], 120 + xpos, 10, 0);
        over.endText();
        stamper.close();
        if (isEncrypted) {
            File file = new File(args[0] + ".pdftk.pdf");
            file.delete();
        }
    } catch (FileNotFoundException e) {
        isFailed = true;
        e.printStackTrace();
    } catch (DocumentException e) {
        isFailed = true;
        e.printStackTrace();
    } catch (IOException e) {
        isFailed = true;
        e.printStackTrace();
    } finally {
        if (isEncrypted) {
            maintain(args[0]);
        } else if (isFailed) {
            fail(args[0]);
        } else {

        }
    }
}

From source file:com.qmetric.document.watermark.DefaultPdfStamperFactory.java

License:Open Source License

@Override
public PdfStamper newPdfStamper(final PdfReader pdfReader, final FileContent fileContent) {
    try {/*from   www. j a v a2s .co  m*/
        final PdfStamper pdf = new PdfStamper(pdfReader, fileContent.getOutputStream());

        if (pdfReader.isEncrypted()) {
            pdf.setEncryption(null, ownerPassword, pdfReader.getPermissions(), pdfReader.getCryptoMode());
        }

        return pdf;
    } catch (IOException ioe) {
        throw new RuntimeException(ioe);
    } catch (com.itextpdf.text.DocumentException e) {
        throw new RuntimeException(e);
    }
}

From source file:digiho.reading.java

public static void main(String[] args) {
    try {//w w w  .  j  a v  a2  s.  c  o  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:net.sf.regain.crawler.preparator.PdfItextPreparator.java

License:Open Source License

/**
 * Prpariert ein Dokument fr die Indizierung.
 *
 * @param rawDocument Das zu prpariernde Dokument.
 * @throws net.sf.regain.RegainException Wenn die Prparation fehl schlug.
 *///  w w  w.  j ava2 s.  c  om
@SuppressWarnings("unchecked")
public void prepare(RawDocument rawDocument) throws RegainException {
    String url = rawDocument.getUrl();

    InputStream stream = null;
    PdfReader reader = null;

    try {
        // Create a InputStream that reads the content.
        stream = rawDocument.getContentAsStream();

        // Parse the content
        reader = new PdfReader(stream);
        if (reader.isEncrypted()) {
            reader = new PdfReader(stream, OWNER_PASSWORD);
        }
        PdfReaderContentParser parser = new PdfReaderContentParser(reader);

        TextExtractionStrategy strategy;
        StringBuilder stringBuilder = new StringBuilder();
        for (int i = 1; i <= reader.getNumberOfPages(); i++) {
            strategy = parser.processContent(i, new SimpleTextExtractionStrategy());
            stringBuilder.append(strategy.getResultantText());

        }

        setCleanedContent(stringBuilder.toString());

        // Get metadata
        Map<String, String> info = reader.getInfo();

        StringBuilder metaData = new StringBuilder();
        metaData.append("p.");
        metaData.append(Integer.toString(reader.getNumberOfPages()));
        metaData.append(" ");

        // Check if fields are null
        String author = info.get("Author");
        String creator = info.get("Creator");
        String subject = info.get("Subject");
        String keywords = info.get("Keywords");
        String title = info.get("Title");

        if (author != null) {
            metaData.append(author);
            metaData.append(" ");
        }
        if (creator != null) {
            metaData.append(creator);
            metaData.append(" ");
        }
        if (subject != null) {
            metaData.append(subject);
            metaData.append(" ");
        }
        if (keywords != null) {
            metaData.append(keywords);
            metaData.append(" ");
        }

        if (title != null) {
            setTitle(title);
        }

        setCleanedMetaData(metaData.toString());
        if (log.isDebugEnabled()) {
            log.debug("Extracted meta data ::" + getCleanedMetaData() + ":: from " + rawDocument.getUrl());
        }

    } catch (IOException exc) {
        throw new RegainException("Error reading document: " + url, exc);
    } catch (Exception exc) {
        // They didn't supply a password and the default of "" was wrong.
        throw new RegainException("Unknown error parsing document: " + url, exc);

    } finally {
        if (stream != null) {
            try {
                stream.close();
            } catch (Exception exc) {
            }
        }
        if (reader != null) {
            try {
                reader.close();
            } catch (Exception exc) {
            }
        }
    }
}

From source file:org.gmdev.pdftrick.engine.CheckFiles.java

License:Open Source License

/**
 * method that check is single pdf has a User password protected, set userProtection = true if BadPasswordException;
 * @param File/*from  w  ww  .  java  2 s. c  o  m*/
 */
private void hasProtection(File file) {
    PdfReader reader = null;
    try {
        reader = new PdfReader(file.getPath());
        if (reader != null) {
            if (reader.isEncrypted()) {
                ownerProtection = true;
            }
            reader.close();
        }
    } catch (BadPasswordException e) {
        userProtection = true;
    } catch (IOException e) {
        logger.error("Exception", e);
        PdfTrickMessages.append("ERROR", Consts.SENDLOG_MSG);
    }
}

From source file:org.h819.commons.file.MyPDFUtils.java

/**
 * ??? pdf /* w w  w. j  a va 2 s.com*/
 * windows 
 * "PDF Password Remover v4.0" ??
 *
 * @param srcPdf         pdf 
 * @param descPdf       ? pdf 
 * @param ownerPassword ??????
 * @param badDirectory  ?? pdf 
 * @throws java.io.IOException
 */
public static void decryptFile(File srcPdf, File descPdf, String ownerPassword, File badDirectory)
        throws IOException {

    String extension = FilenameUtils.getExtension(srcPdf.getAbsolutePath());

    if (!extension.equalsIgnoreCase("pdf"))
        return;

    // ??? 0 ?
    if (FileUtils.sizeOf(srcPdf) == 0) {
        logger.info("{} size =0 ,copy to {}", srcPdf.getAbsoluteFile(), badDirectory.getAbsoluteFile());
        FileUtils.copyDirectory(srcPdf, badDirectory, true);
        return;
    }

    try {

        PdfReader reader;
        if (ownerPassword != null)
            reader = getPdfReader(srcPdf, ownerPassword);
        else
            reader = getPdfReader(srcPdf);

        if (!reader.isEncrypted()) {// ?
            FileUtils.copyFile(srcPdf, descPdf);
            logger.info("not encrypted,copy {} to {} ", srcPdf.getAbsolutePath(), descPdf.getAbsoluteFile());
            return;
        }

        List<ExecParameter> list = new ArrayList(2);
        list.add(new ExecParameter("-i", srcPdf.getAbsolutePath())); // ? key  value
        list.add(new ExecParameter("-o", descPdf.getAbsolutePath()));
        //            list.add(new ExecParameter("-u", ""));
        //            list.add(new ExecParameter("-w", ""));
        MyExecUtils.exec(Paths.get(getPdfPdfdecryptExec()), list, 1);
        logger.info("decrypted {} to {}", srcPdf.getAbsolutePath(), descPdf.getAbsolutePath());
        // ??
        reader.close();

    } catch (BadPasswordException e) {
        // ???
        logger.info("{} has user password ,copy to {}", srcPdf.getAbsoluteFile(),
                badDirectory.getAbsoluteFile());
        FileUtils.copyFileToDirectory(srcPdf, badDirectory, true);
        e.printStackTrace();
        return;
    } catch (IOException e) {
        e.printStackTrace();
    }

}

From source file:org.h819.commons.file.MyPDFUtils.java

/**
 * ??? findEncryptPdf()//from   w  ww . jav  a2  s. c o  m
 *
 * @param srcPdfFileDir 
 * @throws java.io.IOException
 */
private static void testEcryptPdf(File srcPdfFileDir) throws IOException {

    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 extension = FilenameUtils.getExtension(fileName).toLowerCase();

        if (f.isFile()) {

            if (extension.equals("pdf")) {

                // ??? 0  40 M 
                if (FileUtils.sizeOf(f) == 0) {

                    tempList.add("size ==0 40M :" + f.getAbsolutePath());
                    continue;
                }

                PdfReader reader;
                try {
                    reader = getPdfReader(f);
                } catch (BadPasswordException e) {
                    // ??
                    e.printStackTrace();
                    tempList.add("BadPassword,can not open :" + f.getAbsolutePath());
                    continue;
                }
                // logger.info("fileDesc name :" + fileDesc.getAbsolutePath());

                if (reader.isEncrypted()) {// 
                    tempList.add("encrypted :" + f.getAbsolutePath());
                    reader.close();
                    continue;
                } else {
                    tempList.add("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.h819.commons.file.MyPDFUtils.java

/**
 * pdf??? getPageCount()/*from   ww  w . j  ava  2s  . c o m*/
 *
 * @param srcPDFFileDir 
 * @return
 * @throws IOException
 */
private static void countNumberOfPagesOfDir(File srcPDFFileDir) throws IOException {

    if (srcPDFFileDir == null || !srcPDFFileDir.isDirectory())
        throw new FileNotFoundException(srcPDFFileDir + "'is null or dose not exist.");

    Collection<File> listPDFs = FileUtils.listFiles(srcPDFFileDir, null, true);
    for (File f : listPDFs) {

        // 
        if (f.isDirectory())
            countNumberOfPagesOfDir(f);

        if (!FilenameUtils.getExtension(f.getName().toUpperCase()).equals("PDF"))
            continue;
        // System.out.println(f.getPath());
        // we create a reader for a certain document
        PdfReader reader = getPdfReader(f);
        // we retrieve the total number of pages
        // 
        if (reader.isEncrypted())
            continue;

        numberOfPagesOfDirectory = numberOfPagesOfDirectory + reader.getNumberOfPages();

    }
}

From source file:org.h819.commons.file.MyPDFUtilss.java

/**
 * ??? pdf /*from  ww w  . j  ava  2  s .  co m*/
 * windows 
 * "PDF Password Remover v4.0" ??
 *
 * @param srcPdf        pdf 
 * @param descPdf      ? pdf 
 * @param badDirectory ?? pdf 
 * @throws java.io.IOException
 */

public static void decryptFile(File srcPdf, File descPdf, File badDirectory) {

    String extension = FilenameUtils.getExtension(srcPdf.getAbsolutePath());

    if (!extension.equalsIgnoreCase("pdf"))
        return;
    // ??? 0 ?
    if (FileUtils.sizeOf(srcPdf) == 0) {
        logger.info("{} size =0 ,copy to {}", srcPdf.getAbsoluteFile(), badDirectory.getAbsoluteFile());
        MyFileUtils.copyFileToDirectory(srcPdf, badDirectory);
        return;
    }

    try {

        PdfReader reader = getPdfReader(srcPdf);
        if (!reader.isEncrypted()) {// ?
            FileUtils.copyFile(srcPdf, descPdf);
            logger.info("not encrypted,copy {} to {} ", srcPdf.getAbsolutePath(), descPdf.getAbsoluteFile());
            return;
        }

        List<ExecParameter> list = new ArrayList<>();
        list.add(new ExecParameter("-i", srcPdf.getAbsolutePath())); // ? key  value
        list.add(new ExecParameter("-o", descPdf.getAbsolutePath()));
        //            list.add(new ExecParameter("-u", ""));
        //            list.add(new ExecParameter("-w", ""));
        MyExecUtils.exec(Paths.get(getPdfPdfdecryptExec()), list, 1);
        logger.info("encrypted {} to {}", srcPdf.getAbsolutePath(), descPdf.getAbsolutePath());
        // ??
        reader.close();

    } catch (BadPasswordException e) {
        // ???
        logger.info("{} has user password ,copy to {}", srcPdf.getAbsoluteFile(),
                badDirectory.getAbsoluteFile());
        MyFileUtils.copyFileToDirectory(srcPdf, badDirectory);
        e.printStackTrace();
        return;
    } catch (IOException e) {
        e.printStackTrace();
    }

}