Package com.itextpdf.text.pdf
Class PdfAWriter
java.lang.Object
com.itextpdf.text.DocWriter
com.itextpdf.text.pdf.PdfWriter
com.itextpdf.text.pdf.PdfAWriter
- All Implemented Interfaces:
DocListener
,ElementListener
,PdfAnnotations
,PdfDocumentActions
,PdfEncryptionSettings
,PdfPageActions
,PdfRunDirection
,PdfVersion
,PdfViewerPreferences
,EventListener
Extension of PdfWriter that will attempt to create a PDF/A file
instead of an ordinary PDF file.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class com.itextpdf.text.pdf.PdfWriter
PdfWriter.PdfBody, PdfWriter.PdfTrailer
-
Field Summary
FieldsFields 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
ConstructorsModifierConstructorDescriptionprotected
PdfAWriter
(PdfAConformanceLevel conformanceLevel) protected
PdfAWriter
(PdfDocument document, OutputStream os, PdfAConformanceLevel conformanceLevel) Constructs aPdfAWriter
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addFileAttachment
(String description, byte[] fileStore, String file, String fileDisplay) Use this method to add a file attachment at the document level.void
addFileAttachment
(String description, byte[] fileStore, String file, String fileDisplay, PdfName afRelationshipValue) Use this method to add a file attachment at the document level.addFileAttachment
(String description, byte[] fileStore, String file, String fileDisplay, String mimeType, PdfName afRelationshipValue) Use this method to add a file attachment at the document level.addFileAttachment
(String description, byte[] fileStore, String file, String fileDisplay, String mimeType, PdfName afRelationshipValue, PdfDictionary fileParameter) Use this method to add a file attachment at the document level.void
addPdfAttachment
(String description, byte[] fileStore, String file, String fileDisplay) Use this method to add a file attachment at the document level.void
addPdfAttachment
(String description, byte[] fileStore, String file, String fileDisplay, PdfName afRelationshipValue) Use this method to add a file attachment at the document level.protected void
cacheObject
(PdfIndirectObject iobj) Use this method for caching objects.void
close()
Signals that theDocument
was closed and that no otherElements
will be added.createAnnotation
(float llx, float lly, float urx, float ury, PdfAction action, PdfName subtype) A wrapper around PdfAnnotation constructor.createAnnotation
(float llx, float lly, float urx, float ury, PdfString title, PdfString content, PdfName subtype) A wrapper around PdfAnnotation constructor.createAnnotation
(Rectangle rect, PdfName subtype) A wrapper around PdfAnnotation constructor.protected XmpWriter
createXmpWriter
(ByteArrayOutputStream baos, PdfDictionary info) protected XmpWriter
createXmpWriter
(ByteArrayOutputStream baos, HashMap<String, String> info) protected Counter
static PdfAWriter
getInstance
(Document document, OutputStream os, DocListener listener, PdfAConformanceLevel conformanceLevel) Use this method to get an instance of thePdfWriter
.static PdfAWriter
getInstance
(Document document, OutputStream os, PdfAConformanceLevel conformanceLevel) Use this method to get an instance of thePdfWriter
.private PdfAChecker
protected TtfUnicodeWriter
protected PdfIsoConformance
boolean
setOutputIntents
(PdfReader reader, boolean checkExistence) Copies the output intent dictionary from other document to this one.void
setOutputIntents
(String outputConditionIdentifier, String outputCondition, String registryName, String info, ICC_Profile colorProfile) Sets the values of the output intent dictionary.static void
setPdfVersion
(PdfWriter writer, PdfAConformanceLevel conformanceLevel) Sets the Confomance level.void
setPDFXConformance
(int pdfx) Always throws an exception since PDF/X conformance level cannot be set for PDF/A conformant documents.void
useExternalCacheForPdfA
(TempFileCache fileCache) Methods inherited from class com.itextpdf.text.pdf.PdfWriter
add, add, add, addAnnotation, addAnnotation, addCalculationOrder, addDeveloperExtension, addDirectImageSimple, addDirectImageSimple, addDirectTemplateSimple, 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, addToBody, addToBody, addViewerPreference, addXFormsToBody, buildStructTreeRootForTagged, checkElementRole, checkPdfIsoConformance, checkPdfIsoConformance, clearTextWrap, createXmpMetadata, eliminateFontSubset, fillOCProperties, flushAcroFields, flushTaggedObjects, freeReader, getAcroForm, getBoxSize, getBoxSize, getCatalog, getColorProfile, getColorspaceName, getCompressionLevel, getCurrentDocumentSize, getCurrentPage, getCurrentPageNumber, getDefaultColorspace, getDirectContent, getDirectContentUnder, getEncryption, getExtraCatalog, getGroup, getImageReference, getImportedPage, 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, setPageEvent, setPageLabels, setPageViewport, setPageXmpMetadata, setPdfVersion, setPdfVersion, 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 Details
-
MimeTypePdf
-
MimeTypeOctetStream
-
COUNTER
-
-
Constructor Details
-
PdfAWriter
- Parameters:
conformanceLevel
- PDF/A conformance level of a new PDF document
-
PdfAWriter
Constructs aPdfAWriter
.Remark: a PdfAWriter can only be constructed by calling the method
getInstance(Document document, OutputStream os, PdfAconformanceLevel conformanceLevel)
.- Parameters:
document
- thePdfDocument
that has to be writtenos
- theOutputStream
the writer has to write toconformanceLevel
- PDF/A conformance level of a new PDF document
-
-
Method Details
-
getInstance
public static PdfAWriter getInstance(Document document, OutputStream os, PdfAConformanceLevel conformanceLevel) throws DocumentException Use this method to get an instance of thePdfWriter
.- Parameters:
document
- TheDocument
that has to be writtenos
- TheOutputStream
the writer has to write to.conformanceLevel
- PDF/A conformance level of a new PDF document- Returns:
- a new
PdfWriter
- Throws:
DocumentException
- on error
-
getInstance
public static PdfAWriter getInstance(Document document, OutputStream os, DocListener listener, PdfAConformanceLevel conformanceLevel) throws DocumentException Use this method to get an instance of thePdfWriter
.- Parameters:
document
- TheDocument
that has to be writtenos
- TheOutputStream
the writer has to write to.listener
- ADocListener
to pass to the PdfDocument.conformanceLevel
- PDF/A conformance level of a new PDF document- Returns:
- a new
PdfWriter
- Throws:
DocumentException
- on error
-
setPdfVersion
Sets the Confomance level.- Parameters:
writer
-conformanceLevel
-
-
setOutputIntents
public void setOutputIntents(String outputConditionIdentifier, String outputCondition, String registryName, String info, ICC_Profile colorProfile) throws 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:
IOException
- on error- See Also:
-
setOutputIntents
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:
IOException
- on error
-
setPDFXConformance
public void setPDFXConformance(int pdfx) Always throws an exception since PDF/X conformance level cannot be set for PDF/A conformant documents.- Overrides:
setPDFXConformance
in classPdfWriter
- Parameters:
pdfx
-- See Also:
-
getTtfUnicodeWriter
- Overrides:
getTtfUnicodeWriter
in classPdfWriter
- See Also:
-
createXmpWriter
protected XmpWriter createXmpWriter(ByteArrayOutputStream baos, PdfDictionary info) throws IOException - Overrides:
createXmpWriter
in classPdfWriter
- Throws:
IOException
- See Also:
-
createXmpWriter
protected XmpWriter createXmpWriter(ByteArrayOutputStream baos, HashMap<String, String> info) throws IOException- Overrides:
createXmpWriter
in classPdfWriter
- Throws:
IOException
-
initPdfIsoConformance
- Overrides:
initPdfIsoConformance
in classPdfWriter
- See Also:
-
getCounter
- Overrides:
getCounter
in classPdfWriter
-
cacheObject
Description copied from class:PdfWriter
Use this method for caching objects.- Overrides:
cacheObject
in classPdfWriter
- See Also:
-
getPdfAChecker
-
addFileAttachment
public PdfFileSpecification addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay, String mimeType, PdfName afRelationshipValue, PdfDictionary fileParameter) throws IOException Use this method to add a file attachment at the document level.- Parameters:
description
- the file descriptionfileStore
- an array with the file. If it'snull
the file will be read from the diskfile
- the path to the file. It will only be used iffileStore
is notnull
fileDisplay
- the actual file name stored in the pdfmimeType
- mime type of the fileafRelationshipValue
- AFRelationship key value, @see AFRelationshipValue. Ifnull
, @see AFRelationshipValue.Unspecified will be added.fileParameter
- the optional extra file parameters such as the creation or modification date- Returns:
- the file specification
- Throws:
IOException
- on error
-
addFileAttachment
public PdfFileSpecification addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay, String mimeType, PdfName afRelationshipValue) throws IOException Use this method to add a file attachment at the document level.- Parameters:
description
- the file descriptionfileStore
- an array with the file. If it'snull
the file will be read from the diskfile
- the path to the file. It will only be used iffileStore
is notnull
fileDisplay
- the actual file name stored in the pdfmimeType
- mime type of the fileafRelationshipValue
- AFRelationship key value, @see AFRelationshipValue. Ifnull
, @see AFRelationshipValue.Unspecified will be added.- Returns:
- the file specification
- Throws:
IOException
- on error
-
addFileAttachment
public void addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay, PdfName afRelationshipValue) throws IOException Use this method to add a file attachment at the document level. Adds @see MimeTypeOctetStream as mime type.- Parameters:
description
- the file descriptionfileStore
- an array with the file. If it'snull
the file will be read from the diskfile
- the path to the file. It will only be used iffileStore
is notnull
fileDisplay
- the actual file name stored in the pdfafRelationshipValue
- AFRelationship key value, @see AFRelationshipValue. Ifnull
, @see AFRelationshipValue.Unspecified will be added.- Throws:
IOException
- on error
-
addFileAttachment
public void addFileAttachment(String description, byte[] fileStore, String file, String fileDisplay) throws IOException Use this method to add a file attachment at the document level. Adds @see MimeTypeOctetStream as mime type and @see AFRelationshipValue.Unspecified as AFRelationship.- Overrides:
addFileAttachment
in classPdfWriter
- Parameters:
description
- the file descriptionfileStore
- an array with the file. If it'snull
the file will be read from the diskfile
- the path to the file. It will only be used iffileStore
is notnull
fileDisplay
- the actual file name stored in the pdf- Throws:
IOException
- on error
-
addPdfAttachment
public void addPdfAttachment(String description, byte[] fileStore, String file, String fileDisplay) throws IOException Use this method to add a file attachment at the document level. Adds @see MimeTypePdf as mime type and @see AFRelationshipValue.Unspecified as AFRelationship.- Parameters:
description
- the file descriptionfileStore
- an array with the file. If it'snull
the file will be read from the diskfile
- the path to the file. It will only be used iffileStore
is notnull
fileDisplay
- the actual file name stored in the pdf- Throws:
IOException
- on error
-
addPdfAttachment
public void addPdfAttachment(String description, byte[] fileStore, String file, String fileDisplay, PdfName afRelationshipValue) throws IOException Use this method to add a file attachment at the document level. Adds @see MimeTypePdf as mime type.- Parameters:
description
- the file descriptionfileStore
- an array with the file. If it'snull
the file will be read from the diskfile
- the path to the file. It will only be used iffileStore
is notnull
fileDisplay
- the actual file name stored in the pdfafRelationshipValue
- AFRelationship key value,AFRelationshipValue . Ifnull
, @see AFRelationshipValue.Unspecified will be added.- Throws:
IOException
- on error
-
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 interfaceDocListener
- Overrides:
close
in classPdfWriter
- See Also:
-
createAnnotation
Description copied from class:PdfWriter
A wrapper around PdfAnnotation constructor. It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed.- Overrides:
createAnnotation
in classPdfWriter
- Returns:
-
createAnnotation
public PdfAnnotation createAnnotation(float llx, float lly, float urx, float ury, PdfString title, PdfString content, PdfName subtype) Description copied from class:PdfWriter
A wrapper around PdfAnnotation constructor. It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed.- Overrides:
createAnnotation
in classPdfWriter
- Returns:
-
createAnnotation
public PdfAnnotation createAnnotation(float llx, float lly, float urx, float ury, PdfAction action, PdfName subtype) Description copied from class:PdfWriter
A wrapper around PdfAnnotation constructor. It is recommended to use this wrapper instead of direct constructor as this is a convenient way to override PdfAnnotation construction when needed.- Overrides:
createAnnotation
in classPdfWriter
- Returns:
-
useExternalCacheForPdfA
-