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 Counter
COUNTER
static java.lang.String
MimeTypeOctetStream
static java.lang.String
MimeTypePdf
-
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 protected
PdfAWriter(PdfAConformanceLevel conformanceLevel)
protected
PdfAWriter(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 void
addFileAttachment(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.void
addFileAttachment(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.PdfFileSpecification
addFileAttachment(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.PdfFileSpecification
addFileAttachment(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.void
addPdfAttachment(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.void
addPdfAttachment(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 void
cacheObject(PdfIndirectObject iobj)
Use this method for caching objects.void
close()
Signals that theDocument
was closed and that no otherElements
will be added.PdfAnnotation
createAnnotation(float llx, float lly, float urx, float ury, PdfAction action, PdfName subtype)
A wrapper around PdfAnnotation constructor.PdfAnnotation
createAnnotation(float llx, float lly, float urx, float ury, PdfString title, PdfString content, PdfName subtype)
A wrapper around PdfAnnotation constructor.PdfAnnotation
createAnnotation(Rectangle rect, PdfName subtype)
A wrapper around PdfAnnotation constructor.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()
static PdfAWriter
getInstance(Document document, java.io.OutputStream os, DocListener listener, PdfAConformanceLevel conformanceLevel)
Use this method to get an instance of thePdfWriter
.static PdfAWriter
getInstance(Document document, java.io.OutputStream os, PdfAConformanceLevel conformanceLevel)
Use this method to get an instance of thePdfWriter
.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.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 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
- thePdfDocument
that has to be writtenos
- theOutputStream
the 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
- 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, java.io.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
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.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- 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:
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
-
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:
PdfXConformance.setPDFXConformance(int)
-
getTtfUnicodeWriter
protected TtfUnicodeWriter getTtfUnicodeWriter()
- Overrides:
getTtfUnicodeWriter
in classPdfWriter
- See Also:
PdfWriter.getTtfUnicodeWriter()
-
createXmpWriter
protected XmpWriter createXmpWriter(java.io.ByteArrayOutputStream baos, PdfDictionary info) throws java.io.IOException
- Overrides:
createXmpWriter
in 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:
createXmpWriter
in classPdfWriter
- Throws:
java.io.IOException
-
initPdfIsoConformance
protected PdfIsoConformance initPdfIsoConformance()
- Overrides:
initPdfIsoConformance
in classPdfWriter
- See Also:
PdfWriter.initPdfIsoConformance()
-
getCounter
protected Counter getCounter()
- Overrides:
getCounter
in classPdfWriter
-
cacheObject
protected void cacheObject(PdfIndirectObject iobj)
Description copied from class:PdfWriter
Use this method for caching objects.- Overrides:
cacheObject
in 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'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:
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'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:
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.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:
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.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:
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.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:
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.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:
java.io.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:
DocWriter.close()
-
createAnnotation
public PdfAnnotation createAnnotation(Rectangle rect, 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, 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
public void useExternalCacheForPdfA(TempFileCache fileCache)
-
-