Package com.aowagie.text.pdf
Class PdfCopy
- java.lang.Object
-
- com.aowagie.text.DocWriter
-
- com.aowagie.text.pdf.PdfWriter
-
- com.aowagie.text.pdf.PdfCopy
-
- All Implemented Interfaces:
DocListener,ElementListener,PdfAnnotations,PdfDocumentActions,PdfEncryptionSettings,PdfPageActions,PdfRunDirection,PdfVersion,PdfViewerPreferences,PdfXConformance,java.util.EventListener
class PdfCopy extends PdfWriter
Make copies of PDF documents. Documents can be edited after reading and before writing them out.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classPdfCopy.IndirectReferencesThis class holds information about indirect references, since they are renumbered by iText.private static classPdfCopy.PageStampprivate static classPdfCopy.RefKeyA key to allow us to hash indirect referencesprivate static classPdfCopy.StampContent-
Nested classes/interfaces inherited from class com.aowagie.text.pdf.PdfWriter
PdfWriter.PdfBody, PdfWriter.PdfTrailer
-
-
Field Summary
Fields Modifier and Type Field Description private PdfIndirectReferenceacroFormprivate PdfArrayfieldArrayprivate java.util.HashMapfieldTemplatesprivate java.util.HashMapindirectMapprivate java.util.HashMapindirectsprivate int[]namePtrprivate PdfReaderreaderprivate booleanrotateContentsHolds value of property rotateContents.-
Fields inherited from class com.aowagie.text.pdf.PdfWriter
ALLOW_ASSEMBLY, ALLOW_COPY, ALLOW_DEGRADED_PRINTING, ALLOW_FILL_IN, ALLOW_MODIFY_ANNOTATIONS, ALLOW_MODIFY_CONTENTS, ALLOW_PRINTING, ALLOW_SCREENREADERS, body, CenterWindow, compressionLevel, crypto, currentPdfReaderInstance, DID_PRINT, DID_SAVE, DirectionL2R, DirectionR2L, DisplayDocTitle, DO_NOT_ENCRYPT_METADATA, DOCUMENT_CLOSE, documentOCG, EMBEDDED_FILES_ONLY, ENCRYPTION_AES_128, ENCRYPTION_MASK, FitWindow, fullCompression, GENERATION_MAX, HideMenubar, HideToolbar, HideWindowUI, newBookmarks, NonFullScreenPageModeUseNone, NonFullScreenPageModeUseOC, NonFullScreenPageModeUseOutlines, NonFullScreenPageModeUseThumbs, OCGLocked, OCGRadioGroup, OCProperties, PageLayoutOneColumn, PageLayoutSinglePage, PageLayoutTwoColumnLeft, PageLayoutTwoColumnRight, PageLayoutTwoPageLeft, PageLayoutTwoPageRight, PageModeFullScreen, PageModeUseAttachments, PageModeUseNone, PageModeUseOC, PageModeUseOutlines, PageModeUseThumbs, pdf, pdf_version, PDF_VERSION_1_2, PDF_VERSION_1_3, PDF_VERSION_1_4, PDF_VERSION_1_5, PDF_VERSION_1_6, PDF_VERSION_1_7, PDFA1A, PDFA1B, PDFA2A, PDFA2B, PDFX1A2001, PDFX32002, PDFXNONE, prevxref, PrintScalingNone, root, RUN_DIRECTION_DEFAULT, RUN_DIRECTION_LTR, RUN_DIRECTION_NO_BIDI, RUN_DIRECTION_RTL, STANDARD_ENCRYPTION_128, STANDARD_ENCRYPTION_40, VERSION_1_2, VERSION_1_3, VERSION_1_4, VERSION_1_5, VERSION_1_6, VERSION_1_7, WILL_PRINT, WILL_SAVE, xmpMetadata
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) PdfIndirectReferenceadd(PdfPage page, PdfContents contents)Adds somePdfContentsto this Writer.voidaddAnnotation(PdfAnnotation annot)Use this methods to add aPdfAnnotationor aPdfFormFieldto the document.private voidaddFieldResources(PdfDictionary catalog)voidclose()Signals that theDocumentwas closed and that no otherElementswill be added.private PdfArraycopyArray(PdfArray in)Translate a PRArray to a PdfArray.private PdfDictionarycopyDictionary(PdfDictionary in)Translate a PRDictionary to a PdfDictionary.private PdfIndirectReferencecopyIndirect(PRIndirectReference in)Translate a PRIndirectReference to a PdfIndirectReference In addition, translates the object numbers, and copies the referenced object to the output file.private PdfObjectcopyObject(PdfObject in)Translate a PR-object to a Pdf-objectprivate PdfStreamcopyStream(PRStream in)Translate a PRStream to a PdfStream.voidfreeReader(PdfReader reader)Use this method to writes the reader to the document and free the memory used by it.protected PdfDictionarygetCatalog(PdfIndirectReference rootObj)PdfImportedPagegetImportedPage(PdfReader reader, int pageNumber)Grabs a page from the input documentbooleanisRotateContents()Getter for property rotateContents.private intsetFromIPage(PdfImportedPage iPage)convenience method.private voidsetFromReader(PdfReader reader)convenience method.voidsetRotateContents(boolean rotateContents)Setter for property rotateContents.-
Methods inherited from class com.aowagie.text.pdf.PdfWriter
addAnnotation, addDeveloperExtension, addDirectImageSimple, addDirectTemplateSimple, addFileAttachment, addFileAttachment, addJavaScript, addLocalDestinations, addSharedObjectsToBody, addSimple, addSimple, addSimpleExtGState, addSimplePattern, addSimplePatternColorspace, addSimpleProperty, addSimpleShading, addSimpleShadingPattern, addToBody, addToBody, addToBody, addToBody, addToBody, addToBody, addViewerPreference, createXmpMetadata, eliminateFontSubset, fillOCProperties, getAcroForm, getColorspaceName, getCompressionLevel, getCurrentDocumentSize, getCurrentPage, getCurrentPageNumber, getDefaultColorspace, getDirectContent, getDirectContentUnder, getEncryption, getExtraCatalog, getGroup, getImageReference, getIndirectReferenceNumber, getInfo, getInstance, getNewObjectNumber, getOCProperties, getPageEvent, getPageNumber, getPageReference, getPageSize, getPdfDocument, getPdfIndirectReference, getPdfVersion, getPDFXConformance, getReaderFile, getReferenceJBIG2Globals, getRootOutline, getRunDirection, getSpaceCharRatio, getStructureTreeRoot, getTabs, getUserunit, isFullCompression, isPdfX, isRgbTransparencyBlending, isStrictImageSequence, isTagged, isUserProperties, open, propertyExists, registerLayer, releaseTemplate, resetContent, setAdditionalAction, setAtLeastPdfVersion, setCollection, setCompressionLevel, setCropBoxSize, setDuration, setEncryption, setEncryption, setFullCompression, setGroup, setInitialLeading, setOpenAction, setOpenAction, setOutlines, setOutputIntents, setPageAction, setPageEmpty, setPageEvent, setPageLabels, setPageXmpMetadata, setPdfVersion, setPdfVersion, setPDFXConformance, setRgbTransparencyBlending, setRunDirection, setSigFlags, setSpaceCharRatio, setStrictImageSequence, setTabs, setTagged, setThumbnail, setTransition, setUserProperties, setUserunit, setViewerPreferences, setXmpMetadata, writeOutlines
-
Methods inherited from class com.aowagie.text.DocWriter
add, getISOBytes, isCloseStream, isPaused, newPage, resetFooter, resetHeader, resetPageCount, setCloseStream, setFooter, setHeader, setMarginMirroring, setMarginMirroringTopBottom, setMargins, setPageCount, setPageSize
-
-
-
-
Field Detail
-
indirects
private java.util.HashMap indirects
-
indirectMap
private final java.util.HashMap indirectMap
-
reader
private PdfReader reader
-
acroForm
private PdfIndirectReference acroForm
-
namePtr
private final int[] namePtr
-
rotateContents
private boolean rotateContents
Holds value of property rotateContents.
-
fieldArray
private PdfArray fieldArray
-
fieldTemplates
private java.util.HashMap fieldTemplates
-
-
Constructor Detail
-
PdfCopy
PdfCopy(Document document, java.io.OutputStream os, java.util.Calendar globalDate) throws DocumentException
Constructor- Parameters:
document-os- outputstreamglobalDate-- Throws:
DocumentException
-
-
Method Detail
-
isRotateContents
public boolean isRotateContents()
Getter for property rotateContents.- Returns:
- Value of property rotateContents.
-
setRotateContents
public void setRotateContents(boolean rotateContents)
Setter for property rotateContents.- Parameters:
rotateContents- New value of property rotateContents.
-
getImportedPage
public PdfImportedPage getImportedPage(PdfReader reader, int pageNumber)
Grabs a page from the input document- Overrides:
getImportedPagein classPdfWriter- Parameters:
reader- the reader of the documentpageNumber- which page to get- Returns:
- the page
-
copyIndirect
private PdfIndirectReference copyIndirect(PRIndirectReference in) throws java.io.IOException, BadPdfFormatException
Translate a PRIndirectReference to a PdfIndirectReference In addition, translates the object numbers, and copies the referenced object to the output file. NB: PRIndirectReferences (and PRIndirectObjects) really need to know what file they came from, because each file has its own namespace. The translation we do from their namespace to ours is *at best* heuristic, and guaranteed to fail under some circumstances.- Throws:
java.io.IOExceptionBadPdfFormatException
-
copyDictionary
private PdfDictionary copyDictionary(PdfDictionary in) throws java.io.IOException, BadPdfFormatException
Translate a PRDictionary to a PdfDictionary. Also translate all of the objects contained in it.- Throws:
java.io.IOExceptionBadPdfFormatException
-
copyStream
private PdfStream copyStream(PRStream in) throws java.io.IOException, BadPdfFormatException
Translate a PRStream to a PdfStream. The data part copies itself.- Throws:
java.io.IOExceptionBadPdfFormatException
-
copyArray
private PdfArray copyArray(PdfArray in) throws java.io.IOException, BadPdfFormatException
Translate a PRArray to a PdfArray. Also translate all of the objects contained in it- Throws:
java.io.IOExceptionBadPdfFormatException
-
copyObject
private PdfObject copyObject(PdfObject in) throws java.io.IOException, BadPdfFormatException
Translate a PR-object to a Pdf-object- Throws:
java.io.IOExceptionBadPdfFormatException
-
setFromIPage
private int setFromIPage(PdfImportedPage iPage)
convenience method. Given an imported page, set our "globals"
-
setFromReader
private void setFromReader(PdfReader reader)
convenience method. Given a reader, set our "globals"
-
getCatalog
protected PdfDictionary getCatalog(PdfIndirectReference rootObj)
- Overrides:
getCatalogin classPdfWriter
-
addFieldResources
private void addFieldResources(PdfDictionary catalog) throws java.io.IOException
- Throws:
java.io.IOException
-
close
public void close()
Signals that theDocumentwas closed and that no otherElementswill be added.The pages-tree is built and written to the outputstream. A Catalog is constructed, as well as an Info-object, the reference table is composed and everything is written to the outputstream embedded in a Trailer.
- Specified by:
closein interfaceDocListener- Overrides:
closein classPdfWriter- See Also:
DocWriter.close()
-
addAnnotation
public void addAnnotation(PdfAnnotation annot)
Description copied from interface:PdfAnnotationsUse this methods to add aPdfAnnotationor aPdfFormFieldto the document. Only the top parent of aPdfFormFieldneeds to be added.- Specified by:
addAnnotationin interfacePdfAnnotations- Overrides:
addAnnotationin classPdfWriter- Parameters:
annot- thePdfAnnotationor thePdfFormFieldto add- See Also:
PdfAnnotations.addAnnotation(com.aowagie.text.pdf.PdfAnnotation)
-
add
PdfIndirectReference add(PdfPage page, PdfContents contents) throws PdfException
Description copied from class:PdfWriterAdds somePdfContentsto this Writer.The document has to be open before you can begin to add content to the body of the document.
- Overrides:
addin classPdfWriter- Parameters:
page- thePdfPageto addcontents- thePdfContentsof the page- Returns:
- a
PdfIndirectReference - Throws:
PdfException- on error
-
freeReader
public void freeReader(PdfReader reader) throws java.io.IOException
Description copied from class:PdfWriterUse this method to writes the reader to the document and free the memory used by it. The main use is when concatenating multiple documents to keep the memory usage restricted to the current appending document.- Overrides:
freeReaderin classPdfWriter- Parameters:
reader- thePdfReaderto free- Throws:
java.io.IOException- on error
-
-