Skip to content

Version Coverage

Tracks which PDF features require which specification versions. The library uses #[RequiresPdfVersion] attributes on classes and properties to enforce version requirements at write time.

Mechanism: When a feature is registered with PdfFileWriter, the document version auto-bumps to the minimum required. In strict mode (setStrictVersionMode(true)), a VersionRequirementException is thrown instead.

Key files:


All features not explicitly annotated default to PDF 1.0. This includes:


Class / PropertySourceDescription
CalGrayColorSpace/CalGray.phpCIE-based gray color space
CalRGBColorSpace/CalRGB.phpCIE-based RGB color space
LabColorSpace/Lab.phpCIE-based Lab* color space
LaunchActionAction/LaunchAction.phpLaunch an application
OutlineDocument/Outline.phpBookmark root
OutlineItemDocument/OutlineItem.phpBookmark entry
TransitionDictDocument/TransitionDict.phpPage transitions
MMType1FontFont/MMType1Font.phpMultiple Master fonts
ThreadActionAction/ThreadAction.phpNavigate article thread

Class / PropertySourceDescription
PatternColorSpace/Pattern.phpPattern color space
TilingPatternPattern/TilingPattern.phpTiling patterns
WidgetAnnotationAnnotation/WidgetAnnotation.phpForm field widgets
Type0FontFont/Type0Font.phpComposite fonts
CIDFontFont/CIDFont.phpCID-keyed fonts (abstract)
AcroFormInteractive/Form/AcroForm.phpInteractive forms
HideActionAction/HideAction.phpShow/hide annotations
SubmitFormActionAction/SubmitFormAction.phpForm submission
ResetFormActionAction/ResetFormAction.phpForm reset
ImportDataActionAction/ImportDataAction.phpFDF data import
AppearanceDictAnnotation/AppearanceDict.phpAnnotation appearances
AppearanceCharacteristicsAnnotation/AppearanceCharacteristics.phpWidget appearance config
AdditionalActionsAction/AdditionalActions.phpTrigger events

Class / PropertySourceDescription
ICCBasedColorSpace/ICCBased.phpICC profile color space
SeparationColorSpace/Separation.phpSpot color
ShadingPatternPattern/ShadingPattern.phpShading patterns
Shading (all subtypes)Shading/Types 1–7 via inheritance
Func (all subtypes)Function/Types 0–4 via inheritance
StructTreeRootDocument/StructTreeRoot.phpTagged PDF structure
StructElemDocument/StructElem.phpStructure element
JavaScriptActionAction/JavaScriptAction.phpExecute JavaScript
PageLabelDocument/PageLabel.phpPage numbering
SignatureFieldInteractive/Form/SignatureField.phpDigital signature field
SignatureValueInteractive/Signature/SignatureValue.phpSignature dictionary
SignatureReferenceInteractive/Signature/SignatureReference.phpSignature reference
FreeTextAnnotationAnnotation/FreeTextAnnotation.phpFree text
LineAnnotationAnnotation/LineAnnotation.phpLine
SquareAnnotationAnnotation/SquareAnnotation.phpSquare
CircleAnnotationAnnotation/CircleAnnotation.phpCircle
HighlightAnnotationAnnotation/HighlightAnnotation.phpHighlight
UnderlineAnnotationAnnotation/UnderlineAnnotation.phpUnderline
SquigglyAnnotationAnnotation/SquigglyAnnotation.phpSquiggly
StrikeOutAnnotationAnnotation/StrikeOutAnnotation.phpStrike-out
StampAnnotationAnnotation/StampAnnotation.phpRubber stamp
InkAnnotationAnnotation/InkAnnotation.phpInk strokes
PopupAnnotationAnnotation/PopupAnnotation.phpPopup
FileAttachmentAnnotationAnnotation/FileAttachmentAnnotation.phpFile attachment
HalftoneType1/5/6/10Graphics/Halftone dictionaries

Class / PropertySourceDescription
SoftMaskGraphics/SoftMask.phpSoft mask dictionary
GroupAttributesDocument/GroupAttributes.phpTransparency group
MetadataStreamDocument/MetadataStream.phpXMP metadata stream
MarkupAnnotation (all subtypes)Annotation/MarkupAnnotation.phpMarkup annotation base
OutputIntentDocument/OutputIntent.phpColor management intent
MovieAnnotationAnnotation/MovieAnnotation.phpMovie (deprecated 2.0)
ExtGState::$bmGraphics/ExtGState.phpBlend mode property
ExtGState::$sMaskGraphics/ExtGState.phpSoft mask property
ExtGState::$caGraphics/ExtGState.phpFill alpha property
ExtGState::$caLowerGraphics/ExtGState.phpStroke alpha property
ExtGState::$aisGraphics/ExtGState.phpAlpha is shape
ExtGState::$tkGraphics/ExtGState.phpText knockout
Page::$outputIntentsDocument/Page.phpPage-level output intents

Class / PropertySourceDescription
OCGDocument/OCG.phpOptional content group
OCMDDocument/OCMD.phpOptional content membership
OCPropertiesDictDocument/OCPropertiesDict.phpOC properties
CrossReferenceStreamDocument/CrossReferenceStream.phpXref streams
ObjectStreamDocument/ObjectStream.phpCompressed objects
CryptFilterSecurity/CryptFilter.phpEncryption filters
MediaRenditionMultimedia/MediaRendition.phpMedia rendition
SelectorRenditionMultimedia/SelectorRendition.phpSelector rendition
MediaClipDataMultimedia/MediaClipData.phpMedia clip data
MediaClipSectionMultimedia/MediaClipSection.phpMedia clip section
MediaCriteriaMultimedia/MediaCriteria.phpMedia selection criteria
MediaPlayParamsMultimedia/MediaPlayParams.phpPlayback parameters
MediaScreenParamsMultimedia/MediaScreenParams.phpScreen parameters
NavigatorMultimedia/Navigator.phpNavigator dictionary
ScreenAnnotationAnnotation/ScreenAnnotation.phpScreen annotation
CaretAnnotationAnnotation/CaretAnnotation.phpCaret annotation
PolygonAnnotationAnnotation/PolygonAnnotation.phpPolygon
PolyLineAnnotationAnnotation/PolyLineAnnotation.phpPolyline
RedactAnnotationAnnotation/RedactAnnotation.phpRedaction
SoundAnnotationAnnotation/SoundAnnotation.phpSound (deprecated 2.0)
BorderEffectAnnotation/BorderEffect.phpBorder effect
RenditionActionAction/RenditionAction.phpRendition action
SetOCGStateActionAction/SetOCGStateAction.phpSet OCG state
TransActionAction/TransAction.phpTransition action
SigFieldLockInteractive/Form/SigFieldLock.phpSignature field lock
RenditionMultimedia/Rendition.phpRendition (abstract)
OCUsageDocument/OCUsage.phpOC usage application
OCConfigDocument/OCConfig.phpOC configuration
NamesDictionaryDocument/NamesDictionary.phpNames dictionary
DestinationDocument/Destination.phpExplicit destinations

Class / PropertySourceDescription
DeviceNColorSpace/DeviceN.phpMulti-component color space
ThreeDStreamThreeD/ThreeDStream.php3D stream (U3D/PRC)
ThreeDViewThreeD/ThreeDView.php3D view
ThreeDBackgroundThreeD/ThreeDBackground.php3D background
ThreeDRenderModeThreeD/ThreeDRenderMode.php3D render mode
ThreeDLightingSchemeThreeD/ThreeDLightingScheme.php3D lighting
ThreeDCrossSectionThreeD/ThreeDCrossSection.php3D cross-section
ThreeDAnnotationAnnotation/ThreeDAnnotation.php3D annotation
DocTimeStampInteractive/Signature/DocTimeStamp.phpDocument timestamp
WatermarkAnnotationAnnotation/WatermarkAnnotation.phpWatermark
CFFFontFileFont/FontFile/CFFFontFile.phpCFF font embedding
GoToEActionAction/GoToEAction.phpGo to embedded
GoTo3DViewActionAction/GoTo3DViewAction.phpNavigate 3D view
HalftoneType16Graphics/ExtGState.php16-bit halftone
MarkInfo::$userPropertiesDocument/MarkInfo.phpUser properties flag
MarkInfo::$suspectsDocument/MarkInfo.phpSuspects flag
CIDFontType0FontFont/CIDFontType0Font.phpCID Type 0 (CFF)

Class / PropertySourceDescription
CollectionDocument/Collection.phpPortable collection
CollectionSchemaDocument/CollectionSchema.phpCollection field defs
CollectionItemDocument/CollectionItem.phpCollection entry
RequirementDocument/Requirement.phpDocument requirements
RequirementHandlerDocument/RequirementHandler.phpRequirement handler
Catalog::$extensionsDocument/Catalog.phpDeveloper extensions

Class / PropertySourceDescription
DPartRootDocument/DPartRoot.phpDocument part root
DPartDocument/DPart.phpDocument part
GoToDPActionAction/GoToDPAction.phpNavigate document part
RichMediaExecuteActionAction/RichMediaExecuteAction.phpRich media execute
DSSDocument/DSS.phpDocument Security Store
ProjectionAnnotationAnnotation/ProjectionAnnotation.phpProjection annotation
RichMediaAnnotationAnnotation/RichMediaAnnotation.phpRich media
Catalog::$dssDocument/Catalog.phpDSS reference
Catalog::$afDocument/Catalog.phpAssociated files
Catalog::$dPartRootDocument/Catalog.phpDocument part root ref
Page::$afDocument/Page.phpPage associated files
Page::$dPartDocument/Page.phpPage document part
FormXObject::$afGraphics/XObject/FormXObject.phpForm XObject AF
ViewerPreferences::$enforceDocument/ViewerPreferences.phpEnforced preferences
FileSpec::$afRelationshipFileSpec/FileSpec.phpAF relationship
SeedValueDictionary::$lockDocumentInteractive/Form/SeedValueDictionary.phpLock document flag
SeedValueDictionary::$appearanceFilterInteractive/Form/SeedValueDictionary.phpAppearance filter

7 features are marked with #[DeprecatedPdfFeature]. When removedIn is set and strict deprecation is enabled, using the feature at or above that version throws DeprecatedFeatureException.

ClassSourceDeprecated SinceRemoved InReplacement
MovieMultimedia/Movie.php2.02.0RichMediaAnnotation
MovieActionAction/MovieAction.php2.02.0RichMediaExecuteAction
MovieAnnotationAnnotation/MovieAnnotation.php2.02.0ScreenAnnotation
SoundMultimedia/Sound.php2.02.0MediaRendition
SoundActionAction/SoundAction.php2.02.0RenditionAction
SoundAnnotationAnnotation/SoundAnnotation.php2.02.0RichMediaAnnotation
PostScriptXObjectGraphics/XObject/PostScriptXObject.php1.7.1

Some objects determine their version requirement at runtime rather than via static attributes:

  • StructElem implements PdfVersionAware — checks StandardStructureType for PDF 2.0 types (DocumentFragment, Aside, Title, THead, TBody, TFoot, FENote, Artifact)
  • PdfEncryptor::getMinimumPdfVersion() — RC4 → 1.4, AES-128 → 1.6, AES-256 → 2.0
  • PdfFileWriter::generate() — auto-bumps for xref streams (→ 1.5) and syncs Catalog::$version for versions > 1.4