Example usage for com.lowagie.text.pdf PdfEncryptor getPermissionsVerbose

List of usage examples for com.lowagie.text.pdf PdfEncryptor getPermissionsVerbose

Introduction

In this page you can find the example usage for com.lowagie.text.pdf PdfEncryptor getPermissionsVerbose.

Prototype

public static String getPermissionsVerbose(int permissions) 

Source Link

Document

Give you a verbose analysis of the permissions.

Usage

From source file:it.pdfsam.console.tools.pdf.PdfEncrypt.java

License:Open Source License

/**
 * Execute the encrypt command. On error an exception is thrown.
 * @throws EncryptException/*from  www  .j a  v a2s  .  c  o  m*/
 */
public void execute() throws EncryptException {
    try {
        workingIndeterminate();
        out_message = "";
        int f = 0;
        for (Iterator f_list_itr = f_list.iterator(); f_list_itr.hasNext();) {
            String file_name = f_list_itr.next().toString();
            prefixParser = new PrefixParser(prefix_value, new File(file_name).getName());
            File tmp_o_file = TmpFileNameGenerator.generateTmpFile(o_dir.getAbsolutePath());
            out_message += LogFormatter.formatMessage("Temporary file created-\n");
            PdfReader pdfReader = new PdfReader(new RandomAccessFileOrArray(file_name), null);
            HashMap meta = pdfReader.getInfo();
            meta.put("Creator", MainConsole.CREATOR);
            PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream(tmp_o_file));
            if (compressed_boolean) {
                pdfStamper.setFullCompression();
            }
            pdfStamper.setMoreInfo(meta);
            pdfStamper.setEncryption(etype, u_pwd, a_pwd, user_permissions);
            pdfStamper.close();
            /*PdfEncryptor.encrypt(pdf_reader,new FileOutputStream(tmp_o_file), etype, u_pwd, a_pwd,user_permissions, meta);*/
            File out_file = new File(o_dir, prefixParser.generateFileName());
            renameTemporaryFile(tmp_o_file, out_file, overwrite_boolean);
            f++;
        }
        out_message += LogFormatter.formatMessage("Pdf files encrypted in " + o_dir.getAbsolutePath() + "-\n"
                + PdfEncryptor.getPermissionsVerbose(user_permissions));
    } catch (Exception e) {
        throw new EncryptException(e);
    } finally {
        workCompleted();
    }
}

From source file:org.pdfsam.console.business.pdf.handlers.EncryptCmdExecutor.java

License:Open Source License

public void execute(AbstractParsedCommand parsedCommand) throws ConsoleException {

    if ((parsedCommand != null) && (parsedCommand instanceof EncryptParsedCommand)) {

        EncryptParsedCommand inputCommand = (EncryptParsedCommand) parsedCommand;
        setPercentageOfWorkDone(0);//from   www  . ja va  2s  .  c o m
        int encType = PdfWriter.STANDARD_ENCRYPTION_40;
        PrefixParser prefixParser;
        try {
            PdfFile[] fileList = arraysConcat(inputCommand.getInputFileList(),
                    getPdfFiles(inputCommand.getInputDirectory()));
            // check if empty
            if (fileList == null || !(fileList.length > 0)) {
                throw new EncryptException(EncryptException.CMD_NO_INPUT_FILE);
            }
            for (int i = 0; i < fileList.length; i++) {
                try {
                    // set the encryption type
                    if (EncryptParsedCommand.E_AES_128.equals(inputCommand.getEncryptionType())) {
                        encType = PdfWriter.ENCRYPTION_AES_128;
                    } else if (EncryptParsedCommand.E_RC4_128.equals(inputCommand.getEncryptionType())) {
                        encType = PdfWriter.STANDARD_ENCRYPTION_128;
                    }

                    prefixParser = new PrefixParser(inputCommand.getOutputFilesPrefix(),
                            fileList[i].getFile().getName());
                    File tmpFile = FileUtility.generateTmpFile(inputCommand.getOutputFile());
                    pdfReader = PdfUtility.readerFor(fileList[i]);
                    pdfReader.removeUnusedObjects();
                    pdfReader.consolidateNamedDestinations();

                    // version
                    LOG.debug("Creating a new document.");
                    Character pdfVersion = inputCommand.getOutputPdfVersion();
                    if (pdfVersion != null) {
                        pdfStamper = new PdfStamper(pdfReader, new FileOutputStream(tmpFile),
                                inputCommand.getOutputPdfVersion().charValue());
                    } else {
                        pdfStamper = new PdfStamper(pdfReader, new FileOutputStream(tmpFile),
                                pdfReader.getPdfVersion());
                    }

                    HashMap meta = pdfReader.getInfo();
                    meta.put("Creator", ConsoleServicesFacade.CREATOR);

                    setCompressionSettingOnStamper(inputCommand, pdfStamper);

                    pdfStamper.setMoreInfo(meta);
                    pdfStamper.setEncryption(encType, inputCommand.getUserPwd(), inputCommand.getOwnerPwd(),
                            inputCommand.getPermissions());
                    pdfStamper.close();
                    pdfReader.close();
                    File outFile = new File(inputCommand.getOutputFile(), prefixParser.generateFileName());
                    FileUtility.renameTemporaryFile(tmpFile, outFile, inputCommand.isOverwrite());
                    LOG.debug("Encrypted file " + outFile.getCanonicalPath() + " created.");
                    setPercentageOfWorkDone(((i + 1) * WorkDoneDataModel.MAX_PERGENTAGE) / fileList.length);
                } catch (Exception e) {
                    LOG.error("Error encrypting file " + fileList[i].getFile().getName(), e);
                }
            }
            LOG.info("Pdf files encrypted in " + inputCommand.getOutputFile().getAbsolutePath() + ".");
            LOG.info("Permissions: " + PdfEncryptor.getPermissionsVerbose(inputCommand.getPermissions()) + ".");
        } catch (Exception e) {
            throw new EncryptException(e);
        } finally {
            setWorkCompleted();
        }
    } else {
        throw new ConsoleException(ConsoleException.ERR_BAD_COMMAND);
    }
}

From source file:org.sejda.impl.itext.EncryptTask.java

License:Apache License

public void execute(EncryptParameters parameters) throws TaskException {
    int currentStep = 0;
    for (PdfSource<?> source : parameters.getSourceList()) {
        currentStep++;//from w  ww  .ja va 2s .  c  o m
        LOG.debug("Opening {} ", source);
        reader = source.open(sourceOpener);

        File tmpFile = createTemporaryPdfBuffer();
        LOG.debug("Created output temporary buffer {} ", tmpFile);
        stamperHandler = new PdfStamperHandler(reader, tmpFile, parameters.getVersion());

        stamperHandler.setCompressionOnStamper(parameters.isCompress());
        stamperHandler.setCreatorOnStamper(reader);
        stamperHandler.setEncryptionOnStamper(getEncryptionAlgorithm(parameters.getEncryptionAlgorithm()),
                parameters.getUserPassword(), parameters.getOwnerPassword(), permissions);

        nullSafeClosePdfReader(reader);
        nullSafeCloseQuietly(stamperHandler);

        String outName = nameGenerator(parameters.getOutputPrefix())
                .generate(nameRequest().originalName(source.getName()).fileNumber(currentStep));
        outputWriter.addOutput(file(tmpFile).name(outName));

        notifyEvent(getNotifiableTaskMetadata()).stepsCompleted(currentStep).outOf(totalSteps);
    }

    parameters.getOutput().accept(outputWriter);
    LOG.debug("Input documents encrypted and written to {}", parameters.getOutput());
    LOG.debug("Permissions {}", PdfEncryptor.getPermissionsVerbose(permissions));
}