ISO 32000-1 Document management — Portable document format — Part 1: PDF 1.7 - page 13

 

  Главная      Manuals     ISO 32000-1 Document management — Portable document format — Part 1: PDF 1.7

 

Search            copyright infringement  

 

 

 

 

 

 

 

 

 

 

 

Content      ..     11      12      13      14     ..

 

 

 

ISO 32000-1 Document management — Portable document format — Part 1: PDF 1.7 - page 13

 

 

Table 255 - Entries in the UR transform parameters dictionary (continued)
Key
Type
Value
Form
array
(Optional) An array of names specifying additional form-field-related usage
rights for the document. Valid names (PDF 1.5) are:
Add
Permits the user to add form fields to the document.
Delete
Permits the user to delete form fields to the document.
FillIn
Permits the user to save a document on which form fill-in
has been done.
Import
Permits the user to import form data files in FDF, XFDF and
text (CSV/TSV) formats.
Export
Permits the user to export form data files as FDF or XFDF.
SubmitStandalone Permits the user to submit form data when the document is
not open in a Web browser.
SpawnTemplate Permits new pages to be instantiated from named page
templates.
The following names (PDF 1.6) shall be permitted only when the signature
dictionary is referenced from the UR3 entry of the permissions dictionary; see
Table 258:
BarcodePlaintext Permits (PDF 1.6) text form field data to be encoded as a
plaintext two-dimensional barcode.
Online
Permits
(PDF
1.6) the use of forms-specific online
mechanisms such as SOAP or Active Data Object.
Signature
array
(Optional) An array of names specifying additional signature-related usage
rights for the document. The only defined value shall be Modify, which permits
a user to apply a digital signature to an existing signature form field or clear a
signed signature form field.
EF
array
(Optional; PDF 1.6) An array of names specifying additional usage rights for
named embedded files in the document. Valid names shall be Create, Delete,
Modify, and Import, which shall permit the user to perform the named operation
on named embedded files.
P
boolean
(Optional; PDF 1.6) If true, permissions for the document shall be restricted in
all consumer applications to those permissions granted by a conforming
reader, while allowing permissions for rights enabled by other entries in this
dictionary. Default value: false.
12.8.2.4
FieldMDP
The FieldMDP transform method shall be used to detect changes to the values of a list of form fields. The
entries in its transform parameters dictionary are listed in Table 256.
Table 256 - Entries in the FieldMDP transform parameters dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be TransformParams for a transform parameters dictionary.
Action
name
(Required) A name that, along with the Fields array, describes which form
fields do not permit changes after the signature is applied.
Valid values shall be:
All
All form fields.
Include
Only those form fields that specified in Fields.
Exclude
Only those form fields not specified in Fields.
Fields
array
(Required if Action is Include or Exclude) An array of text strings containing
field names.
473
Table 256 - Entries in the FieldMDP transform parameters dictionary (continued)
Key
Type
Value
V
name
(Optional: PDF 1.5 required) The transform parameters dictionary version. The
value for PDF 1.5 and later shall be 1.2.
NOTE
This value is a name object, not a number.
Default value: 1.2.
On behalf of a document author creating a document containing both form fields and signatures the following
shall be supported by conforming writers:
The author specifies that form fields shall be filled in without invalidating the approval or certification
signature. The P entry of the DocMDP transform parameters dictionary shall be set to either 2 or 3 (see
Table 254).
The author can also specify that after a specific recipient has signed the document, any modifications to
specific form fields shall invalidate that recipient’s signature. There shall be a separate signature field for
each designated recipient, each having an associated signature field lock dictionary (see Table 233)
specifying the form fields that shall be locked for that user.
When the recipient signs the field, the signature, signature reference, and transform parameters
dictionaries shall be created. The Action and Fields entries in the transform parameters dictionary shall
be copied from the corresponding fields in the signature field lock dictionary.
NOTE
This copying is done because all objects in a signature dictionary must be direct objects if the dictionary
contains a byte range signature. Therefore, the transform parameters dictionary cannot reference the
signature field lock dictionary indirectly.
FieldMDP signatures shall be validated in a similar manner to DocMDP signatures. See Validating Signatures
That Use the DocMDP Transform Method in 12.8.2.2, “DocMDP” for details.
12.8.3
Signature Interoperability
12.8.3.1
General
It is intended that conforming readers allow interoperability between signature handlers; that is, a PDF file
signed with a handler from one vendor shall be able to be validated with a handler from a different vendor.
If present, the SubFilter entry in the signature dictionary shall specify the encoding of the signature value and
key information, while the Filter entry shall specify the preferred handler that should be used to validate the
signature. When handlers are being registered according to Annex E they shall specify the SubFilter encodings
they support enabling handlers other than the preferred handler to validate the signatures that the preferred
handler creates.
There are several defined values for the SubFilter entry, all based on public-key cryptographic standards
published by RSA Security and also as part of the standards issued by the Internet Engineering Task Force
(IETF) Public Key Infrastructure (PKIX) working group; see the Bibliography for references.
12.8.3.2
PKCS#1 Signatures
The PKCS#1 standard supports several public-key cryptographic algorithms and digest methods, including
RSA encryption, DSA signatures, and SHA-1 and MD5 digests (see the Bibliography for references). For
signing PDF files using PKCS#1, the only value of SubFilter that should be used is adbe.x509.rsa_sha1, which
uses the RSA encryption algorithm and SHA-1 digest method. The certificate chain of the signer shall be stored
in the Cert entry.
474
12.8.3.3
PKCS#7 Signatures as used in ISO 32000
12.8.3.3.1
General
When PKCS#7 signatures are used, the value of Contents shall be a DER-encoded PKCS#7 binary data
object containing the signature. The PKCS#7 object shall conform to RFC3852 Cryptographic Message
Syntax. Different subfilters may be used and shall be registered in accordance with Annex E. SubFilter shall
take one of the following values:
adbe.pkcs7.detached: The original signed message digest over the document’s byte range shall be
incorporated as the normal PKCS#7 SignedData field. No data shall be encapsulated in the PKCS#7
SignedData field.
adbe.pkcs7.sha1: The SHA1 digest of the document’s byte range shall be encapsulated in the PKCS#7
SignedData field with ContentInfo of type Data. The digest of that SignedData shall be incorporated as the
normal PKCS#7 digest.
The PKCS#7 object shall conform to the PKCS#7 specification in Internet RFC 2315, PKCS #7: Cryptographic
Message Syntax, Version 1.5 (see the Bibliography). At minimum, it shall include the signer’s X.509 signing
certificate. This certificate shall be used to verify the signature value in Contents.
The PKCS#7 object should contain the following:
Time stamp information as an unsigned attribute (PDF 1.6): The timestamp token shall conform to RFC
3161 and shall be computed and embedded into the PKCS#7 object as described in Appendix A of RFC
3161. The specific treatment of timestamps and their processing is left to the particular signature handlers
to define.
Revocation information as an signed attribute (PDF 1.6): This attribute may include all the revocation
information that is necessary to carry out revocation checks for the signer's certificate and its issuer
certificates. Since revocation information is a signed attribute, it must be obtained before the computation
of the digital signature. This means that the software used by the signer must be able to construct the
certification path and the associated revocation information. If one of the elements cannot be obtained
(e.g. no connection is possible), a signature with this attribute will not be possible.
(PDF 1.6). This differs from the treatment when using adbe.x509.rsa_sha1 when the certificates shall be
placed in the Cert key of the signature dictionary as defined in Table 252.
One or more RFC 3281 attribute certificates associated with the signer certificate (PDF 1.7). The specific
treatment of attribute certificates and their processing is left to the particular signature handlers to define.
NOTE
For maximum compatibility with earlier versions, conforming writers should follow this practice.
The policy of how to establish trusted identity lists to validate embedded certificates is up to the validation
signature handler.
12.8.3.3.2
Revocation Information
The adbe Revocation Information attribute:
adbe-revocationInfoArchival OBJECT IDENTIFIER ::=
{ adbe(1.2.840.113583) acrobat(1) security(1) 8 }
The value of the revocation information attribute can include any of the following data types:
Certificate Revocation Lists (CRLs), described in RFC 3280 (see the Bibliography): CRLs are generally
large and therefore should not be embedded in the PKCS#7 object.
475
Online Certificate Status Protocol (OCSP) Responses, described in RFC 2560, X.509 Internet Public Key
Infrastructure Online Certificate Status Protocol—OCSP (see the Bibliography): These are generally small
and constant in size and should be the data type included in the PKCS#7 object.
Custom revocation information: The format is not prescribed by this specification, other than that it be
encoded as an OCTET STRING. The application should be able to determine the type of data contained
within the OCTET STRING by looking at the associated OBJECT IDENTIFIER.
adbe's Revocation Information attribute value has ASN.1 type RevocationInfoArchival:
RevocationInfoArchival ::= SEQUENCE {
crl
[0] EXPLICIT SEQUENCE of CRLs, OPTIONAL
ocsp
[1] EXPLICIT SEQUENCE of OCSP Responses, OPTIONAL
otherRevInfo [2] EXPLICIT SEQUENCE of OtherRevInfo, OPTIONAL
}
OtherRevInfo ::= SEQUENCE {
Type OBJECT IDENTIFIER
Value OCTET STRING
}
For byte range signatures, Contents shall be a hexadecimal string with “<” and “>” delimiters. It shall fit
precisely in the space between the ranges specified by ByteRange. Since the length of PKCS#7 objects is not
entirely predictable, the value of Contents shall be padded with zeros at the end of the string (before the “>”
delimiter) before writing the PKCS#7 to the allocated space in the file.
The format for encoding signature values should be adbe.pkcs7.detached. This encoding allows the most
options in terms of algorithm use. The following table shows the algorithms supported for the various SubFilter
values.
Table 257 - SubFilter value algorithm support
SubFilter value
adbe.pkcs7.detached
adbe.pkcs7.sha1
adbe.x509.rsa.sha1a
Message Digest
SHA1 (PDF 1.3)
SHA1 (PDF 1.3)
SHA1 (PDF 1.3)b
SHA256 (PDF 1.6)
SHA256 (PDF 1.6)
SHA384 (PDF 1.7)
SHA384 (PDF 1.7)
SHA512 (PDF 1.7)
SHA512 (PDF 1.7)
RIPEMD160 (PDF 1.7)
RIPEMD160 (PDF 1.7)
RSA Algorithm Support
Up to 1024-bit (PDF 1.3)
See
See
adbe.pkcs7.detached
adbe.pkcs7.detached
Up to 2048-bit (PDF 1.5)
Up to 4096-bit (PDF 1.5)
DSA Algorithm Support
Up to 4096-bits (PDF 1.6)
See
No
adbe.pkcs7.detached
a Despite the appearance of sha1 in the name of this SubFilter value, supported encodings shall not
be limited to the SHA1 algorithm. The PKCS#1 object contains an identifier that indicates which al-
gorithm shall be used.
b Other digest algorithms may be used to digest the signed-data field; however, SHA1 shall be used
to digest the data that is being signed.
12.8.4
Permissions
The Perms entry in the document catalogue (see Table 28) shall specify a permissions dictionary (PDF 1.5).
Each entry in this dictionary (see Table 258 for the currently defined entries) shall specify the name of a
permission handler that controls access permissions for the document. These permissions are similar to those
476
defined by security handlers (see Table 22) but do not require that the document be encrypted. For a
permission to be actually granted for a document, it shall be allowed by each permission handler that is present
in the permissions dictionary as well as by the security handler.
NOTE
An example of a permission is the ability to fill in a form field.
Table 258 - Entries in a permissions dictionary
Key
Type
Value
DocMDP
dictionary
(Optional) An indirect reference to a signature dictionary (see Table 252).
This dictionary shall contain a Reference entry that shall be a signature
reference dictionary (see Table 252) that has a DocMDP transform method
(see 12.8.2.2, “DocMDP”) and corresponding transform parameters.
If this entry is present, consumer applications shall enforce the permissions
specified by the P attribute in the DocMDP transform parameters dictionary
and shall also validate the corresponding signature based on whether any of
these permissions have been violated.
UR3
dictionary
(Optional) A signature dictionary that shall be used to specify and validate
additional capabilities (usage rights) granted for this document; that is, the
enabling of interactive features of the conforming reader that are not
available by default.
For example, A conforming reader does not permit saving documents by
default, but an agent may grant permissions that enable saving specific
documents. The signature shall be used to validate that the permissions
have been granted by the agent that did the signing.
The signature dictionary shall contain a Reference entry that shall be a
signature reference dictionary that has a UR transform method
(see
12.8.2.3, “UR”). The transform parameter dictionary for this method indicates
which additional permissions shall be granted for the document. If the
signature is valid, the conforming reader shall allow the specified
permissions for the document, in addition to the application’s default
permissions.
12.8.5
Legal Content Attestations
The PDF language provides a number of capabilities that can make the rendered appearance of a PDF
document vary. These capabilities could potentially be used to construct a document that misleads the recipient
of a document, intentionally or unintentionally. These situations are relevant when considering the legal
implications of a signed PDF document.
Therefore, a mechanism shall be provided by which a document recipient can determine whether the document
can be trusted. The primary method is to accept only documents that contain certification signatures (one that
has a DocMDP signature that defines what shall be permitted to change in a document; see 12.8.2.2,
“DocMDP”).
When creating certification signatures, conforming writers should also create a legal attestation dictionary,
whose entries are shown in Table 259. This dictionary shall be the value of the Legal entry in the document
catalogue (see Table 28). Its entries shall specify all content that may result in unexpected rendering of the
document contents. The author may provide further clarification of such content by means of the Attestation
entry. Reviewers should establish for themselves that they trust the author and contents of the document. In the
case of a legal challenge to the document, any questionable content can be reviewed in the context of the
information in this dictionary.
477
Table 259 - Entries in a legal attestation dictionary
Key
Type
Value
JavaScriptActions
integer
(Optional) The number of JavaScript actions found in the document
(see 12.6.4.16, “JavaScript Actions”).
LaunchActions
integer
(Optional) The number of launch actions found in the document (see
12.6.4.5, “Launch Actions”).
URIActions
integer
(Optional) The number of URI actions found in the document (see
12.6.4.7, “URI Actions”).
MovieActions
integer
(Optional) The number of movie actions found in the document (see
12.6.4.9, “Movie Actions”).
SoundActions
integer
(Optional) The number of sound actions found in the document (see
12.6.4.8, “Sound Actions”).
HideAnnotationActions
integer
(Optional) The number of hide actions found in the document (see
12.6.4.10, “Hide Actions”).
GoToRemoteActions
integer
(Optional) The number of remote go-to actions found in the
document (see 12.6.4.3, “Remote Go-To Actions”).
AlternateImages
integer
(Optional) The number of alternate images found in the document
(see 8.9.5.4, “Alternate Images”)
ExternalStreams
integer
(Optional) The number of external streams found in the document.
TrueTypeFonts
integer
(Optional) The number of TrueType fonts found in the document (see
9.6.3, “TrueType Fonts”).
ExternalRefXobjects
integer
(Optional) The number of reference XObjects found in the document
(see 8.10.4, “Reference XObjects”).
ExternalOPIdicts
integer
(Optional) The number of OPI dictionaries found in the document
(see 14.11.7, “Open Prepress Interface (OPI)”).
NonEmbeddedFonts
integer
(Optional) The number of non-embedded fonts found in the
document (see 9.9, “Embedded Font Programs””)
DevDepGS_OP
integer
(Optional) The number of references to the graphics state parameter
OP found in the document (see Table 58).
DevDepGS_HT
integer
(Optional) The number of references to the graphics state parameter
HT found in the document (see Table 58).
DevDepGS_TR
integer
(Optional) The number of references to the graphics state parameter
TR found in the document (see Table 58).
DevDepGS_UCR
integer
(Optional) The number of references to the graphics state parameter
UCR found in the document (see Table 58).
DevDepGS_BG
integer
(Optional) The number of references to the graphics state parameter
BG found in the document (see Table 58).
DevDepGS_FL
integer
(Optional) The number of references to the graphics state parameter
FL found in the document (see Table 58).
Annotations
integer
(Optional) The number of annotations found in the document (see
12.5, “Annotations”).
OptionalContent
boolean
(Optional) true if optional content is found in the document (see 8.11,
“Optional Content”).
Attestation
text string
(Optional) An attestation, created by the author of the document,
explaining the presence of any of the other entries in this dictionary
or the presence of any other content affecting the legal integrity of the
document.
478
12.9
Measurement Properties
PDF documents, such as those created by CAD software, may contain graphics that are intended to represent
real-world objects. Users of such documents often require information about the scale and units of
measurement of the corresponding real-world objects and their relationship to units in PDF user space.
This information enables users of conforming readers to perform measurements that yield results in the units
intended by the creator of the document. A measurement in this context is the result of a canonical function that
takes as input a set of n coordinate pairs
{
(
x0,y0
),
…,(xn-1,yn-1
)}
and produces a single number as output depending on the type of measurement. For example, distance
measurement is equivalent to
n-2
+
(
yi – yi+1
)2
(xi – xi + 1)2
i =0
for
n 2.
Beginning with PDF 1.6, such information may be stored in a measure dictionary (see Table 261). Measure
dictionaries provide information about measurement units associated with a rectangular area of the document
known as a viewport.
A viewport (PDF 1.6) is a rectangular region of a page. The optional VP entry in a page dictionary (see
Table 30) shall specify an array of viewport dictionaries, whose entries shall be as shown in Table 260.
Viewports allow different measurement scales (specified by the Measure entry) to be used in different areas of
a page, if necessary.
The dictionaries in the VP array shall be in drawing order. Since viewports might overlap, to determine the
viewport to use for any point on a page, the dictionaries in the array shall be examined, starting with the last
one and iterating in reverse, and the first one whose BBox entry contains the point shall be chosen.
NOTE 1
Any measurement that potentially involves multiple viewports, such as one specifying the distance between
two points, shall use the information specified in the viewport of the first point.
Table 260 - Entries in a viewport dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; shall be
Viewport for a viewport dictionary.
BBox
rectangle
(Required) A rectangle in default user space coordinates specifying the
location of the viewport on the page.
The two coordinate pairs of the rectangle shall be specified in normalized
form; that is, lower-left followed by upper-right, relative to the measuring
coordinate system. This ordering shall determine the orientation of the
measuring coordinate system (that is, the direction of the positive x and y
axes) in this viewport, which may have a different rotation from the page.
The coordinates of this rectangle are independent of the origin of the
measuring coordinate system, specified in the O entry (see Table 262) of the
measurement dictionary specified by Measure.
479
Table 260 - Entries in a viewport dictionary (continued)
Key
Type
Value
Name
text string
(Optional) A descriptive text string or title of the viewport, intended for use in
a user interface.
Measure
dictionary
(Optional) A measure dictionary (see Table 261) that specifies the scale and
units that shall apply to measurements taken on the contents within the
viewport.
A measure dictionary shall specify an alternate coordinate system for a region of a page. Along with the
viewport dictionary, it shall provide the information needed to convert coordinates in the page’s coordinate
system to coordinates in the measuring coordinate system. The measure dictionary shall provide information
for formatting the resulting values into textual form for presentation in a graphical user interface.
Table 261 shows the entries in a measure dictionary. PDF 1.6 defines only a single type of coordinate system,
a rectilinear coordinate system, that shall be specified by the value RL for the Subtype entry, which is defined
as one in which the x and y axes are perpendicular and have units that increment linearly (to the right and up,
respectively). Other subtypes may be used, providing the flexibility to measure using other types of coordinate
systems.
Table 261 - Entries in a measure dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; shall be
Measure for a measure dictionary.
Subtype
name
(Optional) A name specifying the type of coordinate system to use for
measuring.
Default value: RL, which specifies a rectilinear coordinate system
Table 262 shows the additional entries in a rectilinear measure dictionary. Many of the entries in this dictionary
shall be number format arrays, which are arrays of number format dictionaries (see Table 263). Each number
format dictionary shall represent a specific unit of measurement (such as miles or feet). It shall contain
information about how each unit shall be expressed in text and factors for calculating the number of units.
Number format arrays specify all the units that shall be used when expressing a specific measurement. Each
array shall contain one or more number format dictionaries, in descending order of granularity. If one unit of
measurement X is larger than one unit of measurement Y then X has a larger order of granularity than Y. All the
elements in the array shall contain text strings that, concatenated together, specify how the units shall be
displayed.
NOTE 2
For example, a measurement of 1.4505 miles might be expressed as “1.4505 mi”, which would require one
number format dictionary for miles, or as “1 mi 2,378 ft 7 5/8 in”, which would require three dictionaries (for
miles, feet, and inches).
EXAMPLE 1
A number format dictionary specifying feet should precede one specifying inches.
480
Table 262 - Additional entries in a rectilinear measure dictionary
Key
Type
Value
R
text string
(Required) A text string expressing the scale ratio of the drawing in the
region corresponding to this dictionary. Universally recognized unit
abbreviations should be used, either matching those of the number format
arrays in this dictionary or those of commonly used scale ratios.
EXAMPLE 1
a common scale in architectural drawings is “1/4 in = 1 ft”,
indicating that
1/4 inches in default user space is
equivalent to 1 foot in real-world measurements.
If the scale ratio differs in the x and y directions, both scales should be
specified.
EXAMPLE 2
“in X 1 cm = 1 m, in Y 1 cm = 30 m”.
X
array
(Required) A number format array for measurement of change along the x
axis and, if Y is not present, along the y axis as well. The first element in the
array shall contain the scale factor for converting from default user space
units to the largest units in the measuring coordinate system along that axis.
The directions of the x and y axes are in the measuring coordinate system
and are independent of the page rotation. These directions shall be
determined by the BBox entry of the containing viewport (see Table 260).
Y
array
(Required when the x and y scales have different units or conversion factors)
A number format array for measurement of change along the y axis. The first
element in the array shall contain the scale factor for converting from default
user space units to the largest units in the measuring coordinate system
along the y axis.
D
array
(Required) A number format array for measurement of distance in any
direction. The first element in the array shall specify the conversion to the
largest distance unit from units represented by the first element in X. The
scale factors from X, Y (if present) and CYX (if Y is present) shall be used to
convert from default user space to the appropriate units before applying the
distance function.
A
array
(Required) A number format array for measurement of area. The first
element in the array shall specify the conversion to the largest area unit from
units represented by the first element in X, squared. The scale factors from
X, Y (if present) and CYX (if Y is present) shall be used to convert from
default user space to the appropriate units before applying the area function.
T
array
(Optional) A number format array for measurement of angles. The first
element in the array shall specify the conversion to the largest angle unit
from degrees. The scale factor from CYX (if present) shall be used to convert
from default user space to the appropriate units before applying the angle
function.
S
array
(Optional) A number format array for measurement of the slope of a line. The
first element in the array shall specify the conversion to the largest slope unit
from units represented by the first element in Y divided by the first element in
X. The scale factors from X, Y (if present) and CYX (if Y is present) shall be
used to convert from default user space to the appropriate units before
applying the slope function.
O
array
(Optional) An array of two numbers that shall specify the origin of the
measurement coordinate system in default user space coordinates. The
directions by which x and y increase in value from this origin shall be
determined by the viewport’s BBox entry (see Table 260).
Default value: the first coordinate pair (lower-left corner) of the rectangle
specified by the viewport’s BBox entry.
481
Table 262 - Additional entries in a rectilinear measure dictionary (continued)
Key
Type
Value
CYX
number
(Optional; meaningful only when Y is present) A factor that shall be used to
convert the largest units along the y axis to the largest units along the x axis.
It shall be used for calculations (distance, area, and angle) where the units
are be equivalent; if not specified, these calculations may not be performed
(which would be the case in situations such as x representing time and y
representing temperature). Other calculations (change in x, change in y, and
slope) shall not require this value.
The X and Y entries in a measure dictionary shall be number format arrays that shall specify the units used for
measurements in the x and y directions, respectively, and the ratio between user space units and the specified
units. Y is present only when the x and y measurements are in different units or have different ratios; in this
case, the CYX entry shall be used to convert y values to x values when appropriate.
Table 263 - Entries in a number format dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; shall be
NumberFormat for a number format dictionary.
U
text string
(Required) A text string specifying a label for displaying the units represented
by this dictionary in a user interface; the label should use a universally
recognized abbreviation.
C
number
(Required) The conversion factor used to multiply a value in partial units of
the previous number format array element to obtain a value in the units of
this dictionary. When this entry is in the first number format dictionary in the
array, its meaning (that is, what it shall be multiplied by) depends on which
entry in the rectilinear measure dictionary (see Table 262) references the
number format array.
F
name
(Optional; meaningful only for the last dictionary in a number format array) A
name indicating whether and in what manner to display a fractional value
from the result of converting to the units of this dictionary by means of the C
entry. Valid values shall be:
D Show as decimal to the precision specified by the D entry.
F Show as a fraction with denominator specified by the D entry.
R No fractional part; round to the nearest whole unit.
T No fractional part; truncate to achieve whole units.
Default value: D.
D
integer
(Optional; meaningful only for the last dictionary in a number format array) A
positive integer that shall specify the precision or denominator of a fractional
amount:
When the value of F is D, this entry shall be the precision of a decimal
display; it shall be a multiple of 10. Low-order zeros may be truncated unless
FD is true. Default value: 100 (hundredths, corresponding to two decimal
digits).
When the value of F is F, this entry shall be the denominator of a fractional
display. The fraction may be reduced unless the value of FD is true. Default
value: 16.
FD
boolean
(Optional; meaningful only for the last dictionary in a number format array) If
true, a fractional value formatted according to the D entry may not have its
denominator reduced or low-order zeros truncated.
Default value: false.
482
Table 263 - Entries in a number format dictionary (continued)
Key
Type
Value
RT
text string
(Optional) Text that shall be used between orders of thousands in display of
numerical values. An empty string indicates that no text shall be added.
Default value: COMMA (2Ch).
RD
text string
(Optional) Text that shall be used as the decimal position in displaying
numerical values. An empty string indicates that the default shall be used.
Default value: PERIOD (2Eh).
PS
text string
(Optional) Text that shall be concatenated to the left of the label specified by
U. An empty string indicates that no text shall be added.
Default value: A single ASCII SPACE character (20h).
SS
text string
(Optional) Text that shall be concatenated after the label specified by U. An
empty string indicates that no text shall be added.
Default value: A single ASCII SPACE character (20h).
O
name
(Optional) A name indicating the position of the label specified by U with
respect to the calculated unit value. Valid values shall be:
S The label is a suffix to the value.
P The label is a prefix to the value.
The characters specified by PS and SS shall be concatenated before
considering this entry.
Default value: S.
To use a number format array to create a text string containing the appropriately formatted units for display in a
user interface, apply the following algorithm:
Algorithm: Use of a number format array to create a formatted text string
a) The entry in the rectilinear measure dictionary (see Table 262) that references the number format array
determines the meaning of the initial measurement value. For example, the X entry specifies user space
units, and the T entry specifies degrees.
b) Multiply the value specified previously by the C entry of the first number format dictionary in the array,
which converts the measurement to units of the largest granularity specified in the array. Apply the value of
RT as appropriate.
c) If the result contains no nonzero fractional portion, concatenate the label specified by the U entry in the
order specified by O, after adding spacing from PS and SS. The formatting is then complete.
d) If there is a nonzero fractional portion and no more elements in the array, format the fractional portion as
specified by the RD, F, D, and FD entries of the last dictionary. Concatenate the label specified by the U
entry in the order specified by O, after adding spacing from PS and SS. The formatting is then complete.
e) If there is a nonzero fractional portion and more elements in the array, proceed to the next number format
dictionary in the array. Multiply its C entry by the fractional result from the previous step. Apply the value of
RT as appropriate. Then proceed to step 3.
The concatenation of elements in this process assumes left-to-right order. Documents using right-to-left
languages may modify the process and the meaning of the entries as appropriate to produce the correct
results.
483
EXAMPLE 2
The following example shows a measure dictionary that specifies that changes in x or y are expressed in
miles; distances are expressed in miles, feet, and inches; and area is expressed in acres. Given a sample
distance in scaled units of 1.4505 miles, the formatted text produced by applying the number format array
would be
“1 mi 2,378 ft 7 5/8 in”.
<</Type /Measure
/Subtype /RL
/R (1in = 0.1 mi)
/X [ <</U (mi)
% x offset represented in miles
/C .00139
% Conversion from user space units to miles
/D 100000
]
/D [<< /U (mi) /C 1 >>
% Distance: initial unit is miles; no conversion needed
<< /U (ft) /C 5280 >>
% Conversion from miles to feet
<< /U (in) /C 12
% Conversion from feet to inches
/F /F /D 8 >>
% Fractions of inches rounded to nearest 1/8
]
/A [<</U (acres)
% Area: measured in acres
/C 640 >>
% Conversion from square miles to acres
]
>>
12.10
Document Requirements
12.10.1
General
Beginning with PDF 1.7, a document may specify requirements that shall be present in a conforming reader in
order for the document to function properly. The Requirements entry in the document catalogue (see 7.7.2,
“Document Catalog”) shall specify an array of requirement dictionaries, whose entries are shown in Table 264.
Table 264 - 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. The value shall be EnableJavaScripts.
RH
array
(Optional) An array of requirement handler dictionaries (see
Table 265). This array lists the requirement handlers that
shall be disabled (not executed) if the conforming reader can
check the requirement specified in the S entry.
The RH entry ensures backward-capability for this feature. Some PDF documents include JavaScript segments
that verify compliance with certain requirements. Such JavaScript segments are called requirement handlers.
Backward-compatibility shall be achieved by ensuring that either the conforming reader checks the requirement
or the JavaScript segment checks the requirement, but not both.
When a PDF document is first opened, all JavaScript segments in the document shall be executed, including
the requirement handlers. If the conforming reader understands the requirement dictionary, it shall disable
execution of the requirement handlers named by the RH entry. If the requirement handler is in JavaScript, the
conforming reader shall look up the segment using the Names dictionary (7.7.4, “Name Dictionary”).
In PDF 1.7, the only defined requirement type shall be EnableJavaScripts. This requirement indicates that the
document requires JavaScript execution to be enabled in the conforming reader. If the EnableJavaScripts
requirement is present, an interactive conforming reader may allow the user to choose between keeping
JavaScript execution disabled or temporarily enabling it to benefit from the full function of the document.
484
If the EnableJavaScripts requirement is present in a requirement dictionary, the inclusion of the RH entry that
specifies a JavaScript segment would be pointless. Writing a JavaScript segment to verify that JavaScript is
enabled would not achieve the desired goal. The RH entry shall not be used in PDF 1.7.
12.10.2
Requirement Handlers
A requirement handler is a program that verifies certain requirements are satisfied. Table 265 describes the
entries in a requirement handler dictionary.
Table 265 - Entries in a requirement handler dictionary
Key
Type
Description
Type
name
(Optional) The type of PDF object that this dictionary
describes. If present, shall be ReqHandler for a requirement
handler dictionary.
S
name
(Required) The type of requirement handler that this
dictionary describes. Valid requirement handler types shall be
JS (for a JavaScript requirement handlers) and NoOp.
A value of NoOp allows older conforming readers to ignore
unrecognized requirements. This value does not add any
specific entry to the requirement handler dictionary.
Script
text string
(Optional; valid only if the S entry has a value of JS) The
name of a document-level JavaScript action stored in the
document name dictionary (see 7.7.4, “Name Dictionary”). If
the conforming reader understands the parent requirement
dictionary and can verify the requirement specified in that
dictionary, it shall disable execution of the requirement
handler identified in this dictionary.
485
13
Multimedia Features
13.1
General
This clause describes those features of PDF that support embedding and playing multimedia content. It
contains the following sub-clauses:
13.2, “Multimedia,” describes the comprehensive set of multimedia capabilities that were introduced in
PDF 1.5.
13.3, “Sounds,” and 13.4, “Movies,” describe features that have been supported since PDF 1.2.
13.5, “Alternate Presentations,” describes a slideshow capability that was introduced in PDF 1.4.
13.6, “3D Artwork,” describes the capability of embedding three-dimensional graphics in a document,
introduced in PDF 1.6.
13.2
Multimedia
13.2.1
General
PDF 1.5 introduces a comprehensive set of language constructs to enable the following capabilities:
Arbitrary media types may be embedded in PDF files.
Embedded media, as well as referenced media outside a PDF file, may be played with a variety of player
software. (In some situations, the player software may be the conforming reader itself.)
NOTE 1
The term playing is used with a wide variety of media, and is not restricted to audio or video. For example, it
may be applied to static images such as JPEGs.
Media objects may have multiple renditions, which may be chosen at play-time based on considerations
such as available bandwidth.
Document authors may control play-time requirements, such as which player software should be used to
play a given media object.
Media objects may be played in various ways; for example, in a floating window as well as in a region on a
page.
Future extensions to the media constructs may be handled in an appropriate manner by current
conforming readers. Authors may control how old conforming readers treat future extensions.
Document authors may adapt the use of multimedia to accessibility requirements.
On-line media objects may be played efficiently, even when very large.
The following list summarizes the multimedia features and indicates where each feature is discussed:
13.2.2, “Viability,” describes the rules for determining when media objects are suitable for playing on a
particular system.
Rendition actions (see 12.6.4.13, “Rendition Actions”) shall be used to begin the playing of multimedia
content.
A rendition action associates a screen annotation (see 12.5.6.18, “Screen Annotations”) with a rendition
(see 13.2.3, “Renditions”).
486
Renditions are of two varieties: media renditions (see 13.2.3.2, “Media Renditions”) that define the
characteristics of the media to be played, and selector renditions (see 13.2.3.3, “Selector Renditions”) that
enables choosing which of a set of media renditions should be played.
Media renditions contain entries that specify what should be played (see 13.2.4, “Media Clip Objects”),
how it should be played (see 13.2.5, “Media Play Parameters”), and where it should be played (see 13.2.6,
“Media Screen Parameters”).
13.2.7, “Other Multimedia Objects,” describes several PDF objects that are referenced by the preceding
major objects.
NOTE 2
Some of the features described in the following sub-clauses have references to corresponding elements in the
Synchronized Multimedia Integration Language (SMIL 2.0) standard (see the Bibliography).
13.2.2
Viability
When playing multimedia content, the conforming reader shall often make decisions such as which player
software and which options, such as volume and duration, to use.
In making these decisions, the viewer shall determine the viability of the objects used. If an object is considered
non-viable, the media should not be played. If the object is viable, the media should be played, though possibly
under less than optimum conditions.
There are several entries in the multimedia object dictionaries whose values shall have an effect on viability. In
particular, some of the object dictionaries define two entries that divide options into one of two categories:
MH (“must honour”): The options specified by this entry shall be honoured; otherwise, the containing object
shall be considered non-viable.
BE (“best effort”): An attempt should be made to honour the options; however, if they cannot be honoured,
the containing object is still considered viable.
MH and BE are both dictionaries, and the same entries shall be defined for both of them. In any dictionary
where these entries are allowed, both entries may be present, or only one, or neither.
EXAMPLE
The media play parameters dictionary (see Table 279) allows the playback volume to be set by means of
the V entry in its MH and BE dictionaries (see Table 280).
If the specified volume cannot be honoured, the object shall be considered non-viable if V is in the MH
dictionary, and playback shall not occur. If V is in the BE dictionary (and not also in the MH dictionary), playback
should still occur: the playing software attempts to honour the specified option as best it can.
Using this mechanism, authors may specify minimum requirements (MH) and preferred options (BE). They
may also specify how entries that are added in the future to the multimedia dictionaries shall be interpreted by
old conforming readers. If an entry that is unrecognized by the viewer is in the MH dictionary, the object shall be
considered non-viable. If an unrecognized entry is in a BE dictionary, the entry shall be ignored and viability
shall be unaffected. Unless otherwise stated, an object shall be considered non-viable if its MH dictionary
contains an unrecognized key or an unrecognized value for a recognized key.
The following rules apply to the entries in MH and BE dictionaries, which behave somewhat differently from
other PDF dictionaries:
If an entry is required, the requirement is met if the entry is present in either the MH dictionary or the BE
dictionary.
If an optional entry is not present in either dictionary, it shall be considered to be present with its default
value (if one is defined) in the BE dictionary.
487
If an instance of the same entry is present in both MH and BE, the instance in the BE dictionary shall be
ignored unless otherwise specified.
If the value of an entry in an MH or a BE dictionary is a dictionary or array, it shall be treated as an atomic
unit when determining viability. That is, all entries within the dictionary or array shall be honoured for the
containing object to be viable.
NOTE
When determining whether entries can be honoured, it is not required that each one be evaluated
independently, since they may be dependent on one another. That is, a conforming reader or player may
examine multiple entries at once (even within different dictionaries) to determine whether their values can be
honoured.
The following media objects may have MH and BE dictionaries. They function as described previously, except
where noted in the individual sub-clauses:
Rendition (Table 267)
Media clip data (Table 276)
Media clip section (Table 278)
Media play parameters (Table 280)
Media screen parameters (Table 283)
13.2.3
Renditions
13.2.3.1
General
There are two types of rendition objects:
A media rendition (see 13.2.3.2, “Media Renditions”) is a basic media object that specifies what to play,
how to play it, and where to play it.
A selector rendition (see 13.2.3.3, “Selector Renditions”) contains an ordered list of renditions. This list
may include other selector renditions, resulting in a tree whose leaves are media renditions. The
conforming reader should play the first viable media rendition it encounters in the tree (see 13.2.2,
“Viability”).
NOTE 1
Table 266 shows the entries common to all rendition dictionaries. The N entry in a rendition dictionary specifies
a name that can be used to access the rendition object by means of name tree lookup (see Table 31).
JavaScript actions (see 12.6.4.16, “JavaScript Actions”), for example, use this mechanism.
Since the values referenced by name trees shall be indirect objects, all rendition objects should be indirect
objects.
NOTE 2
A rendition dictionary is not required to have a name tree entry. When it does, the conforming reader should
ensure that the name specified in the tree is kept the same as the value of the N entry (for example, if the user
interface allows the name to be changed). A document should not contain multiple renditions with the same
name.
The MH and BE entries are dictionaries whose entries may be present in one or the other of them, as
described in 13.2.2, “Viability.” For renditions, these dictionaries shall have a single entry C (see Table 267),
whose value shall have a media criteria dictionary specifying a set of criteria that shall be met for the rendition
to be considered viable (see Table 268).
The media criteria dictionary behaves somewhat differently than other MH/BE entries, as they are described in
13.2.2, “Viability.” The criteria specified by all of its entries shall be met regardless of whether they are in an MH
or a BE dictionary. The only exception is that if an entry in a BE dictionary is unrecognized by the conforming
488
reader, it shall not affect the viability of the object. If a media criteria dictionary is present in both MH and BE,
the entries in both dictionaries shall be individually evaluated, with MH taking precedence (corresponding BE
entries shall be ignored).
Table 266 - Entries common to all rendition dictionaries
Key
Type
Value
Type
name
(Optional) The type of PDF object that dictionary describes; if present, shall
be Rendition for a rendition object.
S
name
(Required) The type of rendition that this dictionary describes. May be MR
for media rendition or SR for selector rendition. The rendition shall be
considered non-viable if the conforming reader does not recognize the value
of this entry.
N
text string
(Optional) A Unicode-encoded text string specifying the name of the
rendition for use in a user interface and for name tree lookup by JavaScript
actions.
MH
dictionary
(Optional) A dictionary whose entries (see Table 267) shall be honoured for
the rendition to be considered viable.
BE
dictionary
(Optional) A dictionary whose entries (see Table 267) shall only be honoured
in a “best effort” sense.
Table 267 - Entries in a rendition MH/BE dictionary
Key
Type
Value
C
dictionary
(Optional) A media criteria dictionary (see Table 268).
The media criteria dictionary behaves somewhat differently than other MH/
BE entries described in 13.2.2, “Viability.” The criteria specified by all of its
entries shall be met regardless of whether it is in an MH or a BE dictionary.
The only exception is that if an entry in a BE dictionary is unrecognized by
the conforming reader, it shall not affect the viability of the object.
Table 268 - Entries in a media criteria dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaCriteria for a media criteria dictionary.
A
boolean
(Optional) If specified, the value of this entry shall match the user’s
preference for whether to hear audio descriptions in order for this object to
be viable.
NOTE 1
Equivalent to SMIL’s systemAudioDesc attribute.
C
boolean
(Optional) If specified, the value of this entry shall match the user’s
preference for whether to see text captions in order for this object to be
viable.
NOTE 2
Equivalent to SMIL’s systemCaptions attribute.
O
boolean
(Optional) If specified, the value of this entry shall match the user’s
preference for whether to hear audio overdubs in order for this object to be
viable.
S
boolean
(Optional) If specified, the value of this entry shall match the user’s
preference for whether to see subtitles in order for this object to be viable.
489
Table 268 - Entries in a media criteria dictionary (continued)
Key
Type
Value
R
integer
(Optional) If specified, the system’s bandwidth (in bits per second) shall be
greater than or equal to the value of this entry in order for this object to be
viable.
NOTE 3
Equivalent to SMIL’s systemBitrate attribute.
D
dictionary
(Optional) A dictionary (see Table 269) specifying the minimum bit depth
required in order for this object to be viable.
NOTE 4
Equivalent to SMIL’s systemScreenDepth attribute.
Z
dictionary
(Optional) A dictionary (see Table 270) specifying the minimum screen size
required in order for this object to be viable.
NOTE 5
Equivalent to SMIL’s systemScreenSize attribute.
V
array
(Optional) An array of software identifier objects (see 13.2.7.4, “Software
Identifier Dictionary”). If this entry is present and non-empty, the conforming
reader shall be identified by one or more of the objects in the array in order
for this object to be viable.
P
array
(Optional) An array containing one or two name objects specifying a
minimum and optionally a maximum PDF language version, in the same
format as the Version entry in the document catalog (see Table 28). If this
entry is present and non-empty, the version of multimedia constructs fully
supported by the conforming reader shall be within the specified range in
order for this object to be viable.
L
array
(Optional) An array of language identifiers
(see
14.9.2.2,
“Language
Identifiers”). If this entry is present and non-empty, the language in which the
conforming reader is running shall exactly match a language identifier, or
consist only of a primary code that matches the primary code of an identifier,
in order for this object to be viable.
NOTE 6
Equivalent to SMIL’s systemLanguage attribute.
Table 269 - Entries in a minimum bit depth dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MinBitDepth for a minimum bit depth dictionary.
V
integer
(Required) A positive integer (0 or greater) specifying the minimum screen
depth (in bits) of the monitor for the rendition to be viable. A negative value
shall not be allowed.
M
integer
(Optional) A monitor specifier (see Table 270) that specifies which monitor
the value of V should be tested against. If the value is unrecognized, the
object shall not be viable.
Default value: 0.
490
Table 270 - Entries in a minimum screen size dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MinScreenSize for a rendition object.
V
array
(Required) An array containing two non-negative integers. The width and
height (in pixels) of the monitor specified by M shall be greater than or equal
to the values of the first and second integers in the array, respectively, in
order for this object to be viable.
M
integer
(Optional) A monitor specifier (see Table 293) that specifies which monitor
the value of V should be tested against. If the value is unrecognized, the
object shall be not viable.
Default value: 0.
13.2.3.2
Media Renditions
Table 271 lists the entries in a media rendition dictionary. Its entries specify what media should be played (C),
how (P), and where (SP) it should be played. A media rendition object shall be viable if and only if the objects
referenced by its C, P, and SP entries are viable.
C may be omitted only in cases where a referenced player takes no meaningful input. This requires that P shall
be present and that its referenced media play parameters dictionary (see Table 279) shall contain a PL entry,
whose referenced media players dictionary (see 13.2.7.2, “Media Players Dictionary”) has a non-empty MU
array or a non-empty A array.
Table 271 - Additional entries in a media rendition dictionary
Key
Type
Value
C
dictionary
(Optional) A media clip dictionary (see 13.2.4, “Media Clip Objects”) that
specifies what should be played when the media rendition object is played.
P
dictionary
(Required if C is not present, otherwise optional) A media play parameters
dictionary (see 13.2.5, “Media Play Parameters””) that specifies how the
media rendition object should be played.
Default value: a media play parameters dictionary whose entries
(see
Table 279) all contain their default values.
SP
dictionary
(Optional) A media screen parameters dictionary (see 13.2.6, “Media Screen
Parameters”) that specifies where the media rendition object should be
played.
Default value: a media screen parameters dictionary whose entries (see
Table 282) all contain their default values.
13.2.3.3
Selector Renditions
A selector rendition dictionary shall specify an array of rendition objects in its R entry (see Table 272). The
renditions in this array should be ordered by preference, with the most preferred rendition first. At play-time, the
renditions in the array shall be evaluated and the first viable media rendition, if any, shall be played. If one of
the renditions is itself a selector, that selector shall be evaluated in turn, yielding the equivalent of a depth-first
tree search. A selector rendition itself may be non-viable; in this case, none of its associated media renditions
shall be evaluated (in effect, this branch of the tree is skipped).
NOTE
This mechanism may be used, for example, to specify that a large video clip should be used on high-
bandwidth machines and a smaller clip should be used on low-bandwidth machines.
491
Table 272 - Additional entries specific to a selector rendition dictionary
Key
Type
Value
R
array
(Required) An array of rendition objects. The first viable media rendition
object found in the array, or nested within a selector rendition in the array,
should be used. An empty array is legal.
13.2.4
Media Clip Objects
13.2.4.1
General
There are two types of media clip objects, determined by the subtype S, which can be either MCD for media
clip data (see 13.2.4.2, “Media Clip Data”) or MCS for media clip section (see 13.2.4.3, “Media Clip Section”).
The entries common to all media clip dictionaries are listed in Table 273.
Table 273 - Entries common to all media clip dictionaries
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaClip for a media clip dictionary.
S
name
(Required) The subtype of media clip that this dictionary describes. May be
MCD for media clip data (see 13.2.4.2, “Media Clip Data”) or MCS for a
media clip section (see 13.2.4.3, “Media Clip Section”). The media clip shall
be considered non-viable if the conforming reader does not recognize the
value of this entry.
N
text string
(Optional) The name of the media clip, for use in the user interface.
13.2.4.2
Media Clip Data
A media clip data dictionary defines the data for a media object that can be played. Its entries are listed in
Table 274
NOTE 1
It may reference a URL to a streaming video presentation or a movie embedded in the PDF file.
Table 274 - Additional entries in a media clip data dictionary
Key
Type
Value
D
file
(Required) A full file specification or form XObject that specifies the actual
specification or
media data.
stream
CT
ASCII string
(Optional; not allowed for form XObjects) An ASCII string identifying the type
of data in D. The string should conform to the content type specification
described in Internet RFC
2045, Multipurpose Internet Mail Extensions
(MIME) Part One: Format of Internet Message Bodies
(see the
Bibliography).
P
dictionary
(Optional) A media permissions dictionary
(see Table 275) containing
permissions that control the use of the media data. Default value: a media
permissions dictionary containing default values.
Alt
array
(Optional) An array that provides alternate text descriptions for the media clip
data in case it cannot be played; see 14.9.2.4, “Multi-language Text Arrays.”
492
Table 274 - Additional entries in a media clip data dictionary (continued)
Key
Type
Value
PL
dictionary
(Optional) A media players dictionary
(see
13.2.7.2,
“Media Players
Dictionary”) that identifies, among other things, players that are legal and not
legal for playing the media.
If the media players dictionary is non-viable, the media clip data shall be
non-viable.
MH
dictionary
(Optional) A dictionary whose entries (see Table 276) shall be honoured for
the media clip data to be considered viable.
BE
dictionary
(Optional) A dictionary whose entries
(see Table 276) should only be
honoured in a “best effort” sense.
The media clip data object shall be considered non-viable if the object referenced by the D entry does not
contain a Type entry, the Type entry is unrecognized, or the referenced object is not a dictionary or stream.
This shall effectively exclude the use of simple file specifications (see 7.11, “File Specifications”).
If D references a file specification that has an embedded file stream (see 7.11.4, “Embedded File Streams”), the
embedded file stream’s Subtype entry shall be ignored if present, and the media clip data dictionary’s CT entry
shall identify the type of data.
If D references a form XObject, the associated player is implicitly the conforming reader, and the form XObject
shall be rendered as if it were any other data type.
NOTE 2
The F and D entries in the media play parameters dictionary (see Table 279) should apply to a form XObject
just as they do to a QuickTime movie.
For media other than form XObjects, the media clip object shall provide enough information to allow a
conforming reader to locate an appropriate player. This may be done by providing one or both of the following
entries, the first being the preferred method:
A CT entry that specifies the content type of the media. If this entry is present, any player that is selected
shall support this content type.
A PL entry that specifies one or more players that may be used to play the referenced media. if CT is
present, there should also be a PL present.
The P entry specifies a media permissions dictionary (see Table 275) specifying the manner in which the data
referenced by the media may be used by a conforming reader. These permissions allow authors control over
how their data is exposed to operations that could allow it to be copied. If the dictionary contains unrecognized
entries or entries with unrecognized values, it shall be considered non-viable, and the conforming reader shall
not play the media.
493
Table 275 - Entries in a media permissions dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaPermissions for a media permissions dictionary.
TF
ASCII
(Optional) An ASCII string indicating the circumstances under which it is
string
acceptable to write a temporary file in order to play a media clip. Valid values
are:
(TEMPNEVER) Never allowed.
(TEMPEXTRACT) Allowed only if the document permissions allow content
extraction; when bit 5 of the user access permissions
(see Table 22) is set.
(TEMPACCESS) Allowed only if the document permissions allow content
extraction, including for accessibility purposes; when bits
5 or 10 of the user access permissions (see Table 22) are
set, or both.
(TEMPALWAYS) Always allowed.
Default value: (TEMPNEVER).
An unrecognized value shall be treated as (TEMPNEVER).
The BU entry in the media clip data MH and BE dictionaries (see Table 276) specifies a base URL for the
media data. Relative URLs in the media (which point to auxiliary files or are used for hyperlinking) should be
resolved with respect to the value of BU. The following are additional requirements concerning the BU entry:
If BU is in the MH dictionary and the base URL is not honoured the media clip data shall be non-viable.
NOTE 3
An example of this is that the player does not accept base URLs.
Determining the viability of the object shall not require checking whether the base URL is valid
NOTE 4
The target host exists.
Absolute URls within the media shall not be affected.
If the media itself contains a base URL, that value shall be used in preference to BU.
NOTE 5
An example of this is that the <BASE> element is defined in HTML.
BU is completely independent of and unrelated to the value of the URI entry in the document catalogue
(see 7.7.2, “Document Catalog”).
If BU is not present and the media is embedded within the document, the URL to the PDF file itself shall be
used as if it were the value of a BU entry in the BE dictionary; that is, as an implicit best-effort base URL.
Table 276 - Entries in a media clip data MH/BE dictionary
Key
Type
Value
BU
ASCII
(Optional) An absolute URL that shall be used as the base URL in resolving
string
any relative URLs found within the media data.
13.2.4.3
Media Clip Section
A media clip section dictionary (see Table 277) defines a continuous section of another media clip object
(known as the next-level media clip object). The next-level media clip object, specified by the D entry, may be
either a media clip data object or another media clip section object. However, the linked list formed by the D
494
entries of media clip sections shall terminate in a media clip data object. If the next-level media object is non-
viable, the media clip section shall be also non-viable.
NOTE 1
A media clip section could define a 15-minute segment of a media clip data object representing a two-hour
movie.
Table 277 - Additional entries in a media clip section dictionary
Key
Type
Value
D
dictionary
(Required) The media clip section or media clip data object (the next-level
media object) of which this media clip section object defines a continuous
section.
Alt
array
(Optional) An array that provides alternate text descriptions for the media clip
section in case it cannot be played; see 14.9.2.4, “Multi-language Text
Arrays.”
MH
dictionary
(Optional) A dictionary whose entries (see Table 278) shall be honoured for
the media clip section to be considered viable.
BE
dictionary
(Optional) A dictionary whose entries (see Table 278) shall only be honoured
in a “best effort” sense.
The B and E entries in the media clip section’s MH and BE dictionaries (see Table 278) shall define a
subsection of the next-level media object referenced by D by specifying beginning and ending offsets into it.
Depending on the media type, the offsets may be specified by time, frames, or markers (see 13.2.6.2, “Media
Offset Dictionary”). B and E are not required to specify the same type of offset.
The following rules apply to these offsets:
For media types where an offset makes no sense (such as JPEG images), B and E shall be ignored, with
no effect on viability.
When B or E are specified by time or frames, their value shall be considered to be relative to the start of
the next-level media clip. However, if E specifies an offset beyond the end of the next-level media clip, the
end value shall be used instead, and there is no effect on viability.
When B or E are specified by markers, there shall be a corresponding absolute offset into the underlying
media clip data object. If this offset is not within the range defined by the next-level media clip (if any), or if
the marker is not present in the underlying media clip, the existence of the entry shall be ignored, and there
is no effect on viability.
If the absolute offset derived from the values of all B entries in a media clip section chain is greater than or
equal to the absolute offset derived from the values of all E entries, an empty range shall be defined. An
empty range is legal.
Any B or E entry in a media clip section’s MH dictionary shall be honoured at play-time in order for the
media clip section to be considered viable.
NOTE 2
The entry may not be honored if its value was not viable or if the player did not support its value; for example,
the player did not support markers.
If a B or E entry is in a media clip section’s MH dictionary, all B or E entries, respectively, at deeper levels
(closer to the media clip data), shall be evaluated as if they were in an MH dictionary (even if they are
actually within BE dictionaries).
If B or E entry in a BE dictionary cannot be supported, it may be ignored at play-time.
495
Table 278 - Entries in a media clip section MH/BE dictionary
Key
Type
Value
B
dictionary
(Optional) A media offset dictionary (see 13.2.6.2, “Media Offset Dictionary”)
that specifies the offset into the next-level media object at which the media
clip section begins. Default: the start of the next-level media object.
E
dictionary
(Optional) A media offset dictionary (see 13.2.6.2, “Media Offset Dictionary”)
that specifies the offset into the next-level media object at which the media
clip section ends. Default: the end of the next-level media object.
13.2.5
Media Play Parameters
A media play parameters dictionary specifies how a media object should be played. It shall be referenced from
a media rendition (see 13.2.3.2, “Media Renditions”).
Table 279 - Entries in a media play parameters dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaPlayParams for a media play parameters dictionary.
PL
dictionary
(Optional) A media players dictionary
(see
13.2.7.2,
“Media Players
Dictionary”) that identifies, among other things, players that are legal and not
legal for playing the media.
If this object is non-viable, the media play parameters dictionary shall be
considered non-viable.
MH
dictionary
(Optional) A dictionary whose entries (see Table 278) shall be honoured for
the media play parameters to be considered viable.
BE
dictionary
(Optional) A dictionary whose entries (see Table 278) shall only be honoured
in a “best effort” sense.
Table 280 - Entries in a media play parameters MH/BE dictionary
Key
Type
Value
V
integer
(Optional) An integer that specifies the desired volume level as a percentage
of recorded volume level. A zero value shall be equivalent to mute; negative
values shall be illegal. Default value: 100.
C
boolean
(Optional) A flag specifying whether to display a player-specific controller
user interface when playing.
EXAMPLE
play/pause/stop controls.
Default value: false
496
Table 280 - Entries in a media play parameters MH/BE dictionary (continued)
Key
Type
Value
F
integer‘
(Optional) The manner in which the player shall treat a visual media type that
does not exactly fit the rectangle in which it plays.
0The media’s width and height shall be scaled while preserving the aspect
ratio so that the media and play rectangles have the greatest possible
intersection while still displaying all media content.
NOTE 1
Same as “meet” value of SMIL’s fit attribute.
1
The media’s width and height shall be scaled while preserving the aspect
ratio so that the play rectangle is entirely filled, and the amount of media
content that does not fit within the play rectangle shall be minimized.
NOTE 2
Same as “slice” value of SMIL’s fit attribute.
2
The media’s width and height shall be scaled independently so that the
media and play rectangles are the same; the aspect ratio shall not be
preserved.
NOTE 3
Same as “fill” value of SMIL’s fit attribute.
3
The media shall not be scaled. A scrolling user interface shall be
provided if the media rectangle is wider or taller than the play rectangle.
NOTE 4
Same as “scroll” value of SMIL’s fit attribute.
4
The media shall not be scaled. Only the portions of the media rectangle
that intersect the play rectangle shall be displayed.
NOTE 5
Same as “hidden” value of SMIL’s fit attribute.
5
Use the player’s default setting (author has no preference).
Default value: 5.
An unrecognized value shall be treated as the default value if the entry is in a
BE dictionary. If the entry is in an MH dictionary and it has an unrecognized
value, the object shall be considered non-viable.
D
dictionary
(Optional) A media duration dictionary (see Table 281). Default value: a
dictionary specifying the intrinsic duration (see RC).
A
boolean
(Optional) If true, the media shall automatically play when activated. If false,
the media shall be initially paused when activated.
EXAMPLE
The first frame is displayed.
Relevant only for media that may be paused. Default value: true.
RC
number
(Optional) Specifies the number of iterations of the duration D to repeat.
NOTE 6
Similar to SMIL’s repeatCount attribute. Zero means repeat
forever. Negative values shall be illegal; non-integral values
shall be legal.
Default value: 1.0.
The value of the D entry is a media duration dictionary, whose entries are shown in Table 281. It specifies a
temporal duration.
NOTE 1
The D entry dictionary temporal duration corresponds to the notion of a simple duration in SMIL.
The duration may be a specific amount of time, it may be infinity, or it may be the media’s intrinsic duration.
EXAMPLE
The intrinsic duration of a two-hour QuickTime movie is two hours.
497
The intrinsic duration may be modified when a media clip section (see 13.2.4.3, “Media Clip Section”) is used:
the intrinsic duration shall be the difference between the absolute begin and end offsets. For a media type
having no notion of time (such as a JPEG image), the duration shall be considered to be infinity.
If the simple duration is longer than the intrinsic duration, the player shall freeze the media in its final state until
the simple duration has elapsed. For visual media types, the last appearance (frame) shall be displayed. For
aural media types, the media is logically frozen but shall not continue to produce sound.
NOTE 2
In this case, the RC entry, which specifies a repeat count, applies to the simple duration; therefore, the entire
play-pause sequence is repeated RC times.
Table 281 - Entries in a media duration dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaDuration for a media duration dictionary.
S
name
(Required) The subtype of media duration dictionary. Valid values are:
I
The duration is the intrinsic duration of the associated media
F The duration is infinity
T The duration shall be specified by the T entry
The media duration dictionary shall be considered non-viable if the
conforming reader does not recognize the value of this entry.
T
dictionary
(Required if the value of S is T; otherwise ignored) A timespan dictionary
specifying an explicit duration (see Table 289). A negative duration is illegal.
13.2.6
Media Screen Parameters
13.2.6.1
General
A media screen parameters dictionary (see Table 282) shall specify where a media object should be played. It
shall contain MH and BE dictionaries (see Table 283), which shall function as discussed in 13.2.2, “Viability.” All
media clips that are being played shall be associated with a particular document and shall be stopped when the
document is closed.
NOTE
Conforming readers should disallow floating windows and full-screen windows unless specifically allowed by
the user. The reason is that document-based security attacks are possible if windows containing arbitrary
media content can be displayed without indicating to the user that the window is merely hosting a media
object. This recommendation may be relaxed if it is possible to communicate the nature of such windows to the
user; for example, with text in a floating window’s title bar.
Table 282 - Entries in a media screen parameters dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaScreenParams for a media screen parameters dictionary.
MH
dictionary
(Optional) A dictionary whose entries (see Table 283) shall be honoured for
the media screen parameters to be considered viable.
BE
dictionary
(Optional) A dictionary whose entries (see Table 283) should be honoured.
498
Table 283 - Entries in a media screen parameters MH/BE dictionary
Key
Type
Value
W
integer
(Optional) The type of window that the media object shall play in:
0
A floating window
1
A full-screen window that obscures all other windows
2
A hidden window
3
The rectangle occupied by the screen annotation
(see
12.5.6.18,
“Screen Annotations”) associated with the media rendition
Default value: 3. Unrecognized value in MH: object is non-viable; in BE: treat
as default value.
B
array
(Optional) An array of three numbers in the range 0.0 to 1.0 that shall specify
the components in the DeviceRGB colour space of the background colour
for the rectangle in which the media is being played. This colour shall be
used if the media object does not entirely cover the rectangle or if it has
transparent sections. It shall be ignored for hidden windows.
Default value: implementation-defined. The conforming reader should
choose a reasonable value based on the value of W.
EXAMPLE 1
A system default background colour for floating windows
or a user-preferred background colour for full-screen
windows.
If a media format has an intrinsic background colour, B shall not override it.
However, the B colour shall be visible if the media has transparent areas or
otherwise does not cover the entire window.
O
number
(Optional) A number in the range 0.0 to 1.0 specifying the constant opacity
value that shall be used in painting the background colour specified by B. A
value below 1.0 means the window shall be transparent.
EXAMPLE 2
Windows behind a floating window show through if the
media does not cover the entire floating window.
A value of 0.0 shall indicate full transparency and shall make B irrelevant. It
shall be ignored for full-screen and hidden windows.
Default value: 1.0 (fully opaque).
M
integer
(Optional) A monitor specifier
(see Table 293) that shall specify which
monitor in a multi-monitor system, a floating or full-screen window shall
appear on. Ignored for other types.
Default value: 0 (document monitor). Unrecognized value in MH: object is
non-viable; in BE: treat as default value.
F
dictionary
(Required if the value of W is 0; otherwise ignored) A floating window
parameters dictionary (see Table 284) that shall specify the size, position,
and options used in displaying floating windows.
The F entry in the media screen parameters MH/BE dictionaries shall be a floating window parameters
dictionary, whose entries are listed in Table 284. The entries in the floating window parameters dictionary shall
be treated as if they were present in the MH or BE dictionaries that they are referenced from. That is, the
contained entries shall be individually evaluated for viability rather than the dictionary being evaluated as a
whole. (There may be an F entry in both MH and BE. In such a case, if a given entry is present in both floating
window parameters dictionaries, the one in the MH dictionary shall take precedence.)
The D, P, and RT entries shall be used to specify the rectangle that the floating window occupies. Once
created, the floating window’s size and position shall not be tied to any other window, even if the initial size or
position was computed relative to other windows.
Unrecognized values for the R, P, RT, and O entries shall be handled as follows: if they are nested within an
MH dictionary, the floating window parameters object (and hence the media screen parameters object) shall be
499
considered non-viable; if they are nested within a BE dictionary, they shall be considered to have their default
values.
Table 284 - Entries in a floating window parameters dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be FWParams for a floating window parameters dictionary.
D
array
(Required) An array containing two non-negative integers that shall
represent the floating window’s width and height, in pixels, respectively.
These values shall correspond to the dimensions of the rectangle in which
the media shall play, not including such items as title bar and resizing
handles.
RT
integer
(Optional) The window relative to which the floating window shall be
positioned:
0
The document window
1
The application window
2
The full virtual desktop
3
The monitor specified by M in the media screen parameters MH or BE
dictionary (see 9.22)
Default value: 0.
P
integer
(Optional) The location where the floating window (including such items as
title bar and resizing handles) shall be positioned relative to the window
specified by RT:
0
Upper-left corner
1
Upper center
2
Upper-right corner
3
Center left
4
Center
5
Center right
6
Lower-left corner
7
Lower center
8
Lower-right corner
Default value: 4.
O
integer
(Optional) Specifies what shall occur if the floating window is positioned
totally or partially offscreen (that is, not visible on any physical monitor):
0
Take no special action
1
Move and/or resize the window so that it is on-screen
2
Consider the object to be non-viable
Default value: 1
T
boolean
(Optional) If true, the floating window shall have a title bar. Default value:
true.
UC
boolean
(Optional; meaningful only if T is true) If true, the floating window shall
include user interface elements that allow a user to close a floating window.
Default value: true
R
integer
(Optional) Specifies whether the floating window may be resized by a user:
0
May not be resized
1
May be resized only if aspect ratio is preserved
2
May be resized without preserving aspect ratio
Default value: 0.
500
Table 284 - Entries in a floating window parameters dictionary (continued)
Key
Type
Value
TT
array
(Optional; meaningful only if T is true) An array providing text to display on
the floating window’s title bar. See 14.9.2.4, “Multi-language Text Arrays.” If
this entry is not present, the conforming reader may provide default text.
13.2.6.2
Media Offset Dictionary
A media offset dictionary (Table 285) shall specify an offset into a media object. The S (subtype) entry indicates
how the offset shall be specified: in terms of time, frames or markers. Different media types support different
types of offsets.
EXAMPLE
Time, “10 seconds”; frames, “frame 20”; markers, “Chapter One.”
Table 285 - Entries common to all media offset dictionaries
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaOffset for a media offset dictionary.
S
name
(Required) The subtype of media offset dictionary. Valid values shall be:
T A media offset time dictionary (see Table 286)
F A media offset frame dictionary (see Table 287)
M A media offset marker dictionary (see Table 288)
The rendition shall be considered non-viable if the conforming reader does
not recognize the value of this entry.
Table 286 - Additional entries in a media offset time dictionary
Key
Type
Value
T
dictionary
(Required) A timespan dictionary
(see Table 289) that shall specify a
temporal offset into a media object. Negative timespans are not allowed in
this context. The media offset time dictionary is non-viable if its timespan
dictionary is non-viable.
Table 287 - Additional entries in a media offset frame dictionary
Key
Type
Value
F
integer
(Required) Shall specify a frame within a media object. Frame numbers
begin at 0; negative frame numbers are not allowed.
Table 288 - Additional entries in a media offset marker dictionary
Key
Type
Value
M
text string
(Required) A text string that identifies a named offset within a media object.
501
13.2.6.3
Timespan Dictionary
A timespan dictionary shall specify a length of time; its entries are shown in Table 289.
Table 289 - Entries in a timespan dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be Timespan for a timespan dictionary.
S
name
(Required) The subtype of timespan dictionary. The value shall be S (simple
timespan). The rendition shall be considered non-viable if the conforming
reader does not recognize the value of this entry.
V
number
(Required) The number of seconds in the timespan. Non-integral values
shall be allowed. Negative values shall be allowed, but may be disallowed in
some contexts.
(PDF 1.5) Negative values are not allowed.
This entry shall be used only if the value of the S entry is S. Subtypes
defined in the future need not use this entry.
13.2.7
Other Multimedia Objects
13.2.7.1
General
This sub-clause defines several dictionary types that are referenced by the previous sub-clauses.
13.2.7.2
Media Players Dictionary
A media players dictionary may be referenced by media clip data (see 13.2.4.2, “Media Clip Data”) and media
play parameters (see 13.2.5, “Media Play Parameters”) dictionaries, and shall allow them to specify which
players may or may not be used to play the associated media. The media players dictionary references media
player info dictionaries (see 13.2.7.3, “Media Player Info Dictionary”) that shall provide specific information
about each player.
Table 290 - Entries in a media players dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaPlayers for a media players dictionary.
MU
array
(Optional) An array of media player info dictionaries (see Table 291) that
shall specify a set of players, one of which shall be used in playing the
associated media object.
Any players specified in NU are effectively removed from MU.
EXAMPLE
If MU specifies versions 1 through 5 of a player and NU
specifies versions 1 and 2 of the same player, MU is
effectively versions 3 through 5.
A
array
(Optional) An array of media player info dictionaries (see Table 291) that
shall specify a set of players, any of which may be used in playing the
associated media object. If MU is also present and non-empty, A shall be
ignored.
NU
array
(Optional) An array of media player info dictionaries (see Table 291) that
shall specify a set of players that shall not be used in playing the associated
media object (even if they are also specified in MU).
502
The MU, A, and NU entries each shall specify one or more media player info dictionaries. An empty array shall
be treated as if it is not present. The media player info dictionaries shall be allowed to specify overlapping
player ranges.
NOTE 1
MU could contain a media player info dictionary describing versions 1 to 10 of Player X and another describing
versions 3 through 5 of Player X.
If a non-viable media player info dictionary is referenced by MU, NU, or A, it shall be treated as if it were not
present in its original array, and a media player info dictionary containing the same software identifier dictionary
(see 13.2.7.4, “Software Identifier Dictionary”) shall logically considered present in NU. The same rule shall
apply to a media player info dictionary that contains a partially unrecognized software identifier dictionary.
Since both media clip data and media play parameters dictionaries may be employed in a play operation, and
each may reference a media players dictionary, there is a potential for conflict between the contents of the two
media players dictionaries. At play-time, the viewer shall use the following algorithm to determine whether a
player present on the machine may be employed. The player may not be used if any of the following conditions
are true:
Algorithm: Media Player
a) The content type is known and the player does not support the type.
b) The player is found in the NU array of either dictionary.
c) Both dictionaries have non-empty MU arrays and the player is not found in both of them, or only one of the
dictionaries has a non-empty MU array and the player is not found in it.
d) Neither dictionary has a non-empty MU array, the content type is not known, and the player is not found in
the A array of either dictionary.
If none of the conditions are true, the player may be used.
NOTE 2
A player is “found” in the NU, MU, or A arrays if it matches the information found in the PID entry of one of the
entries, as described by the Algorithm in 13.2.7.4, “Software Identifier Dictionary.”
13.2.7.3
Media Player Info Dictionary
A media player info dictionary shall provide a variety of information regarding a specific media player. Its entries
(see Table 291) shall associate information with a particular version or range of versions of a player. As of PDF
1.5, only the PID entry shall provide information about the player, as described in the next sub-clause, 13.2.7.4,
“Software Identifier Dictionary.”
Table 291 - Entries in a media player info dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be MediaPlayerInfo for a media player info dictionary.
PID
dictionary
(Required) A software identifier dictionary (see 13.2.7.4, “Software Identifier
Dictionary”) that shall specify the player name, versions, and operating
systems to which this media player info dictionary applies.
MH
dictionary
(Optional) A dictionary containing entries that shall be honored for this
dictionary to be considered viable
Currently, there are no defined entries for this dictionary
BE
dictionary
(Optional) A dictionary containing entries that need only be honored in a
“best effort” sense.
Currently, there are no defined entries for this dictionary
503
13.2.7.4
Software Identifier Dictionary
13.2.7.4.1
General
A software identifier dictionary shall allow software to be identified by name, range of versions, and operating
systems; its entries are listed in Table 292. A conforming reader uses this information to determine whether a
given media player may be used in a given situation. If the dictionary contains keys that are unrecognized by
the conforming reader, it shall be considered to be partially recognized. The conforming reader may or may not
decide to treat the software identifier as viable, depending on the context in which it is used.
The following procedure shall be used to determine whether a piece of software is considered to match a
software identifier dictionary:
Algorithm: Software identifier
a)
The software name shall match the name specified by the U entry (see “Software URIs” in 13.2.7.4,
“Software Identifier Dictionary”).
b)
The software version shall be within the interval specified by the L, H, LI, and H1 entries (see “Version
arrays” in 13.2.7.4, “Software Identifier Dictionary”).
c)
The machine’s operating system name shall be an exact match for one present in the OS array. If the array
is not present or empty, a match shall also be considered to exist.
Table 292 - Entries in a software identifier dictionary
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be SoftwareIdentifier for a software identifier dictionary.
U
ASCII string
(Required) A URI that identifies a piece of software (see “Software URIs” in
13.2.7.4, “Software Identifier Dictionary”).
L
array
(Optional) The lower bound of the range of software versions that this
software identifier dictionary specifies
(see “Version arrays” in 13.2.7.4,
“Software Identifier Dictionary”). Default value: the array [0].
LI
boolean
(Optional) If true, the lower bound of the interval defined by L and H is
inclusive; that is, the software version shall be greater than or equal to L (see
“Version arrays” in 13.2.7.4, “Software Identifier Dictionary”). If false, it shall
not be inclusive. Default value: true.
H
array
(Optional) The upper bound of the range of software versions that this
software identifier dictionary specifies
(see “Version arrays” in 13.2.7.4,
“Software Identifier Dictionary”). Default value: an empty array [].
HI
boolean
(Optional) If true, the upper bound of the interval defined by L and H is
inclusive; that is, the software version shall be less than or equal to H (see
“Version arrays” in 13.2.7.4, “Software Identifier Dictionary”). If false, it shall
not be inclusive. Default value: true.
OS
array
(Optional) An array of byte strings representing operating system identifiers
that shall indicate to which operating systems this object applies. The
defined values are the same as those defined for SMIL
2.0’s
systemOperatingSystem attribute. There may not be multiple copies of the
same identifier in the array. An empty array shall be considered to represent
all operating systems. Default value: an empty array.
504
13.2.7.4.2
Software URIs
The U entry is a URI (universal resource identifier) that identifies a piece of software. It shall be interpreted
according to its scheme; the only presently defined scheme is vnd.adobe.swname. The scheme name is case-
insensitive; if shall not be recognized by the conforming reader, the software shall be considered a non-match.
The syntax of URIs of this scheme is
“vnd.adobe.swname:” software_name
where software_name shall be reg_name as defined in Internet RFC 2396, Uniform Resource Identifiers (URI):
Generic Syntax; see the Bibliography. software_name shall be a sequence of UTF-8-encoded characters that
have been escaped with one pass of URL escaping (see 14.10.3.2, “URL Strings”). That is, to recover the
original software name, software_name shall be unescaped and then treated as a sequence of UTF-8
characters. The actual software names shall be compared in a case-sensitive fashion.
Software names shall be second-class names (see Annex E).
EXAMPLE
The URI for Adobe Acrobat is
vnd.adobe.swname:ADBE_Acrobat
13.2.7.4.3
Version arrays
The L, H, LI, and HI entries shall be used to specify a range of software versions. L and H shall be version
arrays containing zero or more non-negative integers representing subversion numbers. The first integer shall
be the major version numbers, and subsequent integers shall be increasingly minor. H shall be greater than or
equal to L, according to the following rules for comparing version arrays:
Algorithm: Comparing version arrays
a) An empty version array shall be treated as infinity; that is, it shall be considered greater than any other
version array except another empty array. Two empty arrays are equal.
b) When comparing arrays that contain different numbers of elements, the smaller array shall be implicitly
padded with zero-valued integers to make the number of elements equal.
EXAMPLE
When comparing [5 1 2 3 4] to [5], the latter is treated as [5 0 0 0 0].
c) The corresponding elements of the arrays shall be compared, starting with the first. When a difference is
found, the array containing the larger element shall be considered to have the larger version number. If no
differences are found, the versions are equal.
If a version array contains negative numbers, it shall be considered non-viable, as is the enclosing software
identifier.
13.2.7.5
Monitor Specifier
A monitor specifier is an integer that shall identify a physical monitor attached to a system. It may have one of
the values in Table 293:
505
Table 293 - Monitor specifier values
Value
Description
0
The monitor containing the largest section of the document window
1
The monitor containing the smallest section of the document window
2
Primary monitor. If no monitor is considered primary, shall treat as
case 0
3
Monitor with the greatest colour depth
4
Monitor with the greatest area (in pixels squared)
5
Monitor with the greatest height (in pixels)
6
Monitor with the greatest width (in pixels)
For some of these values, it is possible have a “tie” at play-time; for example, two monitors might have the
same colour depth. Ties may be broken in an implementation-dependent manner.
13.3
Sounds
A sound object (PDF 1.2) shall be a stream containing sample values that define a sound to be played through
the computer’s speakers. The Sound entry in a sound annotation or sound action dictionary (see Table 185
and Table 208) shall identify a sound object representing the sound to be played when the annotation is
activated.
Since a sound object is a stream, it may contain any of the standard entries common to all streams, as
described in Table 5. In particular, if it contains an F (file specification) entry, the sound shall be defined in an
external file. This sound file shall be self-describing, containing all information needed to render the sound; no
additional information need be present in the PDF file.
NOTE
The AIFF, AIFF-C (Mac OS), RIFF (. wav), and snd (. au) file formats are all self-describing.
If no F entry is present, the sound object itself shall contain the sample data and all other information needed to
define the sound. Table 294 shows the additional dictionary entries specific to a sound object.
Table 294 - Additional entries specific to a sound object
Key
Type
Value
Type
name
(Optional) The type of PDF object that this dictionary describes; if present,
shall be Sound for a sound object.
R
number
(Required) The sampling rate, in samples per second.
C
integer
(Optional) The number of sound channels. Default value: 1.
B
integer
(Optional) The number of bits per sample value per channel. Default value: 8.
E
name
(Optional) The encoding format for the sample data:
Raw Unspecified or unsigned values in the range 0 to 2B − 1
Signed Twos-complement values
muLaw m-law-encoded samples
ALaw A-law-encoded samples
Default value: Raw.
506
Table 294 - Additional entries specific to a sound object (continued)
Key
Type
Value
CO
name
(Optional) The sound compression format used on the sample data. (This is
separate from any stream compression specified by the sound object’s Filter
entry; see Table 5 and
7.4,
“Filters.”) If this entry is absent, sound
compression shall not be used; the data contains sampled waveforms that
shall be played at R samples per second per channel.
CP
(various)
(Optional) Optional parameters specific to the sound compression format
used.
No standard values have been defined for the CO and CP entries.
Sample values shall be stored in the stream with the most significant bits first (big-endian order for samples
larger than 8 bits). Samples that are not a multiple of 8 bits shall be packed into consecutive bytes, starting at
the most significant end. If a sample extends across a byte boundary, the most significant bits shall be placed in
the first byte, followed by less significant bits in subsequent bytes. For dual-channel stereophonic sounds, the
samples shall be stored in an interleaved format, with each sample value for the left channel (channel 1)
preceding the corresponding sample for the right (channel 2).
To maximize the portability of PDF documents containing embedded sounds, conforming readers should
support at least the following formats (assuming the platform has sufficient hardware and OS support to play
sounds at all):
R
8000, 11,025, or 22,050 samples per second
C
1 or 2 channels
B
8 or 16 bits per channel
E Raw, Signed, or muLaw encoding
If the encoding (E) is Raw or Signed, R shall be 11,025 or 22,050 samples per channel. If the encoding is
muLaw, R shall be 8000 samples per channel, C shall be 1 channel, and B shall be 8 bits per channel. Sound
players shall convert between formats, downsample rates, and combine channels as necessary to render
sound on the target platform.
13.4
Movies
The features described in this sub-clause are obsolescent and their use is no longer recommended. They are
superseded by the general multimedia framework described in 13.2, “Multimedia.”
PDF shall embed movies within a document by means of movie annotations (see 12.5.6.17, “Movie
Annotations”). Despite the name, a movie may consist entirely of sound with no visible images to be displayed
on the screen. The Movie and A (activation) entries in the movie annotation dictionary shall refer, respectively,
to a movie dictionary (Table 295) that shall describe the static characteristics of the movie and a movie
activation dictionary (Table 296) that shall specify how it shall be presented.
507
Table 295 - Entries in a movie dictionary
Key
Type
Value
F
file specification
(Required) A file specification identifying a self-describing movie file.
NOTE
The format of a self-describing movie file shall be left
unspecified, and there is no guarantee of portability.
Aspect
array
(Optional) The width and height of the movie’s bounding box, in pixels,
and shall be specified as [ width height ]. This entry should be omitted
for a movie consisting entirely of sound with no visible images.
Rotate
integer
(Optional) The number of degrees by which the movie shall be rotated
clockwise relative to the page. The value shall be a multiple of 90.
Default value: 0.
Poster
boolean or stream
(Optional) A flag or stream specifying whether and how a poster image
representing the movie shall be displayed. If this value is a stream, it
shall contain an image XObject (see 8.9, “Images”) to be displayed as
the poster. If it is the boolean value true, the poster image shall be
retrieved from the movie file; if it is false, no poster shall be displayed.
Default value: false.
Table 296 - Entries in a movie activation dictionary
Key
Type
Value
Start
(various)
(Optional) The starting time of the movie segment to be played. Movie
time values shall be expressed in units of time based on a time scale,
which defines the number of units per second. The default time scale
shall be defined in the movie data. The starting time shall be nominally
a non-negative 64-bit integer, specified as follows:
If it is representable as an integer (subject to the implementation
limit for integers, as described in Annex C), it shall be specified as
such.
If it is not representable as an integer, it shall be specified as an
8-byte string representing a 64-bit twos-complement integer, most
significant byte first.
If it is expressed in a time scale different from that of the movie
itself, it shall be represented as an array of two values: an integer
or byte string denoting the starting time, followed by an integer
specifying the time scale in units per second.
If this entry is omitted, the movie shall be played from the beginning.
Duration
(various)
(Optional) The duration of the movie segment to be played, that shall
be specified in the same form as Start. If this entry is omitted, the
movie shall be played to the end.
Rate
number
(Optional) The initial speed at which to play the movie. If the value of
this entry is negative, the movie shall be played backward with respect
to Start and Duration. Default value: 1.0.
Volume
number
(Optional) The initial sound volume at which to play the movie, in the
range −1.0 to 1.0. Higher values shall denote greater volume; negative
values shall mute the sound. Default value: 1.0.
ShowControls
boolean
(Optional) A flag specifying whether to display a movie controller bar
while playing the movie. Default value: false.
508
Table 296 - Entries in a movie activation dictionary (continued)
Key
Type
Value
Mode
name
(Optional) The play mode for playing the movie:
Once
Play once and stop.
Open
Play and leave the movie controller bar open.
Repeat
Play repeatedly from beginning to end until stopped.
Palindrome Play continuously forward and backward until stopped.
Default value: Once.
Synchronous
boolean
(Optional) A flag specifying whether to play the movie synchronously
or asynchronously. If this value is true, the movie player shall retain
control until the movie is completed or dismissed by the user. If the
value is false, the player shall return control to the conforming reader
immediately after starting the movie. Default value: false.
FWScale
array
(Optional) The magnification (zoom) factor at which the movie shall be
played. The presence of this entry implies that the movie shall be
played in a floating window. If the entry is absent, the movie shall be
played in the annotation rectangle.
The value of the entry shall be an array of two positive integers,
[numerator denominator ], denoting a rational magnification factor for
the movie. The final window size, in pixels, shall be
(numerator ÷ denominator) × Aspect
where the value of Aspect shall be taken from the movie dictionary
(see Table 295).
FWPosition
array
(Optional) For floating play windows, the relative position of the
window on the screen. The value shall be an array of two numbers
[horiz vert ]
each in the range 0.0 to 1.0, denoting the relative horizontal and
vertical position of the movie window with respect to the screen.
EXAMPLE
The value [ 0.5 0.5 ] centers the window on the
screen.
Default value: [ 0.5
0.5 ].
13.5
Alternate Presentations
Beginning with PDF 1.4, a PDF document shall contain alternate presentations, which specify alternate ways in
which the document may be viewed. The optional AlternatePresentations entry (PDF 1.4) in a document’s
name dictionary (see Table 31) contains a name tree that maps name strings to the alternate presentations
available for the document.
NOTE 1
Since conforming readers are not required to support alternate presentations, authors of documents containing
alternate presentations should define the files such that something useful and meaningful can be displayed
and printed. For example, if the document contains an alternate presentation slideshow of a sequence of
photographs, the photographs should be viewable in a static form by viewers that are not capable of playing
the slideshow.
As of PDF 1.5, the only type of alternate presentation is a slideshow. Slideshows may be invoked by means of
JavaScript actions (see 12.6.4.16, “JavaScript Actions”) initiated by user action on an interactive form element
(see 12.7, “Interactive Forms”).
The following table shows the entries in a slideshow dictionary.
509
Table 297 - Entries in a slideshow dictionary
Key
Type
Value
Type
name
(Required; PDF 1.4) The type of PDF object that this dictionary describes;
shall be SlideShow for a slideshow dictionary.
Subtype
name
(Required; PDF 1.4) The subtype of the PDF object that this dictionary
describes; shall be Embedded for a slideshow dictionary.
Resources
name
(Required; PDF 1.4) A name tree that maps name strings to objects
tree
referenced by the alternate presentation.
NOTE
Even though PDF treats the strings in the name tree as strings
without a specified encoding, the slideshow shall interpret
them as UTF-8 encoded Unicode.
StartResource
byte
(Required; PDF 1.4) A byte string that shall match one of the strings in the
string
Resources entry. It shall define the root object for the slideshow
presentation.
NOTE 2
The Resources name tree represents a virtual file system to the slideshow. It associates strings (“file names”)
with PDF objects that represent resources used by the slideshow. For example, a root stream may reference a
file name, which would be looked up in the Resources name tree, and the corresponding object would be
loaded as the file. (This virtual file system is flat; that is, there is no way to reference subfolders.)
NOTE 3
Typically, images are stored in the document as image XObjects (see 8.9.5, “Image Dictionaries”), thereby
allowing them to be shared between the standard PDF representation and the slideshow. Other media objects
are stored or embedded file streams (see 7.11.4, “Embedded File Streams”).
To allow conforming readers to verify content against their own supported features all referenced objects shall
include a Type entry in their dictionary, even when the Type entry is normally optional for a given object.
EXAMPLE
The following example illustrates the use of alternate presentation slideshows.
1 0 obj
<</Type /Catalog
/Pages 2 0 R
/Names 3 0 R
% Indirect reference to name dictionary
>>
3 0 obj
% The name dictionary
<</AlternatePresentations 4 0 R >>
endobj
4 0 obj
% The alternate presentations name tree
<</Names [(MySlideShow) 5 0 R]>>
endobj
5 0 obj
% The slideshow definition
<</Type /SlideShow
/Subtype /Embedded
/Resources <</Names [ (mysvg.svg) 31 0R
(abc0001.jpg) 35 0 R (abc0002.jpg) 36 0 R
(mysvg.js) 61 0 R (mymusic.mp3) 65 0 R ]>>
/StartResource (mysvg.svg)
>>
31 0 obj
<</Type /Filespec
% The root object, which
/F (mysvg.svg)
% points to an embedded file stream
/EF <</F 32 0 R>>
>>
endobj
32 0 obj
% The embedded file stream
<</Type /EmbeddedFile
/Subtype /image#2Fsvg+xml
510
/Length 72
>>
stream
<?xml version="1.0" standalone="no"?>
<svg><!-- Some SVG goes here--></svg>
endstream
endobj
% ... other objects not shown
13.6
3D Artwork
13.6.1
General
Starting with PDF 1.6, collections of three-dimensional objects, such as those used by CAD software, may be
embedded in PDF files. Such collections are often called 3D models; in the context of PDF, they shall be
referred to as 3D artwork. The PDF constructs for 3D artwork support the following features:
3D artwork may be rendered within a page; that is, not as a separate window or user interface element.
Multiple instances of 3D artwork may appear within a page or document.
Specific views of 3D artwork may be specified, including a default view that shall be displayed initially and
other views that may be selected. Views may have names that can be presented in a user interface.
(PDF 1.7) Conforming readers may specify how 3D artwork shall be rendered, coloured, lit, and cross-
sectioned, without the use of embedded JavaScript. They may also specify state information that shall be
applied to individual nodes (3D graphic objects or collections thereof) in the 3D artwork, such as visibility,
opacity, position, or orientation.
Pages containing 3D artwork may be printed.
Users may rotate and move the artwork, enabling them to examine complex objects from any angle or
orientation.
(PDF 1.7) Keyframe animations contained in 3D artwork may be played in specific styles and timescales,
without programatic intervention.
JavaScripts and other software may programmatically manipulate objects in the artwork, creating dynamic
presentations in which objects move, spin, appear, and disappear.
(PDF 1.7) The activation of 3D artwork can trigger the display of additional user interface items in the
conforming reader. Such items may include model trees and toolbars.
Two-dimensional (2D) content such as labels may be overlaid on 3D artwork. This feature is not the same
as the ability to apply 2D markup annotations.
(PDF 1.7) 2D markup annotations may be applied to specific views of the 3D artwork, using the ExData
entry to identify the 3D annotation and the 3D view in that annotation.
The following sub-clauses describe the major PDF objects that relate to 3D artwork, as well as providing
background information on 3D graphics:
3D annotations provide a virtual camera through which the artwork shall be viewed. (see 13.6.2, “3D
Annotations”).
511
3D streams shall contain the actual specification of a piece of 3D artwork (see 13.6.3, “3D Streams””). This
specification supports the Standard ECMA-363, Universal 3D file format developed by the 3D Industry
Forum (see Bibliography).
3D views shall specify information about the relationship between the camera and the 3D artwork (see
13.6.4, “3D Views”). Beginning with PDF 1.7, views may also describe additional parameters such as
render mode, lighting, cross sections, and nodes. Nodes shall be 3D graphic objects or collections thereof.
3D coordinate systems are described in 13.6.5, “Coordinate Systems for 3D.”
2D markup annotations applied to 3D artwork views are described in 13.6.6, “3D Markup.”
NOTE
Many of the concepts and terminology of 3D rendering are beyond the scope of this reference. Readers
interested in further information are encouraged to consult outside references.
13.6.2
3D Annotations
3D annotations (PDF 1.6) are the means by which 3D artwork shall be represented in a PDF document.
Table 298 shows the entries specific to a 3D annotation dictionary. Table 164 describes the entries common to
all annotation dictionaries.
In addition to these entries, a 3D annotation shall provide an appearance stream in its AP entry (see Table 164)
that has a normal appearance (the N entry in Table 168). This appearance may be used by applications that do
not support 3D annotations and by all applications for the initial display of the annotation.
Table 298 - Additional entries specific to a 3D annotation
Key
Type
Value
Subtype
name
(Required) The type of annotation that this dictionary describes; shall be
3D for a 3D annotation.
3DD
stream
or
(Required) A 3D stream (see 13.6.3, “3D Streams”) or 3D reference
dictionary
dictionary (see 13.6.3.3, “3D Reference Dictionaries”) that specifies the
3D artwork to be shown.
3DV
(various)
(Optional) An object that specifies the default initial view of the 3D artwork
that shall be used when the annotation is activated. It may be either a 3D
view dictionary (see 13.6.4, “3D Views”) or one of the following types
specifying an element in the VA array in the 3D stream (see Table 300):
An integer specifying an index into the VA array.
A text string matching the IN entry in one of the views in the VA
array.
A name that indicates the first (F), last (L), or default (D) entries in
the VA array.
Default value: the default view in the 3D stream object specified by 3DD.
3DA
dictionary
(Optional) An activation dictionary (see Table 299) that defines the times
at which the annotation shall be activated and deactivated and the state
of the 3D artwork instance at those times. Default value: an activation
dictionary containing default values for all its entries.
3DI
boolean
(Optional) A flag indicating the primary use of the 3D annotation. If true, it
is intended to be interactive; if false, it is intended to be manipulated
programmatically, as with a JavaScript animation. Conforming readers
may present different user interface controls for interactive
3D
annotations (for example, to rotate, pan, or zoom the artwork) than for
those managed by a script or other mechanism.
Default value: true.
512

 

 

 

 

 

 

 

Content      ..     11      12      13      14     ..