pdf viewer control in asp net c# : Adding a jpeg to a pdf Library software component asp.net winforms wpf mvc PDF32000_200824-part2341

© 
Adobe Systems Incorporated 2008 – All rights reserved
233
PDF 32000-1:2008
While the data in the usage dictionary serves as information for a document user to examine, it may also be 
used by conforming readers to automatically manipulate the state of optional content groups based on external 
factors such as current system language settings or zoom level. Document authors may use usage application 
dictionaries to specify which entries in the usage dictionary shall be consulted to automatically set the state of 
optional content groups based on such factors. Usage application dictionaries shall be listed in the AS entry in 
an  optional  content  configuration  dictionary  (see  Table 101).  If  no AS  entry  is  present,  states  shall  not  be 
automatically adjusted based on usage information.
A usage application dictionary specifies the rules for which usage entries shall be used by conforming readers 
to automatically manipulate the state of  optional content groups, which groups shall  be affected, and under 
which circumstances. Table 103 shows the entries in a usage application dictionary.
Usage application dictionaries shall only be used by interactive conforming readers, and shall not be used by 
applications  that  use  PDF  as  final  form  output  (see  8.11.4.5,  "Determining  the  State  of  Optional  Content 
Groups" for more information). 
Print
dictionary
(Optional) A dictionary specifying that the content in this group is shall be 
used when printing. It may contain the following optional entries:
Subtype
A name object specifying the kind of content controlled by the 
group;  for  example, 
Trapping
PrintersMarks
and 
Watermark
.
PrintState
A name that shall be  either ON or OFF, indicating that the 
group shall be set to that state when the document is printed 
from a conforming reader.
View
dictionary
(Optional) A dictionary that shall have a single entry, ViewState, a name 
that shall have a value of either ON or OFF, indicating that the group shall 
be set to that state when the document is opened in a conforming reader.
User
dictionary (Optional) A dictionary specifying one or more users for whom this optional 
content  group  is  primarily  intended.  Each  dictionary  shall  have  two 
required entries:
Type
A name object that shall be either Ind  (individual), Ttl (title), 
or Org (organization). 
Name
A text string or array of text strings representing the name(s) 
of the individual, position or organization.
PageElement
dictionary
(Optional) A dictionary declaring that the group contains a pagination 
artifact. It shall contain one entry, Subtype, whose value shall be a name 
that is either HF (header/footer), FG (foreground image or graphic), BG
(background image or graphic), or L (logo). 
Table 103 –  Entries in a Usage Application Dictionary  
Key
Type
Value
Event
name
(Required) A name defining the situation in which this usage application 
dictionary should be used. Shall be one of ViewPrint, or Export.
OCGs
array
(Optional) An array listing the optional content groups that shall have their 
states  automatically  managed  based  on  information  in  their  usage 
dictionary  (see  8.11.4.4,  "Usage  and  Usage  Application  Dictionaries"). 
Default value: an empty array, indicating that no groups shall be affected.
Category
array
(Required) An array of names, each of which corresponds to a usage 
dictionary  entry  (see  Table 102).  When  managing  the  states  of  the 
optional content groups  in the OCGs array,  each of the corresponding 
categories in the group’s usage dictionary shall be considered.
Table 102 –  Entries in an Optional Content Usage Dictionary (continued)
Key
Type
Value
Adding a jpeg to a 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 jpg to pdf form; add image to pdf preview
Adding a jpeg to a 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 a jpeg to a pdf; adding jpg to pdf
PDF 32000-1:2008
234
© 
Adobe Systems Incorporated 2008 – All rights reserved
The Event entry specifies whether the usage settings shall be applied during viewing, printing, or exporting the 
document.  The OCGs  entry  specifies  the  set  of  optional  content  groups  to  which  usage  settings  shall  be 
applied.  For  each  of  the  groups  in OCGs,  the  entries  in  its  usage  dictionary  (see  Table 102)  specified  by 
Category shall be examined to yield a recommended state for the group. If all the entries yield a recommended 
state of ON, the group’s state shall be set to ON; otherwise, its state shall be set to OFF.
The entries in the usage dictionary shall be used as follows:
View: The state shall be the value of the ViewState entry. This entry allows a document to contain content 
that is relevant only when the document is viewed interactively, such as instructions for how to interact with 
the document.
Print: The state shall be the value of the PrintState entry. If PrintState is not present, the state of the 
optional content group shall be left unchanged.
Export: The state shall be the value of the ExportState entry.
Zoom: If the current magnification level of the document is greater than or equal to min and less than max
the ON state shall be used; otherwise, OFF shall be used.
User: The Name entry shall specify a name or names to match with the user’s identification. The Type
entry determines how the Name entry shall be interpreted (name, title, or organization). If there is an exact 
match, the ON state shall be used; otherwise OFF shall be used.
Language: This category shall allow the selection of content based on the language and locale of the 
application. If an exact match to the language and locale is found among the Lang entries of the optional 
content groups in the usage application dictionary’s OCGs list, all groups that have exact matches shall 
receive  an ON recommendation.  If  no exact  match  is  found,  but  a  partial  match  is  found  (that  is,  the 
language matches but not the locale), all partially matching groups that have Preferred entries with a value 
of ON shall receive an ON recommendation. All other groups shall receive an OFF recommendation.
There shall be no restriction on multiple entries with the same value of Event, in order to allow documents with 
incompatible usage application dictionaries to be  combined into larger  documents and have their  behaviour 
preserved. If a given optional content group appears in more than one OCGs array, its state shall be ON only if 
all categories in all the usage application dictionaries it appears in shall have a state of ON. 
EXAMPLE
This example shows the use of an auto state array with usage application dictionaries. The AS entry in 
the default configuration dictionary is an array of three usage application dictionaries, one for each of the 
Event values ViewPrint, and Export
/OCProperties 
% OCProperties dictionary in document catalog
<< /OCGs [1 0 R 2 0 R 3 0 R 4 0 R]
/D  << /BaseState /OFF
% The default configuration
/ON [1 0 R]
/AS [
% Auto state array of usage application dictionaries
<< /Event /View /Category [/Zoom] /OCGs [1 0 R 2 0 R 3 0 R 4 0 R] >> 
<< /Event /Print /Category [/Print] /OCGs [4 0 R] >>
<< /Event /Export /Category [/Export] /OCGs [3 0 R 4 0 R] >>
]
>>
>>
...
1 0 obj 
<< /Type /OCG 
/Name (20000 foot view)
/Usage << /Zoom << /max 1.0 >> >>
>>
endobj
2 0 obj 
<< /Type /OCG 
VB.NET PDF Library SDK to view, edit, convert, process PDF file
Capable of adding PDF file navigation features to your VB.NET program. Capable of adding PDF file navigation features to your VB.NET program. How To Tutorials.
how to add an image to a pdf in acrobat; add a jpeg to a pdf
VB.NET PDF Page Insert Library: insert pages into PDF file in vb.
Support adding PDF page number. Offer PDF page break inserting function. DLLs for Adding Page into PDF Document in VB.NET Class. Add necessary references:
add jpg to pdf preview; add picture to pdf document
© 
Adobe Systems Incorporated 2008 – All rights reserved
235
PDF 32000-1:2008
/Name (10000 foot view)
/Usage << /Zoom << /min 1.0 /max 2.0 >> >>
>>
endobj
3 0 obj 
<< /Type /OCG 
/Name (1000 foot view)
/Usage << /Zoom << /min 2.0 /max 20.0 >>
/Export << /ExportState /OFF >> >>
>>
endobj
4 0 obj 
<< /Type /OCG 
/Name (Copyright notice)
/Usage << /Print << /PrintState /ON >> 
/Export << /ExportState /ON>> >>
>>
endobj
In the example, the usage application dictionary with event type View specifies that all optional content groups 
shall have their states managed based on zoom level when viewing. Three groups (objects 1, 2, and 3) contain 
Zoom usage information. Object 4 has none; therefore, it shall not be affected by zoom level changes. Object 3 
shall receive an OFF recommendation when exporting. When printing or exporting, object 4 shall receive an 
ON recommendation. 
8.11.4.5 Determining the State of Optional Content Groups
This sub-clause summarizes the rules by which conforming readers make use of the configuration and usage 
application dictionaries to set the state of optional content groups. For purposes of this discussion, it is useful to 
distinguish the following types of conforming readers:
Viewer applications which allow users to interact with the document in various ways.
Design applications, which offer layering features for collecting groups of graphics together and selectively 
hiding or viewing them.
NOTE 1
The following rules are not meant to apply to design applications; they may manage their states in an entirely 
different manner if they choose.
Aggregating applications, which import PDF files as graphics.
Printing applications, which print PDF files.
When a document is first opened, its optional content groups shall be assigned a state based on the D (default) 
configuration dictionary in the OCProperties dictionary:
a) The value of BaseState shall be applied to all the groups.
b) The groups listed in either the ON or OFF array (depending on which one is opposite to BaseState) shall 
have their states adjusted.
This state shall be the state used by printing and aggregating application. Such applications shall not apply the 
changes based on usage application dictionaries described below. However, for more advanced functionality, 
they may provide user control for manipulating the individual states of optional content groups.
NOTE 2
Viewer applications may also provide users with an option to view documents in this state (that is, to disable 
the automatic adjustments discussed below). This option permits an accurate preview of the content as it will 
appear when placed into an aggregating application or sent to a stand-alone printing system.
The  remaining  discussion  in  this  sub-clause  applies  only  to  viewer  applications.  Such  applications  shall 
examine the AS array for usage application dictionaries that have an Event of type View. For each one found, 
C# PDF Page Insert Library: insert pages into PDF file in C#.net
are capable of adding and inserting (empty) PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel, PowerPoint, Bmp, Jpeg, Png, Gif, and
adding an image to a pdf in preview; add image to pdf in preview
C# PDF insert text Library: insert text into PDF content in C#.net
Supports adding text to PDF in preview without adobe reader installed in ASP.NET. Powerful .NET PDF edit control allows modify existing scanned PDF text.
add image pdf document; add image to pdf file acrobat
PDF 32000-1:2008
236
© 
Adobe Systems Incorporated 2008 – All rights reserved
the groups listed in its OCGs array shall be adjusted as described in 8.11.4.4, "Usage and Usage Application 
Dictionaries".
Subsequently, the document is ready for interactive viewing by a user. Whenever there is a change to a factor 
that  the  usage  application  dictionaries  with  event  type View  depend  on  (such  as  zoom  level),  the 
corresponding dictionaries shall be reapplied. 
The user may manipulate optional content group states manually or by triggering SetOCGState actions (see 
12.6.4.12,  "Set-OCG-State  Actions")  by,  for  example,  clicking  links  or  bookmarks.  Manual  changes  shall 
override the states that were set automatically. The states of these groups remain overridden and shall not be 
readjusted based on usage application dictionaries with event type View as long as the document is open (or 
until the user reverts the document to its original state). 
When a document is printed by a viewer application, usage application dictionaries with an event type Print
shall be applied over the current states of optional content groups. These changes shall persist only for the 
duration of the print operation; then all groups shall revert to their prior states.
Similarly, when a document is exported to a format that does not support optional content, usage application 
dictionaries  with  an  event  type Export shall  be  applied  over  the  current  states  of  optional  content  groups. 
Changes  shall persist  only for the duration of the export operation; then all groups shall revert to their  prior 
states.
NOTE 3
Although the event types Print and Export have identically named counterparts that are usage categories, the 
corresponding usage application dictionaries are permitted to specify that other categories may be applied.
C# PDF Digital Signature Library: add, remove, update PDF digital
PDF to Word, VB.NET extract text from PDF, VB.NET convert PDF to Jpeg, VB.NET Help to Improve the Security of Your PDF File by Adding Digital Signatures.
add multiple jpg to pdf; add picture to pdf online
VB.NET PDF insert text library: insert text into PDF content in vb
VB.NET PDF - Insert Text to PDF Document in VB.NET. Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program.
add an image to a pdf acrobat; how to add an image to a pdf
© 
Adobe Systems Incorporated 2008 – All rights reserved
237
PDF 32000-1:2008
9
Text
9.1 General
This clause describes the special facilities in PDF for dealing with text—specifically, for representing characters 
with  glyphs  from  fonts.  A glyph  is  a  graphical shape and  is subject to  all  graphical manipulations,  such as 
coordinate transformation. Because of the importance of text in most page descriptions, PDF provides higher-
level facilities to describe, select, and render glyphs conveniently and efficiently. 
The first sub-clause is a  general description of how glyphs  from fonts are painted on the page. Subsequent 
sub-clauses cover these topics in detail: 
Text state. A subset of the graphics state parameters pertain to text, including parameters that select the 
font, scale the glyphs to an appropriate size, and accomplish other graphical effects. 
Text  objects and operators. The text operators specify the glyphs to be painted, represented by string 
objects  whose  values  shall  be  interpreted  as  sequences  of  character  codes.  A  text  object  encloses  a 
sequence of text operators and associated parameters. 
Font  data  structures. Font dictionaries and associated data structures provide information that a 
conforming reader needs to interpret the text and position the glyphs properly. The definitions of the glyphs 
themselves shall  be  contained  in font programs , which  may  be  embedded in  the  PDF  file,  built  into  a 
conforming reader, or obtained from an external font file. 
9.2 Organization and Use of Fonts
9.2.1
General
character is an abstract symbol, whereas a glyph is a specific graphical rendering of a character. 
EXAMPLE 1
The glyphs A, A, and A are renderings of the abstract “A” character. 
NOTE 1
Historically these two terms have often been used interchangeably in computer typography (as evidenced by 
the names chosen for some PDF dictionary keys and PostScript operators), but advances in this area have 
made  the distinction more  meaningful. Consequently,  this standard distinguishes  between  characters and 
glyphs, though with some residual names that are inconsistent. 
Glyphs are organized into fontsfont defines glyphs for a particular character set.
EXAMPLE 2
The Helvetica and Times fonts define glyphs for a set of standard Latin characters. 
A font for use with a  conforming reader is prepared in the form of a program. Such a font program  shall be 
written  in  a  special-purpose  language,  such  as  the Type 1TrueType,  or OpenType font  format,  that  is 
understood by a specialized font interpreter. 
In  PDF, the term font  refers to a font dictionary , a  PDF  object  that identifies the font  program  and contains 
additional information about it. There are several different font types, identified by the Subtype entry of the font 
dictionary. 
For most font types, the font program shall be defined in a separate font file , which may be either embedded in 
a PDF stream object or obtained from an external source. The font program contains glyph descriptions that 
generate glyphs. 
A content stream paints  glyphs on the page by specifying a  font dictionary and  a string object that shall be 
interpreted as a sequence of one or more character codes identifying glyphs in the font. This operation is called 
showing the text string; the text strings drawn in this way are called  show  strings. The glyph description 
consists of a sequence of graphics operators that produce the specific shape for that character in this font. To 
render a glyph, the conforming reader executes the glyph description. 
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
text from PDF, VB.NET convert PDF to Jpeg, VB.NET splitting a PDF to two and four new PDF files are Provides you with examples for adding an (empty) page to a
add photo to pdf reader; add png to pdf preview
C# Create PDF Library SDK to convert PDF from other file formats
What's more, you can also protect created PDF file by adding digital signature (watermark) on PDF using C# code. Create PDF from Jpeg, png, images.
add image to pdf acrobat; add signature image to pdf
PDF 32000-1:2008
238
© 
Adobe Systems Incorporated 2008 – All rights reserved
NOTE 2
Programmers who have experience with scan conversion of general shapes may be concerned about  the 
amount of computation that this description seems to imply. However, this is only the abstract behaviour of 
glyph descriptions and font programs, not how they are implemented. In fact, an efficient implementation can 
be achieved through careful caching and reuse of previously rendered glyphs. 
9.2.2
Basics of Showing Text
EXAMPLE 1
This example illustrates the most straightforward use of a font. The text ABC is placed 10 inches from the 
bottom of the page and 4 inches from the left edge, using 12-point Helvetica.
BT
/F13  12  Tf
288  720  Td
( ABC )  Tj
ET
The five lines of this example perform these steps: 
a)  Begin a text object. 
b)  Set the font and font size to use, installing them as parameters in the text state. In this case, the font 
resource identified by the name F13 specifies the font externally known as Helvetica.
c)  Specify a starting position on the page, setting parameters in the text object. 
d)  Paint the glyphs for a string of characters at that position. 
e)  End the text object. 
These paragraphs explain these operations in more detail. 
To paint glyphs, a content stream shall first identify the font to be used. The Tf operator shall specify the name 
of a font resource—that is, an entry in the Font subdictionary of the current resource dictionary. The value of 
that entry shall be a font dictionary. The font dictionary shall identify the font’s externally known name, such as 
Helvetica, and shall supply some additional information that the conforming reader needs to paint glyphs from 
that font. The font dictionary may provide the definition of the font program itself. 
NOTE 1
The font resource name presented to the Tf operator is arbitrary, as are the names for all kinds of resources. It 
bears no relationship to an actual font name, such as Helvetica. 
EXAMPLE 2
This Example illustrates an excerpt from the current page’s resource dictionary, which defines the font 
dictionary that is referenced as F13 (see EXAMPLE 1 in this sub-clause). 
/Resources
<<  /Font  <<  /F13  23 0 R  >>
>>
23  0  obj
<<   /Type  /Font
/Subtype  /Type1
/BaseFont  /Helvetica
>>
endobj
A font defines the glyphs at one standard size. This standard is arranged so that the nominal height of tightly 
spaced lines of text is 1 unit. In the default user coordinate system, this means the standard glyph size is 1 unit 
in user space, or 1 ⁄ 72 inch. Starting with PDF 1.6, the size of this unit may be specified as greater than 1 ⁄ 72 
inch by means of the UserUnit entry of the page dictionary; see Table 30. The standard-size font shall then be 
scaled to be usable. The scale factor is specified as the second operand of the Tf operator, thereby setting the 
text font size parameter in the graphics state. EXAMPLE 1 in this sub-clause establishes the Helvetica font with 
a 12-unit size in the graphics state. 
C# PDF Library SDK to view, edit, convert, process PDF file for C#
Capable of adding PDF file navigation features to your C# program. Perform annotation capabilities to mark, draw, and visualize objects on PDF document page.
add jpg to pdf; add image field to pdf form
© 
Adobe Systems Incorporated 2008 – All rights reserved
239
PDF 32000-1:2008
Once the font has been selected and scaled, it may be used to paint glyphs. The Td operator shall adjust the 
translation components of the text matrix, as described in 9.4.2, "Text-Positioning Operators". When executed 
for  the  first  time  after BT, Td  shall  establish  the  text  position  in  the  current  user  coordinate  system.  This 
determines the position on the page at which to begin painting glyphs. 
The Tj operator shall take a string operand and shall paint the corresponding glyphs, using the current font and 
other text-related parameters in the graphics state. 
NOTE 2
The Tj operator treats each element of the string (an integer in the range 0 to 255) as a character code (see 
EXAMPLE 1 in this sub-clause). 
Each byte shall select a glyph description in the font, and the glyph description shall be executed to paint that 
glyph on the page. This is the behaviour of Tj for simple fonts, such as ordinary Latin text fonts. Interpretation of 
the string as a sequence of character codes is more complex for composite fonts, described in 9.7, "Composite 
Fonts". 
What these steps produce on the page is not a 12-point glyph, but rather a 12-unit glyph, where the unit size 
shall be that of the text space at the time the glyphs are rendered on the page. The actual size of the glyph shall 
be  determined  by  the  text  matrix  (T
m
 in  the  text  object,  several  text  state  parameters,  and  the  current 
transformation matrix (CTM) in the graphics state; see 9.4.4, "Text Space Details". 
EXAMPLE 3
If the text space is later scaled to make the unit size 1 centimeter, painting glyphs from the same 12-unit 
font generates results that are 12 centimeters high. 
9.2.3
Achieving Special Graphical Effects
Normal uses of Tj and other glyph-painting operators cause black-filled glyphs to be painted. Other effects may 
be obtained by combining font operators with general graphics operators. 
The  colour used  for painting glyphs shall  be the  current  colour in the  graphics state: either  the  nonstroking 
colour  or  the  stroking  colour (or  both), depending on  the text  rendering  mode  (see  9.3.6,  "Text  Rendering 
Mode"). The default colour shall be black (in DeviceGray), but other colours may be obtained by executing an 
appropriate colour-setting operator or operators (see 8.6.8, "Colour Operators") before painting the glyphs.
EXAMPLE 1
This example uses text rendering mode 0 and the g operator to fill glyphs in 50 percent gray, as shown in 
Figure 36. 
BT
/F13  48  Tf
20  40  Td
 Tr
0.5  g
( ABC )  Tj
ET
Figure 36 –  Glyphs painted in 50% gray
ABC
PDF 32000-1:2008
240
© 
Adobe Systems Incorporated 2008 – All rights reserved
Other graphical effects may be achieved by treating the glyph outline as a path instead of filling it. The text 
rendering mode parameter in the graphics state specifies whether glyph outlines shall be filled, stroked, used 
as a clipping boundary, or some combination of these effects. Only a subset of the possible rendering modes 
apply to Type 3 fonts. 
EXAMPLE 2
This example treats glyph outlines as a path to be stroked. The Tr operator sets the text rendering mode 
to 1 (stroke). The w operator sets the line width to 2 units in user space. Given those graphics state 
parameters, the Tj operator strokes the glyph outlines with a line 2 points thick (see Figure 37). 
BT
/F13  48  Tf
20  38  Td 
 Tr
 w
( ABC )  Tj
ET
Figure 37 –  Glyph outlines treated as a stroked path
EXAMPLE 3
This example illustrates how the glyphs’ outlines may be used as a clipping boundary. The Tr operator 
sets the text rendering mode to 7 (clip), causing the subsequent Tj operator to impose the glyph outlines 
as the current clipping path. All subsequent painting operations mark the page only within this path, as 
illustrated in Figure 38. This state persists until an earlier clipping path is reinstated by the Q operator. 
BT
/F13  48  Tf
20  38  Td 
 Tr
( ABC )  Tj
ET
… Graphics operators to draw a starburst …
Figure 38 –  Graphics clipped by a glyph path
ABC
ABC
© 
Adobe Systems Incorporated 2008 – All rights reserved
241
PDF 32000-1:2008
9.2.4
Glyph Positioning and Metrics
A glyph’s width—formally, its horizontal displacement—is the amount of space it occupies along the baseline of 
a line of text that is written horizontally. In other words, it is the distance the current text position shall move (by 
translating text space) when the glyph is painted. 
NOTE 1
The width is distinct from the dimensions of the glyph outline. 
In some fonts, the width is constant; it does not vary from glyph to glyph. Such fonts are called fixed-pitch  or 
monospaced. They are used mainly for typewriter-style printing. However, most fonts used for high-quality 
typography  associate  a  different width  with each  glyph.  Such  fonts are called proportional  or variable-pitch
fonts. In either case, the Tj operator shall position the consecutive glyphs of a string according to their widths. 
The width information for each glyph shall be stored both in the font dictionary and in the font program itself. 
The two sets of widths shall be identical.
NOTE 2
Storing this information in the font dictionary, although redundant, enables a conforming reader to determine 
glyph positioning without having to look inside the font program.
NOTE 3
The operators for showing text are designed on the assumption that glyphs are ordinarily positioned according 
to  their standard widths.  However,  means are provided to vary the positioning in certain limited ways. For 
example, the TJ operator enables the text position to be adjusted between any consecutive pair of glyphs 
corresponding to characters in a text string. There are graphics state parameters to adjust character and word 
spacing systematically. 
In addition to width, a glyph has several other metrics that influence glyph positioning and painting. For most 
font types, this information is largely internal to the font program and is not specified explicitly in the PDF font 
dictionary. However, in a Type 3 font, all metrics are specified explicitly (see 9.6.5, "Type 3 Fonts"). 
The glyph coordinate system   is  the  space  in  which  an  individual  character’s  glyph  is  defined.  All  path 
coordinates and metrics shall be interpreted in glyph space. For all font types except Type 3, the units of glyph 
space are one-thousandth of a unit of text space; for a Type 3 font, the transformation from glyph space to text 
space shall be defined by a font matrix  specified in an explicit FontMatrix entry in the font. Figure 39 shows a 
typical glyph outline and its metrics. 
Figure 39 –  Glyph metrics
The glyph origin is the point (0, 0) in the glyph coordinate system. Tj and other text-showing operators shall 
position the origin of the first glyph to be painted at the origin of text space. 
EXAMPLE 1
This code adjusts the origin of text space to (40, 50) in the user coordinate system and then places the 
origin of the A glyph at that point: 
BT
40  50  Td
( ABC )  Tj
ET
Glyph
bounding
box
Next
glyph
origin
Glyph
origin
Glyph width
PDF 32000-1:2008
242
© 
Adobe Systems Incorporated 2008 – All rights reserved
The glyph displacement is the distance from the glyph’s origin to the point at which the origin of the next glyph 
should  normally be  placed when  painting the consecutive glyphs of  a line  of text.  This distance is a vector 
(called the displacement vector) in the glyph coordinate system; it has horizontal and vertical components. 
NOTE 4
Most  Western  writing  systems,  including  those  based  on  the  Latin  alphabet,  have  a  positive  horizontal 
displacement  and  a  zero  vertical  displacement.  Some  Asian  writing  systems  have  a  nonzero  vertical 
displacement. In all cases, the text-showing operators transform the displacement vector into text space and 
then translate text space by that amount. 
The glyph bounding box shall be the smallest rectangle (oriented with the axes of the glyph coordinate system) 
that just encloses the entire glyph shape. The bounding box shall be expressed in terms of its left, bottom, right, 
and top coordinates relative to the glyph origin in the glyph coordinate system. 
In some writing systems, text is frequently aligned in two different directions. 
NOTE 5
It is common to write Japanese and Chinese glyphs either horizontally or vertically. 
To handle this, a font may contain a second set of metrics for each glyph. Which set of metrics to use shall be 
selected according to a writing mode, where 0 shall specify horizontal writing and 1 shall specify vertical writing. 
This feature is available only for composite fonts, discussed in 9.7, "Composite Fonts". 
When a glyph has two sets of metrics, each set shall specify a glyph origin and a displacement vector for that 
writing mode. In vertical writing, the glyph position shall be described by a position vector from the origin used 
for horizontal writing (origin 0) to the origin used for vertical writing (origin 1). Figure 40 illustrates the metrics for 
the two writing modes: 
The  left  diagram  illustrates  the  glyph  metrics  associated  with  writing  mode  0,  horizontal  writing.  The 
coordinates ll and ur specify the bounding box of the glyph relative  to origin 0. w0  is  the  displacement 
vector that specifies how the text position shall be changed after the glyph is painted in writing mode 0; its 
vertical component shall be 0. 
The  center diagram  illustrates  writing  mode  1,  vertical writing. w1  shall  be the  displacement  vector  for 
writing mode 1; its horizontal component shall be 0. 
In the right diagram, v is a position vector defining the position of origin 1 relative to origin 0. 
Figure 40 –  Metrics for horizontal and vertical writing modes
New text
position
ur
w0
Origin
0
ll
New text position
Writing mode 0
(horizontal)
Writing mode 1
(vertical)
Mode 1 relative to mode 0
w1
Origin
0
v
Origin 1
Origin 1
Documents you may be interested
Documents you may be interested