- java.lang.Object
-
- com.itextpdf.text.pdf.PdfCopyForms
-
- All Implemented Interfaces:
PdfEncryptionSettings,PdfViewerPreferences
public class PdfCopyForms extends java.lang.Object implements PdfViewerPreferences, PdfEncryptionSettings
Allows you to add one (or more) existing PDF document(s) to create a new PDF and add the form of another PDF document to this new PDF.- Since:
- 2.1.5
-
-
Constructor Summary
Constructors Constructor Description PdfCopyForms(java.io.OutputStream os)Creates a new instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddDocument(PdfReader reader)Concatenates a PDF document.voidaddDocument(PdfReader reader, java.lang.String ranges)Concatenates a PDF document selecting the pages to keep.voidaddDocument(PdfReader reader, java.util.List pagesToKeep)Concatenates a PDF document selecting the pages to keep.voidaddJavaScript(java.lang.String js)Adds JavaScript to the global documentvoidaddViewerPreference(PdfName key, PdfObject value)Adds a viewer preference.voidclose()Closes the output document.voidcopyDocumentFields(PdfReader reader)Copies the form fields of this PDFDocument onto the PDF-Document which was addedPdfWritergetWriter()Gets the underlying PdfWriter.booleanisFullCompression()Gets the 1.5 compression status.voidopen()Opens the document.voidsetEncryption(boolean strength, java.lang.String userPassword, java.lang.String ownerPassword, int permissions)Sets the encryption options for this document.voidsetEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits)Sets the encryption options for this document.voidsetEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, int encryptionType)Sets the encryption options for this document.voidsetEncryption(java.security.cert.Certificate[] certs, int[] permissions, int encryptionType)Sets the certificate encryption options for this document.voidsetFullCompression()Sets the document's compression to the new 1.5 mode with object streams and xref streams.voidsetOutlines(java.util.List outlines)Sets the bookmarks.voidsetViewerPreferences(int preferences)Sets the page layout and page mode preferences by ORing one or two of these constants.
-
-
-
Constructor Detail
-
PdfCopyForms
public PdfCopyForms(java.io.OutputStream os) throws DocumentExceptionCreates a new instance.- Parameters:
os- the output stream- Throws:
DocumentException- on error
-
-
Method Detail
-
addDocument
public void addDocument(PdfReader reader) throws DocumentException, java.io.IOException
Concatenates a PDF document.- Parameters:
reader- the PDF document- Throws:
DocumentException- on errorjava.io.IOException
-
addDocument
public void addDocument(PdfReader reader, java.util.List pagesToKeep) throws DocumentException, java.io.IOException
Concatenates a PDF document selecting the pages to keep. The pages are described as aListofInteger. The page ordering can be changed but no page repetitions are allowed.- Parameters:
reader- the PDF documentpagesToKeep- the pages to keep- Throws:
DocumentException- on errorjava.io.IOException
-
addDocument
public void addDocument(PdfReader reader, java.lang.String ranges) throws DocumentException, java.io.IOException
Concatenates a PDF document selecting the pages to keep. The pages are described as ranges. The page ordering can be changed but no page repetitions are allowed.- Parameters:
reader- the PDF documentranges- the comma separated ranges as described inSequenceList- Throws:
DocumentException- on errorjava.io.IOException
-
copyDocumentFields
public void copyDocumentFields(PdfReader reader) throws DocumentException
Copies the form fields of this PDFDocument onto the PDF-Document which was added- Parameters:
reader- the PDF document- Throws:
DocumentException- on error
-
setEncryption
public void setEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, boolean strength128Bits) throws DocumentExceptionSets the encryption options for this document. The userPassword and the ownerPassword can be null or have zero length. In this case the ownerPassword is replaced by a random string. The open permissions for the document can be AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. The permissions can be combined by ORing them.- Parameters:
userPassword- the user password. Can be null or emptyownerPassword- the owner password. Can be null or emptypermissions- the user permissionsstrength128Bits-truefor 128 bit key length,falsefor 40 bit key length- Throws:
DocumentException- if the document is already open
-
setEncryption
public void setEncryption(boolean strength, java.lang.String userPassword, java.lang.String ownerPassword, int permissions) throws DocumentExceptionSets the encryption options for this document. The userPassword and the ownerPassword can be null or have zero length. In this case the ownerPassword is replaced by a random string. The open permissions for the document can be AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. The permissions can be combined by ORing them.- Parameters:
strength- true for 128 bit key length. false for 40 bit key lengthuserPassword- the user password. Can be null or emptyownerPassword- the owner password. Can be null or emptypermissions- the user permissions- Throws:
DocumentException- if the document is already open
-
close
public void close()
Closes the output document.
-
open
public void open()
Opens the document. This is usually not needed as addDocument() will do it automatically.
-
addJavaScript
public void addJavaScript(java.lang.String js)
Adds JavaScript to the global document- Parameters:
js- the JavaScript
-
setOutlines
public void setOutlines(java.util.List outlines)
Sets the bookmarks. The list structure is defined inSimpleBookmark#.- Parameters:
outlines- the bookmarks ornullto remove any
-
getWriter
public PdfWriter getWriter()
Gets the underlying PdfWriter.- Returns:
- the underlying PdfWriter
-
isFullCompression
public boolean isFullCompression()
Gets the 1.5 compression status.- Returns:
trueif the 1.5 compression is on
-
setFullCompression
public void setFullCompression()
Sets the document's compression to the new 1.5 mode with object streams and xref streams. It can be set at any time but once set it can't be unset.If set before opening the document it will also set the pdf version to 1.5.
-
setEncryption
public void setEncryption(byte[] userPassword, byte[] ownerPassword, int permissions, int encryptionType) throws DocumentExceptionDescription copied from interface:PdfEncryptionSettingsSets the encryption options for this document. The userPassword and the ownerPassword can be null or have zero length. In this case the ownerPassword is replaced by a random string. The open permissions for the document can be AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. The permissions can be combined by ORing them.- Specified by:
setEncryptionin interfacePdfEncryptionSettings- Parameters:
userPassword- the user password. Can be null or emptyownerPassword- the owner password. Can be null or emptypermissions- the user permissionsencryptionType- the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128. Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext- Throws:
DocumentException- if the document is already open- See Also:
PdfEncryptionSettings.setEncryption(byte[], byte[], int, int)
-
addViewerPreference
public void addViewerPreference(PdfName key, PdfObject value)
Description copied from interface:PdfViewerPreferencesAdds a viewer preference.- In case the key is one of these values:
- PdfName.HIDETOOLBAR
- PdfName.HIDEMENUBAR
- PdfName.HIDEWINDOWUI
- PdfName.FITWINDOW
- PdfName.CENTERWINDOW
- PdfName.DISPLAYDOCTITLE
- In case the key is PdfName.NONFULLSCREENPAGEMODE,
the value must be one of these names:
- PdfName.USENONE
- PdfName.USEOUTLINES
- PdfName.USETHUMBS
- PdfName.USEOC
- In case the key is PdfName.DIRECTION,
the value must be one of these names:
- PdfName.L2R
- PdfName.R2L
- In case the key is one of these values:
- PdfName.VIEWAREA
- PdfName.VIEWCLIP
- PdfName.PRINTAREA
- PdfName.PRINTCLIP
- PdfName.MEDIABOX
- PdfName.CROPBOX
- PdfName.BLEEDBOX
- PdfName.TRIMBOX
- PdfName.ARTBOX
- In case the key is PdfName.PRINTSCALING, the value can be
- PdfName.APPDEFAULT
- PdfName.NONE
- In case the key is PdfName.DUPLEX, the value can be:
- PdfName.SIMPLEX
- PdfName.DUPLEXFLIPSHORTEDGE
- PdfName.DUPLEXFLIPLONGEDGE
- In case the key is PdfName.PICKTRAYBYPDFSIZE, the value must be of type PdfBoolean.
- In case the key is PdfName.PRINTPAGERANGE, the value must be of type PdfArray.
- In case the key is PdfName.NUMCOPIES, the value must be of type PdfNumber.
- Specified by:
addViewerPreferencein interfacePdfViewerPreferences- Parameters:
key- the name of the viewer preferencevalue- the value of the viewer preference- See Also:
PdfViewerPreferences.addViewerPreference(com.lowagie.text.pdf.PdfName, com.lowagie.text.pdf.PdfObject)
- In case the key is one of these values:
-
setViewerPreferences
public void setViewerPreferences(int preferences)
Description copied from interface:PdfViewerPreferencesSets the page layout and page mode preferences by ORing one or two of these constants.- The page layout to be used when the document is opened (choose one).
- PAGE_LAYOUT_SINGLE_PAGE - Display one page at a time. (default)
- PAGE_LAYOUT_ONE_COLUMN - Display the pages in one column.
- PAGE_LAYOUT_TWO_COLUMN_LEFT - Display the pages in two columns, with oddnumbered pages on the left.
- PAGE_LAYOUT_TWO_COLUMN_RIGHT - Display the pages in two columns, with oddnumbered pages on the right.
- PAGE_LAYOUT_TWO_PAGE_LEFT - Display the pages two at a time, with oddnumbered pages on the left.
- PAGE_LAYOUT_TWO_PAGE_RIGHT - Display the pages two at a time, with oddnumbered pages on the right.
- The page mode how the document should be displayed
when opened (choose one).
- PAGE_MODE_USE_NONE - Neither document outline nor thumbnail images visible. (default)
- PAGE_MODE_USE_OUTLINES - Document outline visible.
- PAGE_MODE_USE_THUMBS - Thumbnail images visible.
- PAGE_MODE_FULL_SCREEN - Full-screen mode, with no menu bar, window controls, or any other window visible.
- PAGE_MODE_USE_OC - Optional content group panel visible
- PAGE_MODE_USE_ATTACHMENTS - Attachments panel visible
addViewerPreference(key, value)if you want to change the following preferences:- HIDE_TOOLBAR - A flag specifying whether to hide the viewer application's tool bars when the document is active.
- HIDE_MENUBAR - A flag specifying whether to hide the viewer application's menu bar when the document is active.
- HIDE_WINDOW_UI - A flag specifying whether to hide user interface elements in the document's window (such as scroll bars and navigation controls), leaving only the document's contents displayed.
- FIT_WINDOW - A flag specifying whether to resize the document's window to fit the size of the first displayed page.
- CENTER_WINDOW - A flag specifying whether to position the document's window in the center of the screen.
- DISPLAY_DOC_TITLE - A flag specifying whether to display the document's title in the top bar.
- The predominant reading order for text. This entry has no direct effect on the
document's contents or page numbering, but can be used to determine the relative
positioning of pages when displayed side by side or printed n-up (choose one).
- DIRECTION_L2R - Left to right
- DIRECTION_R2L - Right to left (including vertical writing systems such as Chinese, Japanese, and Korean)
- The document's page mode, specifying how to display the
document on exiting full-screen mode. It is meaningful only
if the page mode is PageModeFullScreen (choose one).
- NON_FULL_SCREEN_PAGE_MODE_USE_NONE - Neither document outline nor thumbnail images visible
- NON_FULL_SCREEN_PAGE_MODE_USE_OUTLINES - Document outline visible
- NON_FULL_SCREEN_PAGE_MODE_USE_THUMBS - Thumbnail images visible
- NON_FULL_SCREEN_PAGE_MODE_USE_OC - Optional content group panel visible
- PRINT_SCALING_NONE - Indicates that the print dialog should reflect no page scaling.
- Specified by:
setViewerPreferencesin interfacePdfViewerPreferences- Parameters:
preferences- the viewer preferences- See Also:
PdfViewerPreferences.setViewerPreferences(int)
- The page layout to be used when the document is opened (choose one).
-
setEncryption
public void setEncryption(java.security.cert.Certificate[] certs, int[] permissions, int encryptionType) throws DocumentExceptionDescription copied from interface:PdfEncryptionSettingsSets the certificate encryption options for this document. An array of one or more public certificates must be provided together with an array of the same size for the permissions for each certificate. The open permissions for the document can be AllowPrinting, AllowModifyContents, AllowCopy, AllowModifyAnnotations, AllowFillIn, AllowScreenReaders, AllowAssembly and AllowDegradedPrinting. The permissions can be combined by ORing them. Optionally DO_NOT_ENCRYPT_METADATA can be ored to output the metadata in cleartext- Specified by:
setEncryptionin interfacePdfEncryptionSettings- Parameters:
certs- the public certificates to be used for the encryptionpermissions- the user permissions for each of the certificatesencryptionType- the type of encryption. It can be one of STANDARD_ENCRYPTION_40, STANDARD_ENCRYPTION_128 or ENCRYPTION_AES128.- Throws:
DocumentException- if the document is already open- See Also:
PdfEncryptionSettings.setEncryption(java.security.cert.Certificate[], int[], int)
-
-