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,java.util.EventListener
public class PdfAWriter extends PdfWriter
Extension of PdfWriter that will attempt to create a PDF/A file instead of an ordinary PDF file.- See Also:
PdfWriter
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class com.itextpdf.text.pdf.PdfWriter
PdfWriter.PdfBody, PdfWriter.PdfTrailer
-
-
Field Summary
Fields Modifier and Type Field Description protected CounterCOUNTERstatic java.lang.StringMimeTypeOctetStreamstatic java.lang.StringMimeTypePdf-
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 Modifier Constructor Description protectedPdfAWriter(PdfAConformanceLevel conformanceLevel)protectedPdfAWriter(PdfDocument document, java.io.OutputStream os, PdfAConformanceLevel conformanceLevel)Constructs aPdfAWriter.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay)Use this method to add a file attachment at the document level.voidaddFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay, PdfName afRelationshipValue)Use this method to add a file attachment at the document level.PdfFileSpecificationaddFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay, java.lang.String mimeType, PdfName afRelationshipValue)Use this method to add a file attachment at the document level.PdfFileSpecificationaddFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay, java.lang.String mimeType, PdfName afRelationshipValue, PdfDictionary fileParameter)Use this method to add a file attachment at the document level.voidaddPdfAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay)Use this method to add a file attachment at the document level.voidaddPdfAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.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.PdfAnnotationcreateAnnotation(float llx, float lly, float urx, float ury, PdfAction action, PdfName subtype)A wrapper around PdfAnnotation constructor.PdfAnnotationcreateAnnotation(float llx, float lly, float urx, float ury, PdfString title, PdfString content, PdfName subtype)A wrapper around PdfAnnotation constructor.PdfAnnotationcreateAnnotation(Rectangle rect, PdfName subtype)A wrapper around PdfAnnotation constructor.protected XmpWritercreateXmpWriter(java.io.ByteArrayOutputStream baos, PdfDictionary info)protected XmpWritercreateXmpWriter(java.io.ByteArrayOutputStream baos, java.util.HashMap<java.lang.String,java.lang.String> info)protected CountergetCounter()static PdfAWritergetInstance(Document document, java.io.OutputStream os, DocListener listener, PdfAConformanceLevel conformanceLevel)Use this method to get an instance of thePdfWriter.static PdfAWritergetInstance(Document document, java.io.OutputStream os, PdfAConformanceLevel conformanceLevel)Use this method to get an instance of thePdfWriter.private PdfACheckergetPdfAChecker()protected TtfUnicodeWritergetTtfUnicodeWriter()protected PdfIsoConformanceinitPdfIsoConformance()booleansetOutputIntents(PdfReader reader, boolean checkExistence)Copies the output intent dictionary from other document to this one.voidsetOutputIntents(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.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 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 Detail
-
MimeTypePdf
public static java.lang.String MimeTypePdf
-
MimeTypeOctetStream
public static java.lang.String MimeTypeOctetStream
-
COUNTER
protected Counter COUNTER
-
-
Constructor Detail
-
PdfAWriter
protected PdfAWriter(PdfAConformanceLevel conformanceLevel)
- Parameters:
conformanceLevel- PDF/A conformance level of a new PDF document
-
PdfAWriter
protected PdfAWriter(PdfDocument document, java.io.OutputStream os, PdfAConformanceLevel conformanceLevel)
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 Detail
-
getInstance
public static PdfAWriter getInstance(Document document, java.io.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, java.io.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
public static void setPdfVersion(PdfWriter writer, PdfAConformanceLevel conformanceLevel)
Sets the Confomance level.- Parameters:
writer-conformanceLevel-
-
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.IOExceptionDescription 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:
java.io.IOException- on error- See Also:
PdfWriter.setOutputIntents(String, String, String, String, ICC_Profile)
-
setOutputIntents
public boolean setOutputIntents(PdfReader reader, boolean checkExistence) throws java.io.IOException
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:
java.io.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:
PdfXConformance.setPDFXConformance(int)
-
getTtfUnicodeWriter
protected TtfUnicodeWriter getTtfUnicodeWriter()
- Overrides:
getTtfUnicodeWriterin classPdfWriter- See Also:
PdfWriter.getTtfUnicodeWriter()
-
createXmpWriter
protected XmpWriter createXmpWriter(java.io.ByteArrayOutputStream baos, PdfDictionary info) throws java.io.IOException
- Overrides:
createXmpWriterin classPdfWriter- Throws:
java.io.IOException- See Also:
PdfWriter.createXmpWriter(java.io.ByteArrayOutputStream, com.itextpdf.text.pdf.PdfDictionary)
-
createXmpWriter
protected XmpWriter createXmpWriter(java.io.ByteArrayOutputStream baos, java.util.HashMap<java.lang.String,java.lang.String> info) throws java.io.IOException
- Overrides:
createXmpWriterin classPdfWriter- Throws:
java.io.IOException
-
initPdfIsoConformance
protected PdfIsoConformance initPdfIsoConformance()
- Overrides:
initPdfIsoConformancein classPdfWriter- See Also:
PdfWriter.initPdfIsoConformance()
-
getCounter
protected Counter getCounter()
- Overrides:
getCounterin classPdfWriter
-
cacheObject
protected void cacheObject(PdfIndirectObject iobj)
Description copied from class:PdfWriterUse this method for caching objects.- Overrides:
cacheObjectin classPdfWriter- See Also:
PdfIndirectObject
-
getPdfAChecker
private PdfAChecker getPdfAChecker()
-
addFileAttachment
public PdfFileSpecification addFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay, java.lang.String mimeType, PdfName afRelationshipValue, PdfDictionary fileParameter) throws java.io.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:
java.io.IOException- on error
-
addFileAttachment
public PdfFileSpecification addFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay, java.lang.String mimeType, PdfName afRelationshipValue) throws java.io.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:
java.io.IOException- on error
-
addFileAttachment
public void addFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay, PdfName afRelationshipValue) throws java.io.IOExceptionUse 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:
java.io.IOException- on error
-
addFileAttachment
public void addFileAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay) throws java.io.IOExceptionUse 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:
java.io.IOException- on error
-
addPdfAttachment
public void addPdfAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay) throws java.io.IOExceptionUse 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:
java.io.IOException- on error
-
addPdfAttachment
public void addPdfAttachment(java.lang.String description, byte[] fileStore, java.lang.String file, java.lang.String fileDisplay, PdfName afRelationshipValue) throws java.io.IOExceptionUse 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:
java.io.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:
DocWriter.close()
-
createAnnotation
public PdfAnnotation createAnnotation(Rectangle rect, 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- 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- 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- Returns:
-
useExternalCacheForPdfA
public void useExternalCacheForPdfA(TempFileCache fileCache)
-
-