Package com.lowagie.text.pdf
Class PdfCopyFieldsImp
- java.lang.Object
-
- com.lowagie.text.DocWriter
-
- com.lowagie.text.pdf.PdfWriter
-
- com.lowagie.text.pdf.PdfCopyFieldsImp
-
- All Implemented Interfaces:
DocListener
,ElementListener
,PdfAnnotations
,PdfDocumentActions
,PdfEncryptionSettings
,PdfPageActions
,PdfRunDirection
,PdfVersion
,PdfViewerPreferences
,PdfXConformance
,java.lang.AutoCloseable
,java.util.EventListener
- Direct Known Subclasses:
PdfCopyFormsImp
class PdfCopyFieldsImp extends PdfWriter
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.lowagie.text.pdf.PdfWriter
PdfWriter.PdfBody, PdfWriter.PdfTrailer
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List<java.lang.Object>
calculationOrder
private java.util.List<java.lang.Object>
calculationOrderRefs
(package private) boolean
closing
protected static java.util.Map<PdfName,java.lang.Integer>
fieldKeys
(package private) java.util.List<AcroFields>
fields
(package private) java.util.Map<java.lang.String,java.lang.Object>
fieldTree
(package private) RandomAccessFileOrArray
file
(package private) PdfDictionary
form
private boolean
hasSignature
private static PdfName
iTextTag
(package private) Document
nd
(package private) java.util.List<PdfDictionary>
pageDics
(package private) java.util.List<PdfIndirectReference>
pageRefs
private java.util.Map<PdfReader,IntHashtable>
pages2intrefs
private java.util.List<PdfReader>
readers
(package private) java.util.Map<PdfReader,IntHashtable>
readers2intrefs
(package private) PdfDictionary
resources
private java.util.Map<PdfArray,java.util.List<java.lang.Integer>>
tabOrder
private java.util.Map<PdfReader,IntHashtable>
visited
protected static java.util.Map<PdfName,java.lang.Integer>
widgetKeys
private static java.lang.Integer
zero
-
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 Constructor Description PdfCopyFieldsImp(java.io.OutputStream os)
PdfCopyFieldsImp(java.io.OutputStream os, char pdfVersion)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description (package private) void
addDocument(PdfReader reader)
(package private) void
addDocument(PdfReader reader, java.util.List<java.lang.Integer> pagesToKeep)
(package private) void
addPageOffsetToField(java.util.Map<java.lang.String,AcroFields.Item> fd, int pageOffset)
private void
adjustTabOrder(PdfArray annots, PdfIndirectReference ind, PdfNumber nn)
protected PdfArray
branchForm(java.util.Map<java.lang.String,java.lang.Object> level, PdfIndirectReference parent, java.lang.String fname)
void
close()
Signals that theDocument
was closed and that no otherElements
will be added.protected void
closeIt()
Creates the new PDF by merging the fields and forms.protected void
createAcroForms()
(package private) void
createWidgets(java.util.List<java.lang.Object> list, AcroFields.Item item)
protected PdfDictionary
getCatalog(PdfIndirectReference rootObj)
private static java.lang.String
getCOName(PRIndirectReference ref)
protected int
getNewObjectNumber(PdfReader reader, int number, int generation)
protected PdfIndirectReference
getNewReference(PRIndirectReference ref)
PdfIndirectReference
getPageReference(int page)
Use this method to get a reference to a page existing or not.(package private) RandomAccessFileOrArray
getReaderFile(PdfReader reader)
protected boolean
isPage(PRIndirectReference ref)
Checks if a reference refers to a page object.protected boolean
isVisited(PdfReader reader, int number)
protected boolean
isVisited(PRIndirectReference ref)
Checks if a reference has already been "visited" in the copy process.(package private) void
mergeField(java.lang.String name, AcroFields.Item item)
(package private) void
mergeFields()
(package private) void
mergeWithMaster(java.util.Map<java.lang.String,AcroFields.Item> fd)
void
openDoc()
private void
propagate(PdfObject obj, boolean restricted)
protected boolean
setVisited(PRIndirectReference ref)
Sets a reference to "visited" in the copy process.protected void
updateCalculationOrder(PdfReader reader)
-
Methods inherited from class com.lowagie.text.pdf.PdfWriter
add, add, add, addAnnotation, 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, freeReader, getAcroForm, getBoxSize, getColorspaceName, getCompressionLevel, getCurrentDocumentSize, getCurrentPage, getCurrentPageNumber, getDefaultColorspace, getDirectContent, getDirectContentUnder, getEncryption, getExtraCatalog, getGroup, getImageReference, getImportedPage, getIndirectReferenceNumber, getInfo, getInstance, getInstance, getOCProperties, getOs, getPageEvent, getPageNumber, getPageSize, getPdfDocument, getPdfIndirectReference, getPdfVersion, getPDFXConformance, 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 Detail
-
widgetKeys
protected static final java.util.Map<PdfName,java.lang.Integer> widgetKeys
-
fieldKeys
protected static final java.util.Map<PdfName,java.lang.Integer> fieldKeys
-
iTextTag
private static final PdfName iTextTag
-
zero
private static final java.lang.Integer zero
-
readers
private final java.util.List<PdfReader> readers
-
pages2intrefs
private final java.util.Map<PdfReader,IntHashtable> pages2intrefs
-
visited
private final java.util.Map<PdfReader,IntHashtable> visited
-
calculationOrder
private final java.util.List<java.lang.Object> calculationOrder
-
readers2intrefs
java.util.Map<PdfReader,IntHashtable> readers2intrefs
-
fields
java.util.List<AcroFields> fields
-
file
RandomAccessFileOrArray file
-
fieldTree
java.util.Map<java.lang.String,java.lang.Object> fieldTree
-
pageRefs
java.util.List<PdfIndirectReference> pageRefs
-
pageDics
java.util.List<PdfDictionary> pageDics
-
resources
PdfDictionary resources
-
form
PdfDictionary form
-
closing
boolean closing
-
nd
Document nd
-
tabOrder
private java.util.Map<PdfArray,java.util.List<java.lang.Integer>> tabOrder
-
calculationOrderRefs
private java.util.List<java.lang.Object> calculationOrderRefs
-
hasSignature
private boolean hasSignature
-
-
Constructor Detail
-
PdfCopyFieldsImp
PdfCopyFieldsImp(java.io.OutputStream os) throws DocumentException
- Throws:
DocumentException
-
PdfCopyFieldsImp
PdfCopyFieldsImp(java.io.OutputStream os, char pdfVersion) throws DocumentException
- Throws:
DocumentException
-
-
Method Detail
-
getCOName
private static java.lang.String getCOName(PRIndirectReference ref)
-
addDocument
void addDocument(PdfReader reader, java.util.List<java.lang.Integer> pagesToKeep) throws DocumentException, java.io.IOException
- Throws:
DocumentException
java.io.IOException
-
addDocument
void addDocument(PdfReader reader) throws DocumentException, java.io.IOException
- Throws:
DocumentException
java.io.IOException
-
updateCalculationOrder
protected void updateCalculationOrder(PdfReader reader)
- Since:
- 2.1.5; before 2.1.5 the method was private
-
propagate
private void propagate(PdfObject obj, boolean restricted)
-
adjustTabOrder
private void adjustTabOrder(PdfArray annots, PdfIndirectReference ind, PdfNumber nn)
-
branchForm
protected PdfArray branchForm(java.util.Map<java.lang.String,java.lang.Object> level, PdfIndirectReference parent, java.lang.String fname) throws java.io.IOException
- Throws:
java.io.IOException
-
createAcroForms
protected void createAcroForms() throws java.io.IOException
- Throws:
java.io.IOException
-
close
public void close()
Description copied from class:PdfWriter
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 interfacejava.lang.AutoCloseable
- Specified by:
close
in interfaceDocListener
- Overrides:
close
in classPdfWriter
- See Also:
DocWriter.close()
-
closeIt
protected void closeIt() throws java.io.IOException
Creates the new PDF by merging the fields and forms.- Throws:
java.io.IOException
-
addPageOffsetToField
void addPageOffsetToField(java.util.Map<java.lang.String,AcroFields.Item> fd, int pageOffset)
-
createWidgets
void createWidgets(java.util.List<java.lang.Object> list, AcroFields.Item item)
-
mergeField
void mergeField(java.lang.String name, AcroFields.Item item)
-
mergeWithMaster
void mergeWithMaster(java.util.Map<java.lang.String,AcroFields.Item> fd)
-
mergeFields
void mergeFields()
-
getPageReference
public PdfIndirectReference getPageReference(int page)
Description copied from class:PdfWriter
Use this method to get a reference to a page existing or not. If the page does not exist yet the reference will be created in advance. If on closing the document, a page number greater than the total number of pages was requested, an exception is thrown.- Overrides:
getPageReference
in classPdfWriter
- Parameters:
page
- the page number. The first page is 1- Returns:
- the reference to the page
-
getCatalog
protected PdfDictionary getCatalog(PdfIndirectReference rootObj)
- Overrides:
getCatalog
in classPdfWriter
-
getNewReference
protected PdfIndirectReference getNewReference(PRIndirectReference ref)
-
getNewObjectNumber
protected int getNewObjectNumber(PdfReader reader, int number, int generation)
- Overrides:
getNewObjectNumber
in classPdfWriter
-
setVisited
protected boolean setVisited(PRIndirectReference ref)
Sets a reference to "visited" in the copy process.- Parameters:
ref
- the reference that needs to be set to "visited"- Returns:
- true if the reference was set to visited
-
isVisited
protected boolean isVisited(PRIndirectReference ref)
Checks if a reference has already been "visited" in the copy process.- Parameters:
ref
- the reference that needs to be checked- Returns:
- true if the reference was already visited
-
isVisited
protected boolean isVisited(PdfReader reader, int number)
-
isPage
protected boolean isPage(PRIndirectReference ref)
Checks if a reference refers to a page object.- Parameters:
ref
- the reference that needs to be checked- Returns:
- true is the reference refers to a page object.
-
getReaderFile
RandomAccessFileOrArray getReaderFile(PdfReader reader)
- Overrides:
getReaderFile
in classPdfWriter
-
openDoc
public void openDoc()
-
-