/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/* $Id: PDFEncryptionParams.java 1484190 2013-05-18 22:25:52Z lbernardo $ */

package org.apache.fop.pdf;

This class holds the parameters for PDF encryption.
/** * This class holds the parameters for PDF encryption. */
public class PDFEncryptionParams { private String userPassword = ""; //May not be null private String ownerPassword = ""; //May not be null private boolean allowPrint = true; private boolean allowCopyContent = true; private boolean allowEditContent = true; private boolean allowEditAnnotations = true; private boolean allowFillInForms = true; private boolean allowAccessContent = true; private boolean allowAssembleDocument = true; private boolean allowPrintHq = true; private boolean encryptMetadata = true; private int encryptionLengthInBits = 128;
Creates a new instance.
Params:
  • userPassword – the user password
  • ownerPassword – the owner password
  • allowPrint – true if printing is allowed
  • allowCopyContent – true if copying content is allowed
  • allowEditContent – true if editing content is allowed
  • allowEditAnnotations – true if editing annotations is allowed
/** * Creates a new instance. * @param userPassword the user password * @param ownerPassword the owner password * @param allowPrint true if printing is allowed * @param allowCopyContent true if copying content is allowed * @param allowEditContent true if editing content is allowed * @param allowEditAnnotations true if editing annotations is allowed */
public PDFEncryptionParams(String userPassword, String ownerPassword, boolean allowPrint, boolean allowCopyContent, boolean allowEditContent, boolean allowEditAnnotations, boolean encryptMetadata) { setUserPassword(userPassword); setOwnerPassword(ownerPassword); setAllowPrint(allowPrint); setAllowCopyContent(allowCopyContent); setAllowEditContent(allowEditContent); setAllowEditAnnotations(allowEditAnnotations); this.encryptMetadata = encryptMetadata; }
Default constructor initializing to default values.
/** * Default constructor initializing to default values. */
public PDFEncryptionParams() { //nop }
Creates a copy of the given encryption parameters.
Params:
  • source – source encryption parameters
/** * Creates a copy of the given encryption parameters. * * @param source source encryption parameters */
public PDFEncryptionParams(PDFEncryptionParams source) { setUserPassword(source.getUserPassword()); setOwnerPassword(source.getOwnerPassword()); setAllowPrint(source.isAllowPrint()); setAllowCopyContent(source.isAllowCopyContent()); setAllowEditContent(source.isAllowEditContent()); setAllowEditAnnotations(source.isAllowEditAnnotations()); setAllowAssembleDocument(source.isAllowAssembleDocument()); setAllowAccessContent(source.isAllowAccessContent()); setAllowFillInForms(source.isAllowFillInForms()); setAllowPrintHq(source.isAllowPrintHq()); setEncryptionLengthInBits(source.getEncryptionLengthInBits()); encryptMetadata = source.encryptMetadata(); }
Indicates whether copying content is allowed.
Returns:true if copying is allowed
/** * Indicates whether copying content is allowed. * @return true if copying is allowed */
public boolean isAllowCopyContent() { return allowCopyContent; }
Indicates whether editing annotations is allowed.
Returns:true is editing annotations is allowed
/** * Indicates whether editing annotations is allowed. * @return true is editing annotations is allowed */
public boolean isAllowEditAnnotations() { return allowEditAnnotations; }
Indicates whether editing content is allowed.
Returns:true if editing content is allowed
/** * Indicates whether editing content is allowed. * @return true if editing content is allowed */
public boolean isAllowEditContent() { return allowEditContent; }
Indicates whether printing is allowed.
Returns:true if printing is allowed
/** * Indicates whether printing is allowed. * @return true if printing is allowed */
public boolean isAllowPrint() { return allowPrint; }
Indicates whether revision 3 filling in forms is allowed.
Returns:true if revision 3 filling in forms is allowed
/** * Indicates whether revision 3 filling in forms is allowed. * @return true if revision 3 filling in forms is allowed */
public boolean isAllowFillInForms() { return allowFillInForms; }
Indicates whether revision 3 extracting text and graphics is allowed.
Returns:true if revision 3 extracting text and graphics is allowed
/** * Indicates whether revision 3 extracting text and graphics is allowed. * @return true if revision 3 extracting text and graphics is allowed */
public boolean isAllowAccessContent() { return allowAccessContent; }
Indicates whether revision 3 assembling document is allowed.
Returns:true if revision 3 assembling document is allowed
/** * Indicates whether revision 3 assembling document is allowed. * @return true if revision 3 assembling document is allowed */
public boolean isAllowAssembleDocument() { return allowAssembleDocument; }
Indicates whether revision 3 printing to high quality is allowed.
Returns:true if revision 3 printing to high quality is allowed
/** * Indicates whether revision 3 printing to high quality is allowed. * @return true if revision 3 printing to high quality is allowed */
public boolean isAllowPrintHq() { return allowPrintHq; }
Indicates whether Metadata should be encrypted.
Returns:true or false
/** * Indicates whether Metadata should be encrypted. * @return true or false */
public boolean encryptMetadata() { return encryptMetadata; }
Returns the owner password.
Returns:the owner password, an empty string if no password applies
/** * Returns the owner password. * @return the owner password, an empty string if no password applies */
public String getOwnerPassword() { return ownerPassword; }
Returns the user password.
Returns:the user password, an empty string if no password applies
/** * Returns the user password. * @return the user password, an empty string if no password applies */
public String getUserPassword() { return userPassword; }
Sets the permission for copying content.
Params:
  • allowCopyContent – true if copying content is allowed
/** * Sets the permission for copying content. * @param allowCopyContent true if copying content is allowed */
public void setAllowCopyContent(boolean allowCopyContent) { this.allowCopyContent = allowCopyContent; }
Sets the permission for editing annotations.
Params:
  • allowEditAnnotations – true if editing annotations is allowed
/** * Sets the permission for editing annotations. * @param allowEditAnnotations true if editing annotations is allowed */
public void setAllowEditAnnotations(boolean allowEditAnnotations) { this.allowEditAnnotations = allowEditAnnotations; }
Sets the permission for editing content.
Params:
  • allowEditContent – true if editing annotations is allowed
/** * Sets the permission for editing content. * @param allowEditContent true if editing annotations is allowed */
public void setAllowEditContent(boolean allowEditContent) { this.allowEditContent = allowEditContent; }
Sets the permission for printing.
Params:
  • allowPrint – true if printing is allowed
/** * Sets the permission for printing. * @param allowPrint true if printing is allowed */
public void setAllowPrint(boolean allowPrint) { this.allowPrint = allowPrint; }
Sets whether revision 3 filling in forms is allowed.
Params:
  • allowFillInForms – true if revision 3 filling in forms is allowed.
/** * Sets whether revision 3 filling in forms is allowed. * @param allowFillInForms true if revision 3 filling in forms is allowed. */
public void setAllowFillInForms(boolean allowFillInForms) { this.allowFillInForms = allowFillInForms; }
Sets whether revision 3 extracting text and graphics is allowed.
Params:
  • allowAccessContent – true if revision 3 extracting text and graphics is allowed
/** * Sets whether revision 3 extracting text and graphics is allowed. * @param allowAccessContent true if revision 3 extracting text and graphics is allowed */
public void setAllowAccessContent(boolean allowAccessContent) { this.allowAccessContent = allowAccessContent; }
Sets whether revision 3 assembling document is allowed.
Params:
  • allowAssembleDocument – true if revision 3 assembling document is allowed
/** * Sets whether revision 3 assembling document is allowed. * @param allowAssembleDocument true if revision 3 assembling document is allowed */
public void setAllowAssembleDocument(boolean allowAssembleDocument) { this.allowAssembleDocument = allowAssembleDocument; }
Sets whether revision 3 printing to high quality is allowed.
Params:
  • allowPrintHq – true if revision 3 printing to high quality is allowed
/** * Sets whether revision 3 printing to high quality is allowed. * @param allowPrintHq true if revision 3 printing to high quality is allowed */
public void setAllowPrintHq(boolean allowPrintHq) { this.allowPrintHq = allowPrintHq; }
Whether the Metadata should be encrypted or not; default is true;
Params:
  • encryptMetadata – true or false
/** * Whether the Metadata should be encrypted or not; default is true; * @param encryptMetadata true or false */
public void setEncryptMetadata(boolean encryptMetadata) { this.encryptMetadata = encryptMetadata; }
Sets the owner password.
Params:
  • ownerPassword – The owner password to set, null or an empty String if no password is applicable
/** * Sets the owner password. * @param ownerPassword The owner password to set, null or an empty String * if no password is applicable */
public void setOwnerPassword(String ownerPassword) { if (ownerPassword == null) { this.ownerPassword = ""; } else { this.ownerPassword = ownerPassword; } }
Sets the user password.
Params:
  • userPassword – The user password to set, null or an empty String if no password is applicable
/** * Sets the user password. * @param userPassword The user password to set, null or an empty String * if no password is applicable */
public void setUserPassword(String userPassword) { if (userPassword == null) { this.userPassword = ""; } else { this.userPassword = userPassword; } }
Returns the encryption length.
Returns:the encryption length
/** * Returns the encryption length. * @return the encryption length */
public int getEncryptionLengthInBits() { return encryptionLengthInBits; }
Sets the encryption length.
Params:
  • encryptionLength – the encryption length
/** * Sets the encryption length. * * @param encryptionLength the encryption length */
public void setEncryptionLengthInBits(int encryptionLength) { this.encryptionLengthInBits = encryptionLength; } public String toString() { return "userPassword = " + userPassword + "\n" + "ownerPassword = " + ownerPassword + "\n" + "allowPrint = " + allowPrint + "\n" + "allowCopyContent = " + allowCopyContent + "\n" + "allowEditContent = " + allowEditContent + "\n" + "allowEditAnnotations = " + allowEditAnnotations + "\n" + "allowFillInForms = " + allowFillInForms + "\n" + "allowAccessContent = " + allowAccessContent + "\n" + "allowAssembleDocument = " + allowAssembleDocument + "\n" + "allowPrintHq = " + allowPrintHq + "\n" + "encryptMetadata = " + encryptMetadata; } }