Package com.itextpdf.pdfa.checker
Class PdfAChecker
java.lang.Object
com.itextpdf.pdfa.checker.PdfAChecker
- All Implemented Interfaces:
-
IValidationChecker
- Direct Known Subclasses:
-
PdfA1Checker
An abstract class that will run through all necessary checks defined in the different PDF/A standards and levels. A number of common checks are executed in this class, while standard-dependent specifications are implemented in the available subclasses. The standard that is followed is the series of ISO 19005 specifications, currently generations 1 through 3. The ZUGFeRD standard is derived from ISO 19005-3. While it is possible to subclass this method and implement its abstract methods in client code, this is not encouraged and will have little effect. It is not possible to plug custom implementations into iText, because iText should always refuse to create non-compliant PDF/A, which would be possible with client code implementations. Any future generations of the PDF/A standard and its derivates will get their own implementation in the iText - pdfa project.
-
Field Summary
FieldsModifier and TypeFieldDescriptionContains some objects that are already checked.protected Map<PdfObject,PdfColorSpace> protected PdfAConformanceprotected intstatic final StringThe Cyan-Magenta-Yellow-Key (black) color profile as defined by the International Color Consortium.static final StringThe Grayscale color profile as defined by the International Color Consortium.static final StringThe Red-Green-Blue color profile as defined by the International Color Consortium.static final StringThe Monitor device classstatic final StringThe Output device classstatic final intThe maximum Graphics State stack depth in PDF/A documents, i.e.protected Stringprotected PdfStream -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedPdfAChecker(PdfAConformance aConformance) Creates a PdfAChecker with the required conformance. -
Method Summary
Modifier and TypeMethodDescriptionprotected abstract voidcheckAction(PdfDictionary action) Checks if the action is allowed.protected abstract voidcheckAnnotation(PdfDictionary annotDic) Verify the conformity of the annotation dictionary.protected voidcheckAppearanceStream(PdfStream appearanceStream) Check single annotation appearance stream.abstract voidcheckCanvasStack(char stackOperation) This method checks compliance with the graphics state architectural limitation, explained bymaxGsStackDepth.protected abstract voidcheckCatalog(PdfCatalog catalog) Verify the conformity of the pdf catalog.protected abstract voidcheckCatalogValidEntries(PdfDictionary catalogDict) Checks if entries in catalog dictionary are valid.abstract voidcheckColor(CanvasGraphicsState gState, Color color, PdfDictionary currentColorSpaces, Boolean fill, PdfStream contentStream) This method checks compliance with the color restrictions imposed by the available color spaces in the document.abstract voidcheckColorSpace(PdfColorSpace colorSpace, PdfObject pdfObject, PdfDictionary currentColorSpaces, boolean checkAlternate, Boolean fill) This method performs a range of checks on the given color space, depending on the type and properties of that color space.protected abstract voidcheckContentStream(PdfStream contentStream) Attest content stream conformance with appropriate specification.protected voidcheckContentStreamObject(PdfObject object) Verify the conformity of the operand of content stream with appropriate specification.abstract voidcheckCrypto(PdfObject crypto) Verify the conformity of encryption usage.voidcheckDocument(PdfCatalog catalog) This method checks a number of document-wide requirements of the PDF/A standard.abstract voidcheckExtGState(CanvasGraphicsState extGState, PdfStream contentStream) Performs a number of checks on the graphics state, among others ISO 19005-1 section 6.2.8 and 6.4 and ISO 19005-2 section 6.2.5 and 6.2.10.protected abstract voidcheckFileSpec(PdfDictionary fileSpec) Verify the conformity of the file specification dictionary.protected static booleancheckFlag(int flags, int flag) Deprecated.abstract voidPerforms a number of checks on the font.abstract voidcheckFontGlyphs(PdfFont font, PdfStream contentStream) Performs a check of the each font glyph as a Form XObject.protected abstract voidcheckForm(PdfDictionary form) Verify the conformity of the form dictionary.protected abstract voidcheckFormXObject(PdfStream form) Verify the conformity of the form XObject dictionary.protected abstract voidcheckImage(PdfStream image, PdfDictionary currentColorSpaces) Verify the conformity of the given image.abstract voidcheckInlineImage(PdfStream inlineImage, PdfDictionary currentColorSpaces) This method checks compliance with the inline image restrictions in the PDF/A specs, specifically filter parameters.protected abstract voidcheckLogicalStructure(PdfDictionary catalog) Performs a number of checks on the logical structure of the document.protected abstract voidcheckMetaData(PdfDictionary catalog) Performs a number of checks on the metadata of the document.protected abstract voidcheckNonSymbolicTrueTypeFont(PdfTrueTypeFont trueTypeFont) Verify the conformity of the non-symbolic TrueType font.protected abstract voidcheckOutputIntents(PdfDictionary catalogOrPageDict) Verify the conformity of the output intents array in the catalog dictionary.protected abstract voidcheckPageColorsUsages(PdfDictionary pageDict, PdfDictionary pageResources) Verify the conformity of used color spaces on the page.protected abstract voidcheckPageObject(PdfDictionary page, PdfDictionary pageResources) Verify the conformity of the page dictionary.protected abstract voidcheckPageSize(PdfDictionary page) Checks the allowable size of the page.protected abstract voidcheckPageTransparency(PdfDictionary pageDict, PdfDictionary pageResources) Verify the conformity of the page transparency.protected abstract voidcheckPdfArray(PdfArray array) Verify the conformity of the PDF array.protected abstract voidcheckPdfDictionary(PdfDictionary dictionary) Verify the conformity of the PDF dictionary.protected abstract voidcheckPdfName(PdfName name) Verify the conformity of the PDF name.protected abstract voidcheckPdfNumber(PdfNumber number) Verify the conformity of the PDF number.voidcheckPdfObject(PdfObject obj) This method checks the requirements that must be fulfilled by a COS object in a PDF/A document.protected abstract voidcheckPdfStream(PdfStream stream) Verify the conformity of the PDF stream.protected abstract voidcheckPdfString(PdfString string) Verify the conformity of the PDF string.abstract voidcheckRenderingIntent(PdfName intent) Checks whether the rendering intent of the document is within the allowed range of intents.protected voidcheckResources(PdfDictionary resources, PdfObject pdfObject) Verify the conformity of the resources dictionary.protected voidcheckResourcesOfAppearanceStreams(PdfDictionary appearanceStreamsDict) Checks resources of the appearance streams.voidcheckSignature(PdfDictionary signatureDict) This method checks compliance of the signature dictionaryabstract voidcheckSignatureType(boolean isCAdES) This method checks compliance of the signature type.voidcheckSinglePage(PdfPage page) This method checks all requirements that must be fulfilled by a page in a PDF/A document.protected static booleancheckStructure(PdfAConformance aConformance) Checks conformance of PDF/A standard.protected abstract voidcheckSymbolicTrueTypeFont(PdfTrueTypeFont trueTypeFont) Verify the conformity of the symbolic TrueType font.voidThis method checks compliance of the tag structure elements, such as struct elements or parent tree entries.abstract voidVerify the conformity of the text written by the specified font.protected abstract voidcheckTrailer(PdfDictionary trailer) Verify the conformity of the trailer dictionary.abstract voidcheckXrefTable(PdfXrefTable xrefTable) Verify the conformity of the cross-reference table.Gets thePdfAConformancefor this file.Retrieve allowed actions in conforming document.Retrieve forbidden actions in conforming document.protected abstract longRetrieve maximum allowed number of indirect objects in conforming document.protected booleanisAlreadyChecked(PdfDictionary dictionary) Checks whether the specified dictionary was already checked.protected static booleanisContainsTransparencyGroup(PdfDictionary dictionary) Checks whether the specified dictionary has a transparency group.booleanIn full check mode all objects will be tested for ISO conformance.booleanisPdfObjectReadyToFlush(PdfObject object) IsPdfObjectready to flush.voidsetFullCheckMode(boolean fullCheckMode) In full check mode all objects will be tested for ISO conformance.voidSet Pdf A output intent color space.voidvalidate(IValidationContext context) Validate the providedIValidationContext.
-
Field Details
-
ICC_COLOR_SPACE_RGB
The Red-Green-Blue color profile as defined by the International Color Consortium.- See Also:
-
ICC_COLOR_SPACE_CMYK
The Cyan-Magenta-Yellow-Key (black) color profile as defined by the International Color Consortium.- See Also:
-
ICC_COLOR_SPACE_GRAY
The Grayscale color profile as defined by the International Color Consortium.- See Also:
-
ICC_DEVICE_CLASS_OUTPUT_PROFILE
The Output device class- See Also:
-
ICC_DEVICE_CLASS_MONITOR_PROFILE
The Monitor device class- See Also:
-
maxGsStackDepth
public static final int maxGsStackDepthThe maximum Graphics State stack depth in PDF/A documents, i.e. the maximum number of graphics state operators with codeqthat may be opened (i.e. not yet closed by a correspondingQ) at any point in a content stream sequence. Defined as 28 by PDF/A-1 section 6.1.12, by referring to the PDF spec Appendix C table 1 "architectural limits".- See Also:
-
conformance
-
pdfAOutputIntentDestProfile
-
pdfAOutputIntentColorSpace
-
gsStackDepth
protected int gsStackDepth -
rgbUsedObjects
-
cmykUsedObjects
-
grayUsedObjects
-
checkedObjects
Contains some objects that are already checked. NOTE: Not all objects that were checked are stored in that set. This set is used for avoiding double checks for actions, signatures, xObjects and page objects; and for letting those objects to be manually flushed. Use this mechanism carefully: objects that are able to be changed (or at least if object's properties that shall be checked are able to be changed) shouldn't be marked as checked if they are not to be flushed immediately. -
checkedObjectsColorspace
-
-
Constructor Details
-
PdfAChecker
Creates a PdfAChecker with the required conformance.- Parameters:
-
aConformance- the required conformance
-
-
Method Details
-
checkDocument
This method checks a number of document-wide requirements of the PDF/A standard. The algorithms of some of these checks vary with the PDF/A level and thus are implemented in subclasses; others are implemented as private methods in this class.- Parameters:
-
catalog- The catalog being checked
-
validate
Validate the providedIValidationContext..- Specified by:
-
validatein interfaceIValidationChecker - Parameters:
-
context- theIValidationContextto validate
-
isPdfObjectReadyToFlush
IsPdfObjectready to flush..- Specified by:
-
isPdfObjectReadyToFlushin interfaceIValidationChecker - Parameters:
-
object- the pdf object to check - Returns:
-
trueif the object is ready to flush,falseotherwise
-
checkSinglePage
This method checks all requirements that must be fulfilled by a page in a PDF/A document.- Parameters:
-
page- the page that must be checked
-
checkPdfObject
This method checks the requirements that must be fulfilled by a COS object in a PDF/A document.- Parameters:
-
obj- the COS object that must be checked
-
getAConformance
Gets thePdfAConformancefor this file.- Returns:
- the defined conformance for this document.
-
isFullCheckMode
public boolean isFullCheckMode()In full check mode all objects will be tested for ISO conformance. If full check mode is switched off objects which were not modified might be skipped to speed up the validation of the document- Returns:
- true if full check mode is switched on
- See Also:
-
setFullCheckMode
public void setFullCheckMode(boolean fullCheckMode) In full check mode all objects will be tested for ISO conformance. If full check mode is switched off objects which were not modified might be skipped to speed up the validation of the document- Parameters:
-
fullCheckMode- is a new value for full check mode switcher - See Also:
-
checkTagStructureElement
This method checks compliance of the tag structure elements, such as struct elements or parent tree entries.- Parameters:
-
obj- an object that represents tag structure element.
-
checkSignature
This method checks compliance of the signature dictionary- Parameters:
-
signatureDict- aPdfDictionarycontaining the signature.
-
checkSignatureType
public abstract void checkSignatureType(boolean isCAdES) This method checks compliance of the signature type.- Parameters:
-
isCAdES-trueif CAdES signature type is used,falseotherwise
-
checkCanvasStack
public abstract void checkCanvasStack(char stackOperation) This method checks compliance with the graphics state architectural limitation, explained bymaxGsStackDepth.- Parameters:
-
stackOperation- the operation to check the graphics state counter for
-
checkInlineImage
This method checks compliance with the inline image restrictions in the PDF/A specs, specifically filter parameters.- Parameters:
-
inlineImage- aPdfStreamcontaining the inline image -
currentColorSpaces- aPdfDictionarycontaining the color spaces used in the document
-
checkColor
public abstract void checkColor(CanvasGraphicsState gState, Color color, PdfDictionary currentColorSpaces, Boolean fill, PdfStream contentStream) This method checks compliance with the color restrictions imposed by the available color spaces in the document.- Parameters:
-
gState- canvas graphics state -
color- the color to check -
currentColorSpaces- aPdfDictionarycontaining the color spaces used in the document -
fill- whether the color is used for fill or stroke operations -
contentStream- current content stream
-
checkColorSpace
public abstract void checkColorSpace(PdfColorSpace colorSpace, PdfObject pdfObject, PdfDictionary currentColorSpaces, boolean checkAlternate, Boolean fill) This method performs a range of checks on the given color space, depending on the type and properties of that color space.- Parameters:
-
colorSpace- the color space to check -
pdfObject- the pdf object to check color space in -
currentColorSpaces- aPdfDictionarycontaining the color spaces used in the document -
checkAlternate- whether or not to also check the parent color space -
fill- whether the color space is used for fill or stroke operations
-
setPdfAOutputIntentColorSpace
Set Pdf A output intent color space.- Parameters:
-
catalog- Catalog dictionary to retrieve the color space from.
-
checkRenderingIntent
Checks whether the rendering intent of the document is within the allowed range of intents. This is defined in ISO 19005-1 section 6.2.9, and unchanged in newer generations of the PDF/A specification.- Parameters:
-
intent- the intent to be analyzed
-
checkFontGlyphs
Performs a check of the each font glyph as a Form XObject. See ISO 19005-2 Annex A.5. This only applies to type 3 fonts. This method will be abstract in update 7.2- Parameters:
-
font-PdfFontto be checked -
contentStream- stream containing checked font
-
checkExtGState
Performs a number of checks on the graphics state, among others ISO 19005-1 section 6.2.8 and 6.4 and ISO 19005-2 section 6.2.5 and 6.2.10. This method will be abstract in the update 7.2- Parameters:
-
extGState- the graphics state to be checked -
contentStream- current content stream
-
checkFont
Performs a number of checks on the font. See ISO 19005-1 section 6.3, ISO 19005-2 and ISO 19005-3 section 6.2.11. Be aware that not all constraints defined in the ISO are checked in this method, for most of them we consider that iText always creates valid fonts.- Parameters:
-
pdfFont- font to be checked
-
checkXrefTable
Verify the conformity of the cross-reference table.- Parameters:
-
xrefTable- is the Xref table
-
checkCrypto
Verify the conformity of encryption usage.- Parameters:
-
crypto- encryption object to verify
-
checkText
Verify the conformity of the text written by the specified font.- Parameters:
-
text- text to verify -
font- font to verify the text against
-
checkContentStream
Attest content stream conformance with appropriate specification. Throws PdfAConformanceException if any discrepancy was found- Parameters:
-
contentStream- is a content stream to validate
-
checkContentStreamObject
Verify the conformity of the operand of content stream with appropriate specification. Throws PdfAConformanceException if any discrepancy was found- Parameters:
-
object- is an operand of content stream to validate
-
getMaxNumberOfIndirectObjects
protected abstract long getMaxNumberOfIndirectObjects()Retrieve maximum allowed number of indirect objects in conforming document.- Returns:
- maximum allowed number of indirect objects
-
getForbiddenActions
Retrieve forbidden actions in conforming document.- Returns:
-
set of
PdfNamewith forbidden actions
-
getAllowedNamedActions
Retrieve allowed actions in conforming document.- Returns:
-
set of
PdfNamewith allowed named actions
-
checkAction
Checks if the action is allowed.- Parameters:
-
action- to be checked
-
checkAnnotation
Verify the conformity of the annotation dictionary.- Parameters:
-
annotDic- the annotationPdfDictionaryto be checked
-
checkCatalogValidEntries
Checks if entries in catalog dictionary are valid.- Parameters:
-
catalogDict- the catalogPdfDictionaryto be checked
-
checkPageColorsUsages
Verify the conformity of used color spaces on the page.- Parameters:
-
pageDict- thePdfDictionarycontains contents for colors to be checked -
pageResources- thePdfDictionarycontains resources for colors to be checked
-
checkImage
Verify the conformity of the given image.- Parameters:
-
image- the image to check -
currentColorSpaces- thePdfDictionarycontaining the color spaces used in the document
-
checkFileSpec
Verify the conformity of the file specification dictionary.- Parameters:
-
fileSpec- thePdfDictionarycontaining file specification to be checked
-
checkForm
Verify the conformity of the form dictionary.- Parameters:
-
form- the formPdfDictionaryto be checked
-
checkFormXObject
Verify the conformity of the form XObject dictionary.- Parameters:
-
form- thePdfStreamto check
-
checkLogicalStructure
Performs a number of checks on the logical structure of the document.- Parameters:
-
catalog- the catalogPdfDictionaryto check
-
checkMetaData
Performs a number of checks on the metadata of the document.- Parameters:
-
catalog- the catalogPdfDictionaryto check
-
checkNonSymbolicTrueTypeFont
Verify the conformity of the non-symbolic TrueType font.- Parameters:
-
trueTypeFont- thePdfTrueTypeFontto check
-
checkOutputIntents
Verify the conformity of the output intents array in the catalog dictionary.- Parameters:
-
catalogOrPageDict- thePdfDictionaryof a catalog or page to check
-
checkPageObject
Verify the conformity of the page dictionary.- Parameters:
-
page- thePdfDictionaryto check -
pageResources- the page's resources dictionary
-
checkPageSize
Checks the allowable size of the page.- Parameters:
-
page- thePdfDictionaryof page which size being checked
-
checkPdfArray
Verify the conformity of the PDF array.- Parameters:
-
array- thePdfArrayto check
-
checkPdfDictionary
Verify the conformity of the PDF dictionary.- Parameters:
-
dictionary- thePdfDictionaryto check
-
checkPdfName
Verify the conformity of the PDF name.- Parameters:
-
name- thePdfNameto check
-
checkPdfNumber
Verify the conformity of the PDF number.- Parameters:
-
number- thePdfNumberto check
-
checkPdfStream
Verify the conformity of the PDF stream.- Parameters:
-
stream- thePdfStreamto check
-
checkPdfString
Verify the conformity of the PDF string.- Parameters:
-
string- thePdfStringto check
-
checkSymbolicTrueTypeFont
Verify the conformity of the symbolic TrueType font.- Parameters:
-
trueTypeFont- thePdfTrueTypeFontto check
-
checkTrailer
Verify the conformity of the trailer dictionary.- Parameters:
-
trailer- thePdfDictionaryof trailer to check
-
checkCatalog
Verify the conformity of the pdf catalog.- Parameters:
-
catalog- thePdfCatalogof trailer to check
-
checkPageTransparency
Verify the conformity of the page transparency.- Parameters:
-
pageDict- thePdfDictionarycontains contents for transparency to be checked -
pageResources- thePdfDictionarycontains resources for transparency to be checked
-
checkResources
Verify the conformity of the resources dictionary.- Parameters:
-
resources- thePdfDictionaryto be checked -
pdfObject- the pdf object to check resources for
-
checkFlag
Deprecated.in favour ofPdfCheckersUtil.checkFlag(int, int)Checks if the specified flag is set.- Parameters:
-
flags- a set of flags specifying various characteristics of the PDF object -
flag- to be checked - Returns:
- true if the specified flag is set
-
checkStructure
Checks conformance of PDF/A standard.- Parameters:
-
aConformance- thePdfAConformanceto be checked - Returns:
-
true if the specified aConformance is
afor PDF/A-1, PDF/A-2 or PDF/A-3
-
isContainsTransparencyGroup
Checks whether the specified dictionary has a transparency group.- Parameters:
-
dictionary- thePdfDictionaryto check - Returns:
-
true if and only if the specified dictionary has a
PdfName.Groupkey and its value is a dictionary withPdfName.Transparencysubtype
-
isAlreadyChecked
Checks whether the specified dictionary was already checked.- Parameters:
-
dictionary- thePdfDictionaryto check - Returns:
- true if the specified dictionary was checked
-
checkResourcesOfAppearanceStreams
Checks resources of the appearance streams.- Parameters:
-
appearanceStreamsDict- the dictionary with appearance streams to check.
-
checkAppearanceStream
Check single annotation appearance stream.- Parameters:
-
appearanceStream- thePdfStreamto check
-
PdfCheckersUtil.checkFlag(int, int)