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 PdfWriter
PdfWriter.PdfBody, PdfWriter.PdfTrailer -
Field Summary
FieldsFields inherited from class 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
ConstructorsModifierConstructorDescriptionprotectedPdfAWriter(PdfAConformanceLevel conformanceLevel) protectedPdfAWriter(PdfDocument document, OutputStream os, PdfAConformanceLevel conformanceLevel) Constructs aPdfAWriter. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFileAttachment(String description, byte[] fileStore, String file, String fileDisplay) Use this method to add a file attachment at the document level.voidaddFileAttachment(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.voidaddPdfAttachment(String description, byte[] fileStore, String file, String fileDisplay) Use this method to add a file attachment at the document level.voidaddPdfAttachment(String description, byte[] fileStore, String file, String fileDisplay, PdfName afRelationshipValue) Use this method to add a file attachment at the document level.protected voidcacheObject(PdfIndirectObject iobj) Use this method for caching objects.voidclose()Signals that theDocumentwas closed and that no otherElementswill 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 XmpWritercreateXmpWriter(ByteArrayOutputStream baos, PdfDictionary info) protected XmpWritercreateXmpWriter(ByteArrayOutputStream baos, HashMap<String, String> info) protected Counterstatic PdfAWritergetInstance(Document document, OutputStream os, DocListener listener, PdfAConformanceLevel conformanceLevel) Use this method to get an instance of thePdfWriter.static PdfAWritergetInstance(Document document, OutputStream os, PdfAConformanceLevel conformanceLevel) Use this method to get an instance of thePdfWriter.private PdfACheckerprotected TtfUnicodeWriterprotected PdfIsoConformancebooleansetOutputIntents(PdfReader reader, boolean checkExistence) Copies the output intent dictionary from other document to this one.voidsetOutputIntents(String outputConditionIdentifier, String outputCondition, String registryName, String info, ICC_Profile colorProfile) Sets the values of the output intent dictionary.static voidsetPdfVersion(PdfWriter writer, PdfAConformanceLevel conformanceLevel) Sets the Confomance level.voidsetPDFXConformance(int pdfx) Always throws an exception since PDF/X conformance level cannot be set for PDF/A conformant documents.voiduseExternalCacheForPdfA(TempFileCache fileCache) Methods inherited from class 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, writeOutlinesMethods inherited from class 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- thePdfDocumentthat has to be writtenos- theOutputStreamthe 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- TheDocumentthat has to be writtenos- TheOutputStreamthe 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- TheDocumentthat has to be writtenos- TheOutputStreamthe writer has to write to.listener- ADocListenerto 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:PdfWriterSets the values of the output intent dictionary. Null values are allowed to suppress any key.- Overrides:
setOutputIntentsin 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:
setOutputIntentsin classPdfWriter- Parameters:
reader- the other documentcheckExistence-trueto just check for the existence of a valid output intent dictionary,falseto insert the dictionary if it exists- Returns:
trueif the output intent dictionary exists,falseotherwise- 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:
setPDFXConformancein classPdfWriter- Parameters:
pdfx-- See Also:
-
getTtfUnicodeWriter
- Overrides:
getTtfUnicodeWriterin classPdfWriter- See Also:
-
createXmpWriter
protected XmpWriter createXmpWriter(ByteArrayOutputStream baos, PdfDictionary info) throws IOException - Overrides:
createXmpWriterin classPdfWriter- Throws:
IOException- See Also:
-
createXmpWriter
protected XmpWriter createXmpWriter(ByteArrayOutputStream baos, HashMap<String, String> info) throws IOException- Overrides:
createXmpWriterin classPdfWriter- Throws:
IOException
-
initPdfIsoConformance
- Overrides:
initPdfIsoConformancein classPdfWriter- See Also:
-
getCounter
- Overrides:
getCounterin classPdfWriter
-
cacheObject
Description copied from class:PdfWriterUse this method for caching objects.- Overrides:
cacheObjectin classPdfWriter- Parameters:
iobj- @see PdfIndirectObject
-
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'snullthe file will be read from the diskfile- the path to the file. It will only be used iffileStoreis notnullfileDisplay- 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'snullthe file will be read from the diskfile- the path to the file. It will only be used iffileStoreis notnullfileDisplay- 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'snullthe file will be read from the diskfile- the path to the file. It will only be used iffileStoreis notnullfileDisplay- 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:
addFileAttachmentin classPdfWriter- Parameters:
description- the file descriptionfileStore- an array with the file. If it'snullthe file will be read from the diskfile- the path to the file. It will only be used iffileStoreis notnullfileDisplay- 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'snullthe file will be read from the diskfile- the path to the file. It will only be used iffileStoreis notnullfileDisplay- 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'snullthe file will be read from the diskfile- the path to the file. It will only be used iffileStoreis notnullfileDisplay- 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:PdfWriterSignals that theDocumentwas closed and that no otherElementswill 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:
closein interfaceDocListener- Overrides:
closein classPdfWriter- See Also:
-
createAnnotation
Description copied from class:PdfWriterA 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:
createAnnotationin classPdfWriter- Parameters:
rect-subtype-- Returns:
-
createAnnotation
public PdfAnnotation createAnnotation(float llx, float lly, float urx, float ury, PdfString title, PdfString content, PdfName subtype) Description copied from class:PdfWriterA 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:
createAnnotationin classPdfWriter- Parameters:
llx-lly-urx-ury-title-content-subtype-- Returns:
-
createAnnotation
public PdfAnnotation createAnnotation(float llx, float lly, float urx, float ury, PdfAction action, PdfName subtype) Description copied from class:PdfWriterA 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:
createAnnotationin classPdfWriter- Parameters:
llx-lly-urx-ury-action-subtype-- Returns:
-
useExternalCacheForPdfA
-