pdf viewer control in asp net c# : How to add picture to pdf software control project winforms web page asp.net UWP PDF32000_20085-part2369

© 
Adobe Systems Incorporated 2008 – All rights reserved
43
PDF 32000-1:2008
Table 15 lists the contents of the trailer dictionary. 
NOTE
Table 19  defines  an  additional  entry, XRefStm,  that  appears  only  in  the  trailer  of  hybrid-reference  files, 
described in 7.5.8.4, "Compatibility with Applications That Do Not Support Compressed Reference Streams."
EXAMPLE
This example shows a trailer for a file that has never been updated (as indicated by the absence of a Prev 
entry in the trailer dictionary).
trailer
<<  /Size  22
/Root  2 0 R
/Info  1 0 R
/ID [ < 81b14aafa313db63dbd6f981e49f94f4 >
< 81b14aafa313db63dbd6f981e49f94f4 >
]
>>
startxref
18799
%%EOF
Table 15 –  Entries in the file trailer dictionary  
Key
Type
Value
Size
integer
(Required; shall not be an indirect reference) The total number of entries in 
the file’s cross-reference table, as defined by the combination of the original 
section and all update sections. Equivalently, this value shall be 1 greater 
than the highest object number defined in the file. 
Any object in a cross-reference section whose number is greater than this 
value shall be ignored and defined to be missing by a conforming reader.
Prev
integer
(Present only if the file has more than one cross-reference section; shall be 
an  indirect  reference) The byte offset in the decoded stream from the 
beginning of the file to the beginning of the previous cross-reference section. 
Root
dictionary
(Required; shall be an indirect reference) The catalog dictionary for the PDF 
document contained in the file (see 7.7.2, "Document Catalog"). 
Encrypt
dictionary
(Required  if document is encrypted; PDF 1.1) The document’s encryption 
dictionary (see 7.6, "Encryption"). 
Info
dictionary
(Optional;  shall  be  an  indirect  reference) The document’s information 
dictionary (see 14.3.3, "Document Information Dictionary"). 
ID
array
(Required if an Encrypt entry is present; optional otherwise; PDF 1.1) An 
array  of  two  byte-strings  constituting  a  file  identifier  (see  14.4,  "File 
Identifiers") for the file. If there is an Encrypt entry this array and the two 
byte-strings shall be direct objects and shall be unencrypted. 
NOTE 1
Because the ID  entries are not encrypted it is possible to check 
the ID   key  to  assure  that  the  correct  file  is  being  accessed 
without decrypting the file. The restrictions that the string be a 
direct object and not be encrypted assure that this is possible.
NOTE 2
Although this entry is optional, its absence might prevent the file 
from functioning in some workflows that depend on files being 
uniquely identified. 
NOTE 3
The values of the ID  strings are used as input to the encryption 
algorithm. If these strings were indirect, or if the ID  array were 
indirect,  these strings would be encrypted when written.  This 
would result in a circular condition for a reader: the ID  strings 
must  be  decrypted  in  order  to  use  them  to  decrypt  strings, 
including the ID  strings themselves. The preceding restriction 
prevents this circular condition.
How to add picture to pdf - insert images into PDF in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Sample C# code to add image, picture, logo or digital photo into PDF document page using PDF page editor control
add a jpeg to a pdf; adding an image to a pdf form
How to add picture to pdf - VB.NET PDF insert image library: insert images into PDF in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Guide VB.NET Programmers How to Add Images in PDF Document
adding an image to a pdf in preview; add image in pdf using java
PDF 32000-1:2008
44
© 
Adobe Systems Incorporated 2008 – All rights reserved
7.5.6
Incremental Updates
The contents of a PDF file can be updated incrementally without rewriting the entire file. When updating a PDF 
file incrementally, changes shall be appended to the end of the file, leaving its original contents intact. 
NOTE 1
The main advantage to updating a file in this way is that small changes to a large document can be saved 
quickly. There are additional advantages: 
In certain contexts, such as when editing a document across an HTTP connection or using OLE embedding (a 
Windows-specific  technology),  a  conforming  writer  cannot  overwrite  the  contents  of  the  original  file. 
Incremental updates may be used to save changes to documents in these contexts. 
NOTE 2
The resulting file has the structure shown in Figure 3. A complete example of an updated file is shown in H.7, 
"Updating Example". 
A  cross-reference  section  for  an  incremental  update  shall  contain  entries  only  for  objects  that  have  been 
changed,  replaced,  or  deleted.  Deleted  objects  shall  be  left  unchanged  in  the  file,  but  shall be  marked  as 
deleted by means of their cross-reference entries. The added trailer shall contain all the entries except the Prev 
entry (if present) from the previous trailer, whether modified or not. In addition, the added trailer dictionary shall 
contain a Prev entry giving the location of the previous cross-reference  section (see Table 15). Each trailer 
shall be terminated by its own end-of-file (%%EOF) marker. 
NOTE 3
As shown in Figure 3, a file that has been updated several times contains several trailers. Because updates 
are appended to PDF files, a file may have several copies of an object with the same object identifier (object 
number and generation number).
EXAMPLE
Several copies of an object can occur if a text annotation (see 12.5, "Annotations") is changed several 
times and the file is saved between changes. Because the text annotation object is not deleted, it retains 
the same object number and generation number as before. The updated copy of the object is included in 
the new update section added to the file. 
The update’s cross-reference section shall include a byte offset to this new copy of the object, overriding the 
old byte offset contained in the original cross-reference section. When a conforming reader reads the file, it 
shall build its cross-reference information in such a way that the most recent copy of each object shall be the 
one accessed from the file. 
In  versions  of  PDF  1.4  or  later  a  conforming  writer  may  use  the Version  entry  in  the  document’s  catalog 
dictionary (see 7.7.2, "Document Catalog") to override the version specified in the header. A conforming writer 
may  also need  to  update  the  Extensions  dictionary,  see  7.12,  “Extensions  Dictionary”,  if  the  update  either 
deleted or added developer-defined extensions.
NOTE 4
The version entry enables the version to be altered when performing an incremental update. 
C# TIFF: How to Insert & Burn Picture/Image into TIFF Document
Support adding image or picture to an existing or new new REImage(@"c:\ logo.png"); // add the image powerful & profession imaging controls, PDF document, tiff
add picture to pdf in preview; how to add image to pdf reader
VB.NET Image: Image Cropping SDK to Cut Out Image, Picture and
VB.NET image cropper control SDK; VB.NET image cropping method to crop picture / photo; you can adjust the size of created cropped image file, add antique effect
attach image to pdf form; how to add image to pdf file
© 
Adobe Systems Incorporated 2008 – All rights reserved
45
PDF 32000-1:2008
Figure 3 –  Structure of an updated PDF file
7.5.7
Object Streams
An object stream , is a stream object in which a sequence of indirect objects may be stored, as an alternative to 
their being stored at the outermost file level. 
NOTE 1
Object streams are first introduced in PDF 1.5. The purpose of object streams is to allow indirect objects other 
than streams to be stored more compactly by using the facilities provided by stream compression filters. 
NOTE 2
The  term  “compressed  object”  is  used  regardless  of  whether  the  stream  is  actually  encoded  with  a 
compression filter.
The following objects shall not be stored in an object stream:
Stream objects
Objects with a generation number other than zero
A document’s encryption dictionary (see 7.6, "Encryption")
An object representing the value of the Length entry in an object stream dictionary
Header
Original
body
Original
cross-reference
section
Updated trailer n
Body update 1
Cross-reference
section 1
Body update n
Cross-reference
section n
Original trailer
Updated trailer 1
VB.NET TIFF: How to Draw Picture & Write Text on TIFF Document in
drawing As RaterEdgeDrawing = New RaterEdgeDrawing() drawing.Picture = "RasterEdge" drawing provide powerful & profession imaging controls, PDF document, tiff
add an image to a pdf acrobat; adding images to pdf forms
VB.NET Image: VB.NET Codes to Add Antique Effect to Image with .
mature technology to replace a picture's original colors add the glow and noise, and add a little powerful & profession imaging controls, PDF document, image
add picture to pdf form; add photo to pdf form
PDF 32000-1:2008
46
© 
Adobe Systems Incorporated 2008 – All rights reserved
In linearized files (see Annex F), the document catalog, the linearization dictionary, and page objects shall 
not appear in an object stream.
NOTE 3
Indirect references to objects inside object streams use the normal syntax: for example, 14 0 R. Access to 
these  objects requires  a  different way of storing  cross-reference information; see  7.5.8, "Cross-Reference 
Streams." Use of compressed objects requires a PDF 1.5 conforming reader. However, compressed objects 
can be stored in a manner that a PDF 1.4 conforming reader can ignore.
In addition to the regular keys for streams shown in Table 5, the stream dictionary describing an object stream 
contains the following entries: 
A conforming writer determines which objects, if any, to store in object streams. 
EXAMPLE 1
It can be useful to store objects having common characteristics together, such as “fonts on page 1,” or 
“Comments for draft #3.” These objects are known as a collection
NOTE 4
To avoid a degradation of performance, such as would occur when downloading and decompressing a large 
object stream to access a single compressed object, the number of objects  in an individual object stream 
should be limited. This may require a group of object streams to be linked as a collection, which can be done 
by means of the Extends entry in the object stream dictionary. 
NOTE 5
Extends may also be used when a collection is being updated to include new objects. Rather than modifying 
the original object stream, which could entail duplicating much of the stream data, the new objects can be 
stored  in  a  separate  object  stream.  This  is  particularly  important  when  adding  an  update  section  to  a 
document.
The stream data in an object stream shall contain the following items:
N pairs of integers separated by white space, where the first integer in each pair shall represent the object 
number  of a compressed object  and the second  integer shall  represent  the  byte  offset in the decoded 
stream of that object, relative to the first object stored in the object stream, the value of the stream's first 
entry. The offsets shall be in increasing order.
NOTE 6
There is no restriction on the order of objects in the object stream; in particular, the objects need not be stored 
in object-number order.
The value of the First entry in the stream dictionary shall be the byte offset in the decoded stream of the 
first object. 
The N objects  are stored  consecutively.  Only  the  object  values  are  stored  in  the  stream;  the obj  and 
endobj keywords shall not be used. 
NOTE 7
A compressed dictionary or array may contain indirect references. 
An object in an object stream shall not consist solely of an object reference. 
Table 16 –  Additional entries specific to an object stream dictionary  
key
type
description
Type
name
(Required) The type of PDF object that this dictionary describes; shall be 
ObjStm for an object stream.
N
integer
(Required) The number of indirect objects stored in the stream.
First
integer
(Required) The byte offset in the decoded stream of the first compressed 
object.
Extends
stream
(Optional) A reference to another object stream, of which the current object 
stream shall be considered an extension. Both streams are considered part 
of a collection of object streams (see below). A given collection consists of a 
set of streams whose Extends links form a directed acyclic graph.
VB.NET Image: Image Scaling SDK to Scale Picture / Photo
Framework application; VB.NET sample code for how to scale image / picture; Frequently asked questions about RasterEdge VB.NET image scaling control SDK add-on.
add jpg to pdf file; add photo to pdf for
VB.NET Image: Create Code 11 Barcode on Picture & Document Using
file, apart from above mentioned .NET core imaging SDK and .NET barcode creator add-on, you also need to buy .NET PDF document editor add-on, namely, RasterEdge
adding jpg to pdf; add picture to pdf document
© 
Adobe Systems Incorporated 2008 – All rights reserved
47
PDF 32000-1:2008
EXAMPLE 2
3 0 R
In an encrypted  file (i.e., entire  object stream is encrypted), strings occurring anywhere in an object stream 
shall not be separately encrypted.
A conforming writer shall store the first object immediately after the last byte offset. A conforming reader shall 
rely on the First entry in the stream dictionary to locate the first object.
An object stream itself, like any stream, shall be an indirect object, and therefore, there shall be an entry for it in 
a  cross-reference  table  or  cross-reference  stream  (see  7.5.8,  "Cross-Reference  Streams"),  although  there 
might not be any references to it (of the form 243 0 R). 
The generation number of an object stream and of  any compressed object shall be zero. If either an object 
stream or a compressed object is deleted and the object number is freed, that object number shall be reused 
only  for  an  ordinary  (uncompressed)  object  other  than  an  object  stream.  When  new  object  streams  and 
compressed objects are created, they shall always be assigned new object numbers, not old ones taken from 
the free list.
EXAMPLE 3
The following shows three objects (two fonts and a font descriptor) as they would be represented in a 
PDF 1.4 or earlier file, along with a cross-reference table. 
11 0 obj
<< /Type /Font
/Subtype /TrueType
...other entries...
/FontDescriptor 12 0 R
>>
endobj
12 0 obj
<< /Type /FontDescriptor
/Ascent 891
...other entries...
/FontFile2 22 0 R
>>
endobj
13 0 obj
<< /Type /Font
/Subtype /Type0
...other entries...
/ToUnicode 10 0 R
>>
endobj
...
xref
0 32
0000000000 65535 f
... cross-reference entries for objects 1 through 10 ...
0000001434 00000 n 
0000001735 00000 n 
0000002155 00000 n
... cross-reference entries for objects 14 and on ...
trailer
<< /Size 32
/Root ...
>>
NOTE 8
For readability, the object stream has been shown unencoded. In a real PDF 1.5 file, Flate encoding would 
typically be used to gain the benefits of compression. 
C# Word - Paragraph Processing in C#.NET
Add references: C# users can set paragraph properties and create content such as run, footnote, endnote and picture in a paragraph.
adding a jpg to a pdf; add a picture to a pdf
VB.NET Image: Image Resizer Control SDK to Resize Picture & Photo
NET Method to Resize Image & Picture. Here we this VB.NET image resizer control add-on, can provide powerful & profession imaging controls, PDF document, image
add photo to pdf file; acrobat insert image into pdf
PDF 32000-1:2008
48
© 
Adobe Systems Incorporated 2008 – All rights reserved
EXAMPLE 4
The following shows the same objects from the previous example stored in an object stream in a PDF 1.5 
file, along with a cross-reference stream.
The cross-reference stream (see 7.5.8, "Cross-Reference Streams") contains entries for the fonts (objects 
11 and 13) and the descriptor (object 12), which are compressed objects in an object stream. The first 
field of these entries is the entry type (2), the second field is the number of the object stream (15), and the 
third field is the position within the sequence of objects in the object stream (0, 1, and 2). The cross-
reference stream also contains a type 1 entry for the object stream itself.
15 0 obj
% The object stream
<< /Type /ObjStm
/Length 1856
/N 3 
% The number of objects in the stream
/First 24
% The byte offset in the decoded stream of the first object
% The object numbers and offsets of the objects, relative to the first are shown on the first line of
 the stream (i.e., 11 0 12 547 13 665).
>>
stream
11 0 12 547 13 665
<< /Type /Font
/Subtype /TrueType
...other keys...
/FontDescriptor 12 0 R
>>
<< /Type /FontDescriptor
/Ascent 891
...other keys...
/FontFile2 22 0 R
>>
<< /Type /Font
/Subtype /Type0
...other keys...
/ToUnicode 10 0 R
>>
...
endstream
endobj
99 0 obj
% The cross-reference stream
<< /Type /XRef
/Index [0 32]
% This section has one subsection with 32 objects
/W [1 2 2]
% Each entry has 3 fields: 1, 2 and 2 bytes in width,
% respectively
/Filter /ASCIIHexDecode
% For readability in this example
/Size 32
... 
>>
stream
00 0000 FFFF
... cross-references for objects 1 through 10 ...
02 000F 0000
02 000F 0001
02 000F 0002
... cross-reference for object 14 ...
01 BA5E 0000
...
endstream
endobj
startxref
54321
%%EOF
NOTE 9
The number 54321 in Example 4 is the offset for object 99 0.
© 
Adobe Systems Incorporated 2008 – All rights reserved
49
PDF 32000-1:2008
7.5.8
Cross-Reference Streams
7.5.8.1 General
Beginning with PDF 1.5, cross-reference information may be stored in a cross-reference stream  instead of in a 
cross-reference table. Cross-reference streams provide the following advantages:
A more compact representation of cross-reference information
The ability to access compressed objects that are stored in object streams (see 7.5.7, "Object Streams") 
and to allow new cross-reference entry types to be added in the future
Cross-reference streams are stream objects (see 7.3.8, "Stream Objects"), and contain a dictionary and a data 
stream.  Each  cross-reference  stream  contains  the  information  equivalent  to  the  cross-reference  table  (see 
7.5.4, "Cross-Reference Table") and trailer (see 7.5.5, "File Trailer") for one cross-reference section. 
EXAMPLE
In this example, the trailer dictionary entries are stored in the stream dictionary, and the cross-reference 
table entries are stored as the stream data.
... objects ...
12 0 obj
% Cross-reference stream
<< /Type /XRef
% Cross-reference stream dictionary
/Size ...
/Root ...
>>
stream
... Stream data containing cross-reference information ... 
endstream
endobj
... more objects ...
startxref 
byte_offset_of_cross-reference_stream (points to object 12)
%%EOF
The value following the startxref keyword shall be the offset of the cross-reference stream rather than the xref
keyword. For files that use cross-reference streams entirely (that is, files that are not hybrid-reference files; see 
7.5.8.4, "Compatibility with Applications That Do Not Support Compressed Reference Streams"), the keywords 
xref and  trailer shall no longer be used. Therefore, with the exception of the  startxref address  %%EOF
segment and comments, a file may be entirely a sequence of objects. 
In  linearized  files  (see  F.3,  "Linearized  PDF  Document  Structure"),  the  document  catalog,  the  linearization 
dictionary, and page objects shall not appear in an object stream.
7.5.8.2 Cross-Reference Stream Dictionary
Cross-reference streams may contain the entries shown in Table 17 in addition to the entries common to all 
streams  (Table 5)  and  trailer  dictionaries  (Table 15).  Since  some  of  the  information  in  the  cross-reference 
stream is needed by the conforming reader to construct the index that allows indirect references to be resolved, 
the entries in cross-reference streams shall be subject to the following restrictions:
The  values  of  all  entries  shown  in  Table 17  shall  be  direct  objects;  indirect  references  shall  not  be 
permitted. For arrays (the Index  and W entries), all of their elements shall be direct objects as well. If the 
stream is encoded, the Filter and DecodeParms entries in Table 5 shall also be direct objects. 
Other cross-reference stream entries not listed in Table 17 may be indirect; in fact, some (such as Root in 
Table 15) shall be indirect.
PDF 32000-1:2008
50
© 
Adobe Systems Incorporated 2008 – All rights reserved
The cross-reference stream shall not be encrypted and strings appearing in the cross-reference stream 
dictionary shall not be encrypted. It shall not have a Filter entry that specifies a Crypt filter (see 7.4.10, 
"Crypt Filter"). 
7.5.8.3 Cross-Reference Stream Data
Each entry in a cross-reference stream shall have one or more fields, the first of which designates the entry’s 
type (see Table 18). In PDF 1.5 through PDF 1.7, only types 0, 1, and 2 are allowed. Any other value shall be 
interpreted as a reference to the null object, thus permitting new entry types to be defined in the future.
Table 17 –  Additional entries specific to a cross-reference stream dictionary  
key
type
description
Type
name
(Required) The type of PDF object that this dictionary describes; shall be 
XRef for a cross-reference stream.
Size
integer
(Required) The number one greater than the highest object number used in 
this section or in any section for which this shall be an update. It shall be 
equivalent to the Size entry in a trailer dictionary.
Index
array
(Optional) An array containing a pair of integers for each subsection in this 
section. The first integer shall be the first object number in the subsection; 
the second integer shall be the number of entries in the subsection
The array shall be sorted in ascending order by object number. Subsections 
cannot overlap; an object number may have at most one entry in a section.
Default value: [0 Size].
Prev
integer
(Present  only if  the file  has  more  than  one cross-reference  stream;  not 
meaningful  in  hybrid-reference  files;  see  7.5.8.4,  "Compatibility  with 
Applications That Do Not Support Compressed Reference Streams") The 
byte  offset  in the  decoded  stream  from  the  beginning of  the  file  to  the 
beginning of the previous cross-reference stream. This entry has the same 
function as the Prev entry in the trailer dictionary (Table 15).
W
array
(Required) An array of integers representing the size of the fields in a single 
cross-reference  entry.  Table 18  describes  the  types  of  entries  and  their 
fields. For PDF 1.5, W always contains three integers; the value of each 
integer  shall  be  the  number  of  bytes  (in  the  decoded  stream)  of  the 
corresponding field. 
EXAMPLE
[1 2 1] means that the fields are one byte, two bytes, and 
one byte, respectively.
 value  of  zero  for  an  element  in  the W  array  indicates  that  the 
corresponding field shall not be present in the stream, and the default value 
shall be used, if there is one. If the first element is zero, the type field shall 
not be present, and shall default to type 1.
The sum of the items shall be the total length of each entry; it can be used 
with the Index  array to determine the starting position of each subsection. 
Different cross-reference streams in a PDF file may use different values for 
W
© 
Adobe Systems Incorporated 2008 – All rights reserved
51
PDF 32000-1:2008
The fields are written in increasing order of field number; the length of each field shall be determined by the 
corresponding value in the W entry (see Table 17). Fields requiring more than one byte are stored with the 
high-order byte first. 
Like any stream, a cross-reference stream shall be an indirect object. Therefore, an entry for it shall exist in 
either  a  cross-reference  stream  (usually  itself)  or  in  a  cross-reference  table  (in  hybrid-reference  files;  see 
7.5.8.4, "Compatibility with Applications That Do Not Support Compressed Reference Streams").
7.5.8.4 Compatibility with Applications That Do Not Support Compressed Reference Streams
Readers designed only to support versions of PDF before PDF 1.5, and hence do not support cross-reference 
streams, cannot access objects that are referenced by cross-reference streams. If a file uses cross-reference 
streams exclusively, it cannot be opened by such readers. 
However, it is possible to construct a file called a hybrid-reference file that is readable by readers designed only 
to  support  versions  of  PDF  before  PDF  1.5.  Such  a  file  contains  objects  referenced  by  standard  cross-
reference tables in addition to objects in object streams that are referenced by cross-reference streams. 
In these files, the trailer dictionary may contain, in addition to the entry for trailers shown in Table 15, an entry, 
as shown in Table 19. This entry may be ignored by readers designed only to support versions of PDF before 
PDF 1.5, which therefore have no access to entries in the cross-reference stream the entry refers to. 
Table 18 –  Entries in a cross-reference stream  
Type
Field
Description
0
1
The type of this entry, which shall be 0. Type 0 entries define 
the linked list of free objects (corresponding to f entries in a 
cross-reference table).
2
The object number of the next free object.
3
The generation number to use if this object number is used 
again.
1
1
The type of this entry, which shall be 1. Type 1 entries define 
objects that are in use but are not compressed (corresponding 
to n entries in a cross-reference table).
2
The byte offset of the object, starting from the beginning of the 
file.
3
The generation number of the object. Default value: 0.
2
1
The type of this entry, which shall be 2. Type 2 entries define 
compressed objects.
2
The object number of the object stream in which this object is 
stored. (The generation number of the object stream shall be 
implicitly 0.)
3
The index of this object within the object stream.
Table 19 –  Additional entries in a hybrid-reference file’s trailer dictionary  
Key
Type
Value
XRefStm
integer
(Optional) The byte offset in the decoded stream from the beginning of the file 
of a cross-reference stream.
PDF 32000-1:2008
52
© 
Adobe Systems Incorporated 2008 – All rights reserved
The Size entry of the trailer shall be large enough to include all objects, including those defined in the cross-
reference stream referenced by the XRefStm  entry. However, to allow random access, a main cross-reference 
section shall contain entries for all objects numbered 0 through Size - 1 (see 7.5.4, "Cross-Reference Table"). 
Therefore, the XRefStm entry shall not be used in the trailer dictionary of the main cross-reference section but 
only in an update cross-reference section. 
When a conforming reader opens a hybrid-reference file, objects with entries in cross-reference streams are 
not hidden. When the conforming reader searches for an object, if an entry is not found in any given standard 
cross-reference section, the search shall proceed to a cross-reference stream specified by the XRefStm  entry 
before looking in the previous cross-reference section (the Prev entry in the trailer). 
Hidden objects, therefore, have two cross-reference entries. One is in the cross-reference stream. The other is 
a free entry in some previous section, typically the section referenced by the Prev entry. A conforming reader 
shall look in the cross-reference stream first, shall find the object there, and shall ignore the free entry in the 
previous  section.  A  reader  designed  only  to  support  versions  of  PDF  before  PDF  1.5  ignores  the  cross-
reference stream and looks in the previous section, where it finds the free entry. The free entry shall have a 
next-generation number of 65535 so that the object number shall not be reused.
There are limitations on which objects in a hybrid-reference file can be hidden without making the file appear 
invalid to readers designed only to support versions of PDF before PDF 1.5. In particular, the root of the PDF 
file and the document catalog (see 7.7.2, "Document Catalog") shall not be hidden, nor any object that is visible 
from the root. Such objects can be determined by starting from the root and working recursively:
In any dictionary that is visible, direct objects shall be visible. The value of any required key-value pair shall 
be visible. 
In any array that is visible, every element shall be visible.
Resource dictionaries in content streams shall be visible. Although a resource dictionary is not required, 
strictly  speaking,  the  content  stream  to  which  it  is  attached  is  assumed  to  contain  references  to  the 
resources. 
In general, the objects that may be hidden are optional objects specified by indirect references. A conforming 
reader can resolve those references by processing the cross-reference streams. In a reader designed only to 
support versions of PDF before PDF 1.5, the objects appear to be free, and the references shall be treated as 
references to the null object. 
EXAMPLE 1
The Outlines entry in the catalog dictionary is optional. Therefore, its value may be an indirect reference 
to a hidden object. A reader designed only to support versions of PDF before PDF 1.5 treats it as a 
reference to the null object, which is equivalent to having omitted the entry entirely; a conforming reader 
recognizes it. 
If the  value  of the Outlines entry is an indirect reference to a  visible object,  the entire outline  tree  shall be 
visible because nodes in the outline tree contain required pointers to other nodes. 
Items that shall be visible include the entire page tree, fonts, font descriptors, and width tables. Objects that 
may be hidden in a hybrid-reference file include the structure tree, the outline tree, article threads, annotations, 
destinations, Web Capture information, and page labels,. 
EXAMPLE 2
In this example, an ASCIIHexDecode filter is specified to make the format and contents of the cross-
reference stream readable. 
This example shows a  hybrid-reference file containing a  main cross-reference section and an update 
cross-reference section with an XRefStm  entry that points to a cross-reference stream (object 11), which 
in turn has references to an object stream (object 2).
In this example, the catalog (object 1) contains an indirect reference (3 0 R) to the root of the structure 
tree. The search for the object starts at the update cross-reference table, which has no objects in it. The 
search proceeds depending on the version of the conforming reader.
Documents you may be interested
Documents you may be interested