Package com.lowagie.text.pdf
Class PdfCopy
java.lang.Object
com.lowagie.text.DocWriter
com.lowagie.text.pdf.PdfWriter
com.lowagie.text.pdf.PdfCopy
- All Implemented Interfaces:
DocListener
,ElementListener
,PdfAnnotations
,PdfDocumentActions
,PdfEncryptionSettings
,PdfPageActions
,PdfRunDirection
,PdfVersion
,PdfViewerPreferences
,PdfXConformance
,AutoCloseable
,EventListener
- Direct Known Subclasses:
PdfSmartCopy
Make copies of PDF documents. Documents can be edited after reading and before writing them out.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static class
This class holds information about indirect references, since they are renumbered by iText.static class
protected static class
A key to allow us to hash indirect referencesstatic class
Nested classes/interfaces inherited from class com.lowagie.text.pdf.PdfWriter
PdfWriter.PdfBody, PdfWriter.PdfTrailer
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected PdfIndirectReference
protected PdfArray
protected HashMap
<PdfTemplate, Object> protected HashMap
<PdfReader, HashMap<PdfCopy.RefKey, PdfCopy.IndirectReferences>> protected HashMap
<PdfCopy.RefKey, PdfCopy.IndirectReferences> protected int[]
protected PdfReader
private boolean
Holds value of property rotateContents.Fields inherited from class com.lowagie.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, colorNumber, compressionLevel, crypto, currentPageNumber, currentPdfReaderInstance, defaultColorspace, DID_PRINT, DID_SAVE, directContent, directContentUnder, DirectionL2R, DirectionR2L, DisplayDocTitle, DO_NOT_ENCRYPT_METADATA, DOCUMENT_CLOSE, documentColors, documentExtGState, documentFonts, documentOCG, documentOCGorder, documentPatterns, documentProperties, documentShadingPatterns, documentShadings, documentSpotPatterns, EMBEDDED_FILES_ONLY, ENCRYPTION_AES_128, ENCRYPTION_AES_256_V3, ENCRYPTION_MASK, ENCRYPTION_NONE, extraCatalog, FitWindow, fontNumber, formXObjects, formXObjectsCounter, fullCompression, GENERATION_MAX, group, HideMenubar, HideToolbar, HideWindowUI, imageDictionary, importedPages, JBIG2Globals, newBookmarks, NO_SPACE_CHAR_RATIO, NonFullScreenPageModeUseNone, NonFullScreenPageModeUseOC, NonFullScreenPageModeUseOutlines, NonFullScreenPageModeUseThumbs, OCGLocked, OCGRadioGroup, OCProperties, PAGE_CLOSE, PAGE_OPEN, PageLayoutOneColumn, PageLayoutSinglePage, PageLayoutTwoColumnLeft, PageLayoutTwoColumnRight, PageLayoutTwoPageLeft, PageLayoutTwoPageRight, PageModeFullScreen, PageModeUseAttachments, PageModeUseNone, PageModeUseOC, PageModeUseOutlines, PageModeUseThumbs, pageReferences, patternColorspaceCMYK, patternColorspaceGRAY, patternColorspaceRGB, patternNumber, 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, PDFX1A2001, PDFX32002, PDFXNONE, prevxref, PrintScalingNone, root, RUN_DIRECTION_DEFAULT, RUN_DIRECTION_LTR, RUN_DIRECTION_NO_BIDI, RUN_DIRECTION_RTL, runDirection, SIGNATURE_APPEND_ONLY, SIGNATURE_EXISTS, SPACE_CHAR_RATIO_DEFAULT, STANDARD_ENCRYPTION_128, STANDARD_ENCRYPTION_40, structureTreeRoot, tabs, tagged, userunit, VERSION_1_2, VERSION_1_3, VERSION_1_4, VERSION_1_5, VERSION_1_6, VERSION_1_7, WILL_PRINT, WILL_SAVE, xmpMetadata
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionadd
(PdfOutline outline) (package private) PdfIndirectReference
add
(PdfPage page, PdfContents contents) Adds somePdfContents
to this Writer.void
addAnnotation
(PdfAnnotation annot) Use this methods to add aPdfAnnotation
or aPdfFormField
to the document.private void
addFieldResources
(PdfDictionary catalog) void
addPage
(PdfImportedPage iPage) Add an imported page to our outputvoid
Adds a blank page.void
close()
Signals that theDocument
was closed and that no otherElements
will be added.void
copyAcroForm
(PdfReader reader) Copy the acroform for an input document.protected PdfArray
Translate a PRArray to a PdfArray.protected PdfDictionary
Translate a PRDictionary to a PdfDictionary.protected PdfIndirectReference
Translate a PRIndirectReference to a PdfIndirectReference In addition, translates the object numbers, and copies the referenced object to the output file.protected PdfObject
copyObject
(PdfObject in) Translate a PR-object to a Pdf-objectprotected PdfStream
copyStream
(PRStream in) Translate a PRStream to a PdfStream.createPageStamp
(PdfImportedPage iPage) Create a page stamp.void
freeReader
(PdfReader reader) Use this method to writes the reader to the document and free the memory used by it.protected PdfDictionary
getCatalog
(PdfIndirectReference rootObj) getImportedPage
(PdfReader reader, int pageNumber) Grabs a page from the input documentboolean
Getter for property rotateContents.protected int
setFromIPage
(PdfImportedPage iPage) convenience method.protected void
setFromReader
(PdfReader reader) convenience method.void
setRotateContents
(boolean rotateContents) Setter for property rotateContents.Methods inherited from class com.lowagie.text.pdf.PdfWriter
add, add, addAnnotation, addCalculationOrder, addDeveloperExtension, addDirectImageSimple, addDirectImageSimple, addDirectTemplateSimple, addFileAttachment, addFileAttachment, addFileAttachment, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addLocalDestinations, addNamedDestination, addNamedDestinations, addOCGRadioGroup, addSharedObjectsToBody, addSimple, addSimple, addSimpleExtGState, addSimplePattern, addSimplePatternColorspace, addSimpleProperty, addSimpleShading, addSimpleShadingPattern, addToBody, addToBody, addToBody, addToBody, addToBody, addToBody, addViewerPreference, clearTextWrap, createXmpMetadata, eliminateFontSubset, fillOCProperties, fitsPage, fitsPage, getAcroForm, getBoxSize, getColorspaceName, getCompressionLevel, getCurrentDocumentSize, getCurrentPage, getCurrentPageNumber, getDefaultColorspace, getDirectContent, getDirectContentUnder, getEncryption, getExtraCatalog, getGroup, getImageReference, getIndirectReferenceNumber, getInfo, getInstance, getInstance, getNewObjectNumber, getOCProperties, getOs, getPageEvent, getPageNumber, getPageReference, getPageSize, getPdfDocument, getPdfIndirectReference, getPdfVersion, getPDFXConformance, getReaderFile, getReferenceJBIG2Globals, getRootOutline, getRunDirection, getSpaceCharRatio, getStructureTreeRoot, getTabs, getUserunit, getVerticalPosition, isFullCompression, isPageEmpty, isPdfA1, isPdfX, isRgbTransparencyBlending, isStrictImageSequence, isTagged, isUserProperties, lockLayer, open, propertyExists, registerLayer, releaseTemplate, reorderPages, resetContent, setAdditionalAction, setAtLeastPdfVersion, setBoxSize, setCollection, setCompressionLevel, setCropBoxSize, setDefaultColorspace, setDuration, setEncryption, setEncryption, setFullCompression, setGroup, setInitialLeading, setLinearPageMode, setOpenAction, setOpenAction, setOutlines, setOutputIntents, setOutputIntents, 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.lowagie.text.DocWriter
add, addTabs, flush, getISOBytes, isCloseStream, isPaused, newPage, pause, resetFooter, resetHeader, resetPageCount, resume, setCloseStream, setFooter, setHeader, setMarginMirroring, setMarginMirroringTopBottom, setMargins, setPageCount, setPageSize, write, write, writeEnd, writeEnd, writeMarkupAttributes, writeStart
-
Field Details
-
indirects
-
indirectMap
-
reader
-
acroForm
-
namePtr
protected int[] namePtr -
fieldArray
-
fieldTemplates
-
rotateContents
private boolean rotateContentsHolds value of property rotateContents.
-
-
Constructor Details
-
PdfCopy
Constructor- Parameters:
document
- documentos
- outputstream- Throws:
DocumentException
-
-
Method Details
-
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
Grabs a page from the input document- Overrides:
getImportedPage
in classPdfWriter
- Parameters:
reader
- the reader of the documentpageNumber
- which page to get- Returns:
- the page
-
copyIndirect
protected PdfIndirectReference copyIndirect(PRIndirectReference in) throws 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.- Parameters:
in
- the PRIndirectReference to translate- Returns:
- the translated PRIndirectReference
- Throws:
IOException
- on errorBadPdfFormatException
- on error with the Pdf format
-
copyDictionary
Translate a PRDictionary to a PdfDictionary. Also translate all of the objects contained in it.- Parameters:
in
- the PRDictionary to translate- Returns:
- the translated PRDictionary
- Throws:
IOException
- on errorBadPdfFormatException
- on error with the Pdf format
-
copyStream
Translate a PRStream to a PdfStream. The data part copies itself.- Parameters:
in
- the PRStream to translate- Returns:
- the translated PRStream
- Throws:
IOException
- on errorBadPdfFormatException
- on error with the Pdf format
-
copyArray
Translate a PRArray to a PdfArray. Also translate all of the objects contained in it- Parameters:
in
- the PdfArray to copy- Returns:
- the newly generate PdfArray
- Throws:
IOException
- on errorBadPdfFormatException
-
copyObject
Translate a PR-object to a Pdf-object- Parameters:
in
- the PdfObject to translate- Returns:
- the PdfObject
- Throws:
IOException
- on errorBadPdfFormatException
- on error with the Pdf format
-
setFromIPage
convenience method. Given an imported page, set our "globals"- Parameters:
iPage
- the imported page- Returns:
- the page number
-
setFromReader
convenience method. Given a reader, set our "globals"- Parameters:
reader
- the PdfReader
-
addPage
Add an imported page to our output- Parameters:
iPage
- an imported page- Throws:
IOException
- on errorBadPdfFormatException
- on error
-
addPage
Adds a blank page.- Parameters:
rect
- The page dimensionrotation
- The rotation angle in degrees- Since:
- 2.1.5
-
copyAcroForm
Copy the acroform for an input document. Note that you can only have one, we make no effort to merge them.- Parameters:
reader
- The reader of the input file that is being copied- Throws:
IOException
- on errorBadPdfFormatException
- on error
-
getCatalog
- Overrides:
getCatalog
in classPdfWriter
-
addFieldResources
- Throws:
IOException
-
close
public void close()Signals that theDocument
was closed and that no otherElements
will 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:
close
in interfaceAutoCloseable
- Specified by:
close
in interfaceDocListener
- Overrides:
close
in classPdfWriter
- See Also:
-
add
-
addAnnotation
Description copied from interface:PdfAnnotations
Use this methods to add aPdfAnnotation
or aPdfFormField
to the document. Only the top parent of aPdfFormField
needs to be added.- Specified by:
addAnnotation
in interfacePdfAnnotations
- Overrides:
addAnnotation
in classPdfWriter
- Parameters:
annot
- thePdfAnnotation
or thePdfFormField
to add- See Also:
-
add
Description copied from class:PdfWriter
Adds somePdfContents
to this Writer.The document has to be open before you can begin to add content to the body of the document.
- Overrides:
add
in classPdfWriter
- Parameters:
page
- thePdfPage
to addcontents
- thePdfContents
of the page- Returns:
- a
PdfIndirectReference
- Throws:
PdfException
- on error
-
freeReader
Description copied from class:PdfWriter
Use 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:
freeReader
in classPdfWriter
- Parameters:
reader
- thePdfReader
to free- Throws:
IOException
- on error
-
createPageStamp
Create a page stamp. New content and annotations, including new fields, are allowed. The fields added cannot have parents in another pages. This method modifies the PdfReader instance.The general usage to stamp something in a page is:
PdfImportedPage page = copy.getImportedPage(reader, 1); PdfCopy.PageStamp ps = copy.createPageStamp(page); ps.addAnnotation(PdfAnnotation.createText(copy, new Rectangle(50, 180, 70, 200), "Hello", "No Thanks", true, "Comment")); PdfContentByte under = ps.getUnderContent(); under.addImage(img); PdfContentByte over = ps.getOverContent(); over.beginText(); over.setFontAndSize(bf, 18); over.setTextMatrix(30, 30); over.showText("total page " + totalPage); over.endText(); ps.alterContents(); copy.addPage(page);
- Parameters:
iPage
- an imported page- Returns:
- the
PageStamp
-