Select Git revision
-
David Mareček authoredDavid Mareček authored
pdf-notes 3.20 KiB
Name trees:
/Kids [references]
/Limits [(min-name) (max-name)]
/Names [(key1) val1 (key2) val2 ... (keyN) valN]
/Limits [(key1) (keyN)]
Number trees are like name trees but:
/Nums [key1 val1 ...] instead of /Names
/Limits [key1 keyN]
Destinations:
[page-object /XYZ left top zoom]
[page-object /Fit]
[page-object /FitV]
[page-object /FitH]
[page-object /FitR left bottom right top]
named dest
-> either /Dests in document catalog (a dictionary)
-> or via document name dictionary:
catalog -> /Names -> /Dests -> name tree
## \pdfdest name{<name>} (xyz [zoom <mag>] | fitr <rule> | fitv ...)
## -> fitb, fitbv, fitbh: bounding box of the page
## \pdfdestmargin=<dimen>
Actions: (dictionaries)
/Type /Action optional
/S action-type
/Next dict-or-array chaining
/S /GoTo
/D destination
/S /URI
/URI (uri)
/S /Named
/N /NextPage
Outline:
catalog -> /Outlines -> dictionary
/Type /Outlines
/First -> first top-level item
/Last -> last top-level item
/Count number-of-open-items-on-all-levels
item:
/Title (string)
/Parent -> parent item
/Prev -> previous item
/Next -> next item
/First -> first child
/Last -> last child
/Count num-of-open-descendants
/Dest name-string-or-array
/A action-on-activate
/C [r g b] color
/F flags style flags (b0=italic, b1=bold)
## \pdfoutline [attr <text>] <action> [count <integer>] <text>
## action:
## - goto page N, goto name X
## - user { ... }
## count > 0: open subentries
## count < 0: closed subentries
Page labels:
catalog -> /PageLabels -> number tree -> page label dict
(for each range, the number tree contains the first page number in the range)
/Type /PageLabel optional
/S style D=decimal, R=ROMAN, r=roman, A=upcase (A..Z, AA,BB..ZZ, ...), a=lowcase
no style -> no numbers, only prefix
/P (prefix)
/St start-number default=1
Annotations: (section 8.4, page 604)
page -> /Annots -> array of annotation dictionaries
/Type /Annot optional
/Subtype xxx
/Rect [rectangle] location on page
/Contents (string)
/P -> page containing this annot
/NM (optional annotation name)
/M (datetime of last modification)
/F flags not interesting
/AP -> appearance dict
/AS /selected-appearance
/Border [horiz-corner-radius vert-corner-radius width optional-dash-array]
/BS -> border style dict preferred
/Type /Border
/W width
/S style /S=solid /D=dashed /B=beveled etc.
/D dash-array
/C [gray / r g b / c m y k]
annotation subtypes:
/Text ikonka, vyvolava pop-up text
/Name icon (/Comment /Help apod.)
/Link link or action
/A action one of these
/Dest (dest)
/FreeText text rendered inside page, possibly with callout
/Line usecka nebo kota
/Highlight zvyrazneny kus textu, vyvolava pop-up text
pdftex:
\pdfannot [reserveobjnum | useobjnum <N>] [<rule-spec>] <raw-PDF>
rule-spec describes annot size, default is all dimensions running
(inherits dimensions of enclosing box)
\pdflastannot returns object number
\pdfstartlink [<rule-spec>] [attr <text>] (<action> ::= user <user-action> | goto name{<destination>} | goto page <num> {/Fit})
\pdfendlink
\pdflastlink
\pdflinkmargin=<dimen>
\pdfstartthread [<rule>] [attr <text>] name{<name>}
\pdfendthread
\pdfpageresources{ /ExtGState << /key value ... >> }