Package com.itextpdf.text.pdf
Class PdfACopy
- java.lang.Object
-
- com.itextpdf.text.DocWriter
-
- com.itextpdf.text.pdf.PdfWriter
-
- com.itextpdf.text.pdf.PdfCopy
-
- com.itextpdf.text.pdf.PdfACopy
-
- All Implemented Interfaces:
DocListener
,ElementListener
,PdfAnnotations
,PdfDocumentActions
,PdfEncryptionSettings
,PdfPageActions
,PdfRunDirection
,PdfVersion
,PdfViewerPreferences
,java.util.EventListener
- Direct Known Subclasses:
PdfASmartCopy
public class PdfACopy extends PdfCopy
Extension of PdfCopy that will attempt to keep a file in conformance with the PDF/A standard.- See Also:
PdfCopy
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.itextpdf.text.pdf.PdfCopy
PdfCopy.ImportedPage, PdfCopy.IndirectReferences, PdfCopy.PageStamp, PdfCopy.StampContent
-
Nested classes/interfaces inherited from class com.itextpdf.text.pdf.PdfWriter
PdfWriter.PdfBody, PdfWriter.PdfTrailer
-
-
Field Summary
Fields Modifier and Type Field Description protected Counter
COUNTER
-
Fields inherited from class com.itextpdf.text.pdf.PdfCopy
disableIndirects, fieldArray, fieldKeys, fields, fieldTemplates, importedPages, indirectMap, indirectObjects, indirects, mergeFields, namePtr, parentObjects, reader, savedObjects, structTreeRootReference, updateRootKids, widgetKeys
-
Fields inherited from class com.itextpdf.text.pdf.PdfWriter
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, ENCRYPTION_MASK, 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 Summary
Constructors Constructor Description PdfACopy(Document document, java.io.OutputStream os, PdfAConformanceLevel conformanceLevel)
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addDocument(PdfReader reader)
void
addPage(PdfImportedPage iPage)
Add an imported page to our outputprotected void
cacheObject(PdfIndirectObject iobj)
Use this method for caching objects.private void
checkPdfAInfo(PdfReader reader)
void
close()
Signals that theDocument
was closed and that no otherElements
will be added.PdfCopy.PageStamp
createPageStamp(PdfImportedPage iPage)
Create a page stamp.protected XmpWriter
createXmpWriter(java.io.ByteArrayOutputStream baos, PdfDictionary info)
protected XmpWriter
createXmpWriter(java.io.ByteArrayOutputStream baos, java.util.HashMap<java.lang.String,java.lang.String> info)
protected Counter
getCounter()
private PdfAChecker
getPdfAChecker()
protected TtfUnicodeWriter
getTtfUnicodeWriter()
protected PdfIsoConformance
initPdfIsoConformance()
boolean
setOutputIntents(PdfReader reader, boolean checkExistence)
Copies the output intent dictionary from other document to this one.void
setOutputIntents(java.lang.String outputConditionIdentifier, java.lang.String outputCondition, java.lang.String registryName, java.lang.String info, ICC_Profile colorProfile)
Sets the values of the output intent dictionary.-
Methods inherited from class com.itextpdf.text.pdf.PdfCopy
add, add, addAnnotation, addDocument, addPage, addToBody, addToBody, copyArray, copyArray, copyDictionary, copyDictionary, copyDocumentFields, copyIndirect, copyIndirect, copyObject, copyObject, copyStream, fixStructureTreeRoot, fixTaggedStructure, flushAcroFields, flushIndirectObjects, flushTaggedObjects, freeReader, getCatalog, getFlags, getImportedPage, getImportedPage, getImportedPageImpl, getOffStateName, isCheckButton, isRadioButton, isRotateContents, isStructTreeRootReference, isTextField, setFromIPage, setFromReader, setMergeFields, setPageEvent, setRotateContents, structureTreeRootKidsForReaderImported
-
Methods inherited from class com.itextpdf.text.pdf.PdfWriter
add, add, addAnnotation, addCalculationOrder, addDeveloperExtension, addDirectImageSimple, addDirectImageSimple, addDirectTemplateSimple, addFileAttachment, addFileAttachment, addFileAttachment, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addJavaScript, addLocalDestinations, addNamedDestination, addNamedDestinations, addOCGRadioGroup, addPageDictEntry, addSharedObjectsToBody, addSimple, addSimple, addSimpleExtGState, addSimplePattern, addSimplePatternColorspace, addSimpleProperty, addSimpleShading, addSimpleShadingPattern, addToBody, addToBody, addToBody, addToBody, addViewerPreference, addXFormsToBody, buildStructTreeRootForTagged, checkElementRole, checkPdfIsoConformance, checkPdfIsoConformance, clearTextWrap, createAnnotation, createAnnotation, createAnnotation, createXmpMetadata, eliminateFontSubset, fillOCProperties, getAcroForm, getBoxSize, getBoxSize, getColorProfile, getColorspaceName, getCompressionLevel, getCurrentDocumentSize, getCurrentPage, getCurrentPageNumber, getDefaultColorspace, getDirectContent, getDirectContentUnder, getEncryption, getExtraCatalog, getGroup, getImageReference, getIndirectReferenceNumber, getInfo, getInstance, getInstance, getNameString, getNewObjectNumber, getOCProperties, getOs, getPageDictEntries, getPageEvent, getPageNumber, getPageReference, getPageSize, getPdfDocument, getPdfIndirectReference, getPdfReaderInstance, getPdfVersion, getPDFXConformance, getReaderFile, getReferenceJBIG2Globals, getRootOutline, getRunDirection, getSpaceCharRatio, getStandardStructElems, getStructureTreeRoot, getTabs, getVerticalPosition, getXmpWriter, isFullCompression, isPageEmpty, isPdfIso, isPdfX, isRgbTransparencyBlending, isStrictImageSequence, isTagged, isUserProperties, lockLayer, needToBeMarkedInContent, open, propertyExists, registerLayer, releaseTemplate, reorderPages, resetContent, resetPageDictEntries, setAdditionalAction, setAtLeastPdfVersion, setBoxSize, setCollection, setCompressionLevel, setCropBoxSize, setDefaultColorspace, setDuration, setEncryption, setEncryption, setEncryption, setEncryption, setEncryption, setFullCompression, setGroup, setInitialLeading, setLanguage, setLinearPageMode, setOpenAction, setOpenAction, setOutlines, 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, writeOutlines
-
Methods inherited from class com.itextpdf.text.DocWriter
add, addTabs, flush, getISOBytes, isCloseStream, isPaused, newPage, pause, resetPageCount, resume, setCloseStream, setMarginMirroring, setMarginMirroringTopBottom, setMargins, setPageCount, setPageSize, write, write, writeEnd, writeEnd, writeMarkupAttributes, writeStart
-
-
-
-
Field Detail
-
COUNTER
protected Counter COUNTER
-
-
Constructor Detail
-
PdfACopy
public PdfACopy(Document document, java.io.OutputStream os, PdfAConformanceLevel conformanceLevel) throws DocumentException
Constructor- Parameters:
document
- documentos
- outputstream- Throws:
DocumentException
-
-
Method Detail
-
getCounter
protected Counter getCounter()
- Overrides:
getCounter
in classPdfCopy
-
initPdfIsoConformance
protected PdfIsoConformance initPdfIsoConformance()
- Overrides:
initPdfIsoConformance
in classPdfWriter
-
cacheObject
protected void cacheObject(PdfIndirectObject iobj)
Description copied from class:PdfWriter
Use this method for caching objects.- Overrides:
cacheObject
in classPdfCopy
- See Also:
PdfIndirectObject
-
getPdfAChecker
private PdfAChecker getPdfAChecker()
-
addDocument
public void addDocument(PdfReader reader) throws DocumentException, java.io.IOException
- Overrides:
addDocument
in classPdfCopy
- Throws:
DocumentException
java.io.IOException
-
addPage
public void addPage(PdfImportedPage iPage) throws java.io.IOException, BadPdfFormatException
Description copied from class:PdfCopy
Add an imported page to our output- Overrides:
addPage
in classPdfCopy
- Parameters:
iPage
- an imported page- Throws:
java.io.IOException
BadPdfFormatException
-
createPageStamp
public PdfCopy.PageStamp createPageStamp(PdfImportedPage iPage)
Description copied from class:PdfCopy
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);
- Overrides:
createPageStamp
in classPdfCopy
- Parameters:
iPage
- an imported page- Returns:
- the
PageStamp
-
setOutputIntents
public void setOutputIntents(java.lang.String outputConditionIdentifier, java.lang.String outputCondition, java.lang.String registryName, java.lang.String info, ICC_Profile colorProfile) throws java.io.IOException
Description copied from class:PdfWriter
Sets the values of the output intent dictionary. Null values are allowed to suppress any key.- Overrides:
setOutputIntents
in classPdfWriter
- Parameters:
outputConditionIdentifier
- a valueoutputCondition
- a valueregistryName
- a valueinfo
- a valuecolorProfile
- a value- Throws:
java.io.IOException
- on error
-
setOutputIntents
public boolean setOutputIntents(PdfReader reader, boolean checkExistence) throws java.io.IOException
Copies the output intent dictionary from other document to this one.- Overrides:
setOutputIntents
in classPdfWriter
- Parameters:
reader
- the other documentcheckExistence
-true
to just check for the existence of a valid output intent dictionary,false
to insert the dictionary if it exists- Returns:
true
if the output intent dictionary exists,false
otherwise- Throws:
java.io.IOException
- on error
-
createXmpWriter
protected XmpWriter createXmpWriter(java.io.ByteArrayOutputStream baos, PdfDictionary info) throws java.io.IOException
- Overrides:
createXmpWriter
in classPdfWriter
- Throws:
java.io.IOException
-
createXmpWriter
protected XmpWriter createXmpWriter(java.io.ByteArrayOutputStream baos, java.util.HashMap<java.lang.String,java.lang.String> info) throws java.io.IOException
- Overrides:
createXmpWriter
in classPdfWriter
- Throws:
java.io.IOException
-
getTtfUnicodeWriter
protected TtfUnicodeWriter getTtfUnicodeWriter()
- Overrides:
getTtfUnicodeWriter
in classPdfWriter
- See Also:
PdfWriter.getTtfUnicodeWriter()
-
close
public void close()
Description copied from class:PdfCopy
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 interfaceDocListener
- Overrides:
close
in classPdfCopy
- See Also:
DocWriter.close()
-
checkPdfAInfo
private void checkPdfAInfo(PdfReader reader)
-
-