Skip to content

PDF20 Spec 12 Requirements

Marc Jones edited this page Dec 30, 2025 · 1 revision

12.11 Document Requirements

Part of: PDF20-Spec-12-Interactive

Navigation: PDF20-Spec-12-Geospatial | PDF20-Spec-Index | Next →


12.11

Document requirements

12.11.1

General

A PDF processor that supports document requirements shall evaluate them before execution of any ECMAScripts. The Requirements entry in the document catalog (see 7.7.2, "Document catalog dictionary") shall be an array of requirement dictionaries, whose entries are shown in "Table 273 — Entries common to all requirement dictionaries". Table 273 — Entries common to all requirement dictionaries Key

Type

Description

Type

name

(Optional) The type of PDF object that this dictionary describes. If present, shall be Requirement for a requirement dictionary.

S

name

(Required) The type of requirement that this dictionary describes. See "Table 276 — Entries in a requirement handler dictionary" for valid values.

606

© ISO 2020 – All rights reserved

ISO 32000-2:2020(E)

Key

Type

Description

V

name or dictionary

(Optional; PDF 2.0) The minimum version level of support needed to satisfy the requirement. See 12.11.4, "Requirement versions". If this entry is absent, determining if the requirement is satisfied shall be done without regard to version number. Unless otherwise mentioned in the entries in "Table 276 — Entries in a requirement handler dictionary", the value shall represent the PDF version.

RH

dictionary or array

(Optional) An alternative requirement handler dictionary or an array of such dictionaries. Each dictionary identifies a requirement handler that shall be disabled (not invoked) if the interactive PDF processor can check the requirement specified in the S entry (whether or not it can satisfy that requirement). See 12.11.5, "Requirement handlers". Default value: an empty array.

Penalty

integer

(Optional; PDF 2.0) An integer value that shall be between 0 and 100 (inclusive) that represents the penalty value to be applied when this requirement cannot be met by a PDF processor. Default value is 100.

There are two additional keys that may appear in a requirements dictionary that are specific to certain types of requirements (i.e., value of the S key). These are described in "Table 274 — Entries for specific types of requirements". Table 274 — Entries for specific types of requirements Key

Type

Description

Encrypt

dictionary

(Required, if the S key has the value Encryption: PDF 2.0) An encryption dictionary ("Table 20 — Entries common to all encryption dictionaries") that defines all of the relevant aspects of the encryption method needed to process the document.

DigSig

dictionary

(Optional, but only used when the S key has the value of DigSig, DigSigValidation or DigSigMDP; PDF 2.0) A signature dictionary ("Table 255 — Entries in a signature dictionary") that defines all of the relevant aspects that are needed in order to process the digital signature requirements.

12.11.2

Requirement types

The S entry in a requirement dictionary identifies ("Table 273 — Entries common to all requirement dictionaries") a feature of the PDF language or a capability that may be present in a PDF processor. Such entries enable the document to identify feature(s) of PDF beyond those commonly expected, such as 2D graphics rendering, and are required for correct handling in accordance with this document. In addition, although not required for viewing, a document may also use requirement values that stipulate required features of interactive PDF processors such as the ability to interact with or modify the document. "Table 275 — Requirement types" lists requirement types that have been defined through PDF 2.0. © ISO 2020 – All rights reserved

607

ISO 32000-2:2020(E)

Table 275 — Requirement types Type

Description

OCInteract

Requires an interactive PDF processor to be able to display the list of optional content groups (OCGs) in the Order array as described in "Table 99 — Entries in an optional content configuration dictionary". In addition, requires that an interactive PDF processor support the SetOCGState action (see 12.6.4.13, "Set-OCG-state actions"). Additional information about OCGs can be found in 8.11.2, "Optional content groups" and 8.11.4.4, "Usage and usage application dictionaries".

OCAutoStates

Requires an interactive PDF processor to implement the various Usage values that can be present as the value of the AS key in an OCD as described in "Table 99 — Entries in an optional content configuration dictionary" and 8.11.4.4, "Usage and usage application dictionaries".

AcroFormInteract

Requires support for user interaction with forms (see 12.7, "Forms") defined as interactive form dictionaries including updating field appearances when values change. In addition, support for Trigger Actions (12.6.3, "Trigger events") is required. NOTE 1 This requirement does not cover presentation of a form’s static appearance. That presentation uses annotation appearances (12.5.5, "Appearance streams"), which all PDF processors are assumed to support.

Navigation

Requires support for the presentation and handling of basic navigational elements including link annotations (12.5.6.5, "Link annotations") and outlines (12.3.3, "Document outline"). In addition, support shall be provided for GoTo, GoToR and URI actions (12.6.4, "Action types") in any of these elements or as a document, page or annotation trigger events (12.6.3, "Trigger events").

Markup

Requires support for the creation, modification and deletion of markup annotations (12.5.6.2, "Markup annotations") including text annotations. In addition, any time the visual appearance of the annotation changes, the appearance stream shall be updated.

3DMarkup

Requires support for the creation, modification and deletion of text notes and markup annotations on 3D objects (13.6.7.3.6, "3D comment note"). In addition, any time where the visual appearance of the annotation changes, the appearance stream shall be updated.


Navigation: PDF20-Spec-12-Geospatial | PDF20-Spec-Index | Next →

Clone this wiki locally