public class PdfCopy extends PdfWriter
| Modifier and Type | Class and Description | 
|---|---|
protected static class  |  
           PdfCopy.ImportedPage  |  
          
static class  |  
           PdfCopy.PageStamp  |  
          
static class  |  
           PdfCopy.StampContent  |  
          
PdfWriter.PdfBody, PdfWriter.PdfTrailer| Modifier and Type | Field and Description | 
|---|---|
protected static Counter |  
           COUNTER  |  
          
protected HashSet<PdfObject> |  
           disableIndirects  |  
          
protected PdfArray |  
           fieldArray  |  
          
protected static HashSet<PdfName> |  
           fieldKeys  |  
          
protected ArrayList<AcroFields> |  
           fields  |  
          
protected HashSet<PdfTemplate> |  
           fieldTemplates  |  
          
protected ArrayList<PdfCopy.ImportedPage> |  
           importedPages  |  
          
protected HashMap<PdfReader,HashMap<RefKey,com.itextpdf.text.pdf.PdfCopy.IndirectReferences>> |  
           indirectMap  |  
          
protected LinkedHashMap<RefKey,PdfIndirectObject> |  
           indirectObjects  |  
          
protected HashMap<RefKey,com.itextpdf.text.pdf.PdfCopy.IndirectReferences> |  
           indirects  |  
          
protected boolean |  
           mergeFields  |  
          
protected int[] |  
           namePtr  |  
          
protected HashMap<PdfObject,PdfObject> |  
           parentObjects  |  
          
protected PdfReader |  
           reader  |  
          
protected ArrayList<PdfIndirectObject> |  
           savedObjects  |  
          
protected PRIndirectReference |  
           structTreeRootReference  |  
          
protected boolean |  
           updateRootKids  |  
          
protected static HashSet<PdfName> |  
           widgetKeys  |  
          
ALLOW_ASSEMBLY, ALLOW_COPY, ALLOW_DEGRADED_PRINTING, ALLOW_FILL_IN, ALLOW_MODIFY_ANNOTATIONS, ALLOW_MODIFY_CONTENTS, ALLOW_PRINTING, ALLOW_SCREENREADERS, AllowAssembly, AllowCopy, AllowDegradedPrinting, AllowFillIn, AllowModifyAnnotations, AllowModifyContents, AllowPrinting, AllowScreenReaders, body, CenterWindow, colorNumber, colorProfile, 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, extraCatalog, FitWindow, fontNumber, formXObjects, formXObjectsCounter, fullCompression, GENERATION_MAX, group, HideMenubar, HideToolbar, HideWindowUI, imageDictionary, JBIG2Globals, markAll, markInlineElementsOnly, newBookmarks, NO_SPACE_CHAR_RATIO, NonFullScreenPageModeUseNone, NonFullScreenPageModeUseOC, NonFullScreenPageModeUseOutlines, NonFullScreenPageModeUseThumbs, OCGLocked, OCGRadioGroup, OCProperties, originalFileID, PAGE_CLOSE, PAGE_OPEN, pageDictEntries, 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, pdfIsoConformance, PDFX1A2001, PDFX32002, PDFXNONE, prevxref, PrintScalingNone, readerInstances, 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, STRENGTH128BITS, STRENGTH40BITS, structureTreeRoot, tabs, tagged, taggingMode, ttfUnicodeWriter, VERSION_1_2, VERSION_1_3, VERSION_1_4, VERSION_1_5, VERSION_1_6, VERSION_1_7, WILL_PRINT, WILL_SAVE, xmpMetadata, xmpWriter| Constructor and Description | 
|---|
PdfCopy(Document document, OutputStream os) 
            
              Constructor 
               |  
          
| Modifier and Type | Method and Description | 
|---|---|
PdfIndirectReference |  
           add(PdfOutline outline)  |  
          
void |  
           addAnnotation(PdfAnnotation annot) 
            
              Use this methods to add a   PdfAnnotation or a PdfFormField to the document. 
             |  
          
void |  
           addDocument(PdfReader reader)  |  
          
void |  
           addDocument(PdfReader reader, List<Integer> pagesToKeep)  |  
          
void |  
           addPage(PdfImportedPage iPage) 
            
              Add an imported page to our output 
               |  
          
void |  
           addPage(Rectangle rect, int rotation) 
            
              Adds a blank page. 
               |  
          
PdfIndirectObject |  
           addToBody(PdfObject object, PdfIndirectReference ref) 
            
              Use this method to add a PDF object to the PDF body. 
               |  
          
PdfIndirectObject |  
           addToBody(PdfObject object, PdfIndirectReference ref, boolean formBranching) 
            
              Use this method to add a PDF object to the PDF body. 
               |  
          
protected void |  
           cacheObject(PdfIndirectObject iobj) 
            
              Use this method for caching objects. 
               |  
          
void |  
           close() 
            
              Signals that the   Document was closed and that no other Elements will be added. 
             |  
          
protected PdfArray |  
           copyArray(PdfArray in) 
            
              Translate a PRArray to a PdfArray. 
               |  
          
protected PdfArray |  
           copyArray(PdfArray in, boolean keepStruct, boolean directRootKids) 
            
              Translate a PRArray to a PdfArray. 
               |  
          
protected PdfDictionary |  
           copyDictionary(PdfDictionary in) 
            
              Translate a PRDictionary to a PdfDictionary. 
               |  
          
protected PdfDictionary |  
           copyDictionary(PdfDictionary in, boolean keepStruct, boolean directRootKids) 
            
              Translate a PRDictionary to a PdfDictionary. 
               |  
          
void |  
           copyDocumentFields(PdfReader reader) 
            
              Copy document fields to a destination document. 
               |  
          
protected PdfIndirectReference |  
           copyIndirect(PRIndirectReference in) 
            
              Translate a PRIndirectReference to a PdfIndirectReference In addition, translates the object numbers, and copies the referenced object to the output file. 
               |  
          
protected PdfIndirectReference |  
           copyIndirect(PRIndirectReference in, boolean keepStructure, boolean directRootKids) 
            
              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-object 
               |  
          
protected PdfObject |  
           copyObject(PdfObject in, boolean keepStruct, boolean directRootKids) 
            
              Translate a PR-object to a Pdf-object 
               |  
          
protected PdfStream |  
           copyStream(PRStream in) 
            
              Translate a PRStream to a PdfStream. 
               |  
          
PdfCopy.PageStamp |  
           createPageStamp(PdfImportedPage iPage) 
            
              Create a page stamp. 
               |  
          
protected void |  
           fixStructureTreeRoot(HashSet<RefKey> activeKeys, HashSet<PdfName> activeClassMaps)  |  
          
protected void |  
           fixTaggedStructure()  |  
          
protected void |  
           flushAcroFields()  |  
          
protected void |  
           flushIndirectObjects()  |  
          
protected void |  
           flushTaggedObjects() 
            
              Fix structure of tagged document: remove unused objects, remove unused items from class map, fix xref table due to removed objects. 
               |  
          
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)  |  
          
protected Counter |  
           getCounter()  |  
          
PdfImportedPage |  
           getImportedPage(PdfReader reader, int pageNumber) 
            
              Grabs a page from the input document 
               |  
          
PdfImportedPage |  
           getImportedPage(PdfReader reader, int pageNumber, boolean keepTaggedPdfStructure)  |  
          
protected PdfImportedPage |  
           getImportedPageImpl(PdfReader reader, int pageNumber)  |  
          
protected PdfName |  
           getOffStateName(PdfDictionary widget)  |  
          
boolean |  
           isRotateContents() 
            
              Getter for property rotateContents. 
               |  
          
protected boolean |  
           isStructTreeRootReference(PdfIndirectReference prRef)  |  
          
protected int |  
           setFromIPage(PdfImportedPage iPage) 
            
              convenience method. 
               |  
          
protected void |  
           setFromReader(PdfReader reader) 
            
              convenience method. 
               |  
          
void |  
           setMergeFields()  |  
          
void |  
           setPageEvent(PdfPageEvent event) 
            
              Setting page events isn't possible with Pdf(Smart)Copy. 
               |  
          
void |  
           setRotateContents(boolean rotateContents) 
            
              Setter for property rotateContents. 
               |  
          
protected void |  
           structureTreeRootKidsForReaderImported(PdfReader reader)  |  
          
add, addCalculationOrder, addDeveloperExtension, addDirectImageSimple, addDirectImageSimple, addFileAttachment, addFileAttachment, addFileAttachment, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addNamedDestination, addNamedDestinations, addOCGRadioGroup, addPageDictEntry, addSharedObjectsToBody, addToBody, addToBody, addToBody, addToBody, addViewerPreference, addXFormsToBody, buildStructTreeRootForTagged, checkElementRole, checkPdfIsoConformance, checkPdfIsoConformance, clearTextWrap, createAnnotation, createAnnotation, createAnnotation, createXmpMetadata, createXmpWriter, createXmpWriter, fillOCProperties, getAcroForm, getBoxSize, getBoxSize, getColorProfile, getCompressionLevel, getCurrentDocumentSize, getCurrentPageNumber, getDefaultColorspace, getDirectContent, getDirectContentUnder, getExtraCatalog, getGroup, getIndirectReferenceNumber, getInfo, getInstance, getInstance, getNameString, getNewObjectNumber, getOCProperties, getOs, getPageDictEntries, getPageEvent, getPageNumber, getPageReference, getPageSize, getPdfIndirectReference, getPdfReaderInstance, getPDFXConformance, getReferenceJBIG2Globals, getRootOutline, getRunDirection, getSpaceCharRatio, getStandardStructElems, getStructureTreeRoot, getTabs, getTtfUnicodeWriter, getVerticalPosition, getXmpWriter, initPdfIsoConformance, isFullCompression, isPageEmpty, isPdfIso, isPdfX, isRgbTransparencyBlending, isStrictImageSequence, isTagged, isUserProperties, lockLayer, needToBeMarkedInContent, open, releaseTemplate, reorderPages, resetPageDictEntries, setAdditionalAction, setAtLeastPdfVersion, setBoxSize, setCollection, setCompressionLevel, setCropBoxSize, setDefaultColorspace, setDuration, setEncryption, setEncryption, setEncryption, setEncryption, setEncryption, setFullCompression, setGroup, setInitialLeading, setLanguage, setLinearPageMode, setOpenAction, setOpenAction, setOutlines, setOutputIntents, setOutputIntents, setOutputIntents, setPageAction, setPageEmpty, setPageLabels, setPageViewport, setPageXmpMetadata, setPdfVersion, setPdfVersion, setPDFXConformance, setRgbTransparencyBlending, setRunDirection, setSigFlags, setSpaceCharRatio, setStrictImageSequence, setTabs, setTagged, setTagged, setThumbnail, setTransition, setUserProperties, setUserunit, setViewerPreferences, setXmpMetadata, useExternalCacheForTagStructure, writeKeyInfo, writeOutlinesadd, addTabs, flush, getISOBytes, isCloseStream, isPaused, newPage, pause, resetPageCount, resume, setCloseStream, setMarginMirroring, setMarginMirroringTopBottom, setMargins, setPageCount, setPageSize, write, write, writeEnd, writeEnd, writeMarkupAttributes, writeStartprotected static Counter COUNTER
protected HashMap<PdfReader,HashMap<RefKey,com.itextpdf.text.pdf.PdfCopy.IndirectReferences>> indirectMap
protected PdfReader reader
protected int[] namePtr
protected PdfArray fieldArray
protected HashSet<PdfTemplate> fieldTemplates
protected PRIndirectReference structTreeRootReference
protected LinkedHashMap<RefKey,PdfIndirectObject> indirectObjects
protected ArrayList<PdfIndirectObject> savedObjects
protected ArrayList<PdfCopy.ImportedPage> importedPages
protected boolean updateRootKids
protected boolean mergeFields
protected ArrayList<AcroFields> fields
public PdfCopy(Document document, OutputStream os) throws DocumentException
document - document 
           os - outputstream 
           DocumentException 
           protected Counter getCounter()
getCounter in class PdfWriter 
           public void setPageEvent(PdfPageEvent event)
setPageEvent in class PdfWriter 
           event - the PdfPageEvent for this document 
           PdfWriter.setPageEvent(com.itextpdf.text.pdf.PdfPageEvent) 
           public boolean isRotateContents()
public void setRotateContents(boolean rotateContents)
rotateContents - New value of property rotateContents. 
           public void setMergeFields()
public PdfImportedPage getImportedPage(PdfReader reader, int pageNumber)
getImportedPage in class PdfWriter 
           reader - the reader of the document 
           pageNumber - which page to get 
           public PdfImportedPage getImportedPage(PdfReader reader, int pageNumber, boolean keepTaggedPdfStructure) throws BadPdfFormatException
BadPdfFormatException 
           protected void structureTreeRootKidsForReaderImported(PdfReader reader)
protected void fixStructureTreeRoot(HashSet<RefKey> activeKeys, HashSet<PdfName> activeClassMaps)
protected PdfImportedPage getImportedPageImpl(PdfReader reader, int pageNumber)
protected PdfIndirectReference copyIndirect(PRIndirectReference in, boolean keepStructure, boolean directRootKids) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfIndirectReference copyIndirect(PRIndirectReference in) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfDictionary copyDictionary(PdfDictionary in, boolean keepStruct, boolean directRootKids) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfDictionary copyDictionary(PdfDictionary in) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfStream copyStream(PRStream in) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfArray copyArray(PdfArray in, boolean keepStruct, boolean directRootKids) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfArray copyArray(PdfArray in) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfObject copyObject(PdfObject in, boolean keepStruct, boolean directRootKids) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected PdfObject copyObject(PdfObject in) throws IOException, BadPdfFormatException
IOException 
           BadPdfFormatException 
           protected int setFromIPage(PdfImportedPage iPage)
protected void setFromReader(PdfReader reader)
public void addPage(PdfImportedPage iPage) throws IOException, BadPdfFormatException
iPage - an imported page 
           IOException, - BadPdfFormatException 
           IOException 
           BadPdfFormatException 
           public void addPage(Rectangle rect, int rotation) throws DocumentException
rect - The page dimension 
           rotation - The rotation angle in degrees 
           DocumentException 
           public void addDocument(PdfReader reader, List<Integer> pagesToKeep) throws DocumentException, IOException
DocumentException 
           IOException 
           public void copyDocumentFields(PdfReader reader) throws DocumentException, IOException
reader - a document where fields are copied from. 
           DocumentException 
           IOException 
           public void addDocument(PdfReader reader) throws DocumentException, IOException
DocumentException 
           IOException 
           public PdfIndirectObject addToBody(PdfObject object, PdfIndirectReference ref) throws IOException
PdfWriter 
          addToBody in class PdfWriter 
           IOException 
           public PdfIndirectObject addToBody(PdfObject object, PdfIndirectReference ref, boolean formBranching) throws IOException
PdfWriter 
          addToBody in class PdfWriter 
           IOException 
           protected void cacheObject(PdfIndirectObject iobj)
PdfWriter 
          cacheObject in class PdfWriter 
           iobj - @see PdfIndirectObject 
           protected void flushTaggedObjects()
                           throws IOException 
          PdfWriter 
          flushTaggedObjects in class PdfWriter 
           IOException 
           protected void flushAcroFields()
                        throws IOException,
                               BadPdfFormatException 
          flushAcroFields in class PdfWriter 
           IOException 
           BadPdfFormatException 
           protected void fixTaggedStructure()
                           throws IOException 
          IOException 
           protected void flushIndirectObjects()
                             throws IOException 
          IOException 
           protected PdfDictionary getCatalog(PdfIndirectReference rootObj)
getCatalog in class PdfWriter 
           protected boolean isStructTreeRootReference(PdfIndirectReference prRef)
public void close()
Document was closed and that no other Elements 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.
close in interface DocListener 
           close in class PdfWriter 
           DocWriter.close() 
           public PdfIndirectReference add(PdfOutline outline)
public void addAnnotation(PdfAnnotation annot)
PdfAnnotations 
          PdfAnnotation or a PdfFormField to the document. Only the top parent of a PdfFormField needs to be added. 
          addAnnotation in interface PdfAnnotations 
           addAnnotation in class PdfWriter 
           annot - the PdfAnnotation or the PdfFormField to add 
           PdfAnnotations.addAnnotation(com.itextpdf.text.pdf.PdfAnnotation) 
           public void freeReader(PdfReader reader) throws IOException
PdfWriter 
          freeReader in class PdfWriter 
           reader - the PdfReader to free 
           IOException - on error 
           protected PdfName getOffStateName(PdfDictionary widget)
public PdfCopy.PageStamp createPageStamp(PdfImportedPage iPage)
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);
  
          iPage - an imported page 
           PageStamp 
           Copyright © 1998–2019. All rights reserved.