open pdf file in new tab in asp.net c# : Erase text in pdf document Library software component .net winforms web page mvc pdflib-manual-5_029-part1356

4.5  Unicode Support 91
combination. While this is case for most font/encoding combinations, user-defined 
Type 3 fonts, for example, may be missing Unicode information. In this case PDFlib will 
not be able to generate a ToUnicode CMap, and text export or searching will not work in 
Acrobat.
Generation of a ToUnicode CMap can be globally disabled with the unicodemap pa-
rameter, or on a per-font basis with the PDF_load_font( ) option of the same name. The 
default of this parameter/option is true. Setting it to false will decrease the output file 
size while potentially disabling proper cut-and-paste support in Acrobat.
4.5.2 Unicode Text Formats
The Unicode standard supports several transformation formats for storing the actual 
byte values which comprise a Unicode string. These vary in the number of bytes per 
character and the ordering of bytes within a character. Unicode strings in PDFlib can be 
supplied in UTF-8 or UTF-16 formats with any byte ordering. This can be controlled with 
the textformat parameter for all text on page descriptions, and the hypertextformat pa-
rameter for all hypertext elements. The following values are supported for both of these 
parameters:
>bytes: one byte in the string corresponds to one character. This is mainly useful for 8-
bit encodings.
>utf8: strings are expected in UTF-8 format.
>utf16: strings are expected in UTF-16 format. A Unicode Byte Order Mark (BOM) at the 
start of the string will be evaluated and then removed. If no BOM is present the 
string is expected in the machine’s native byte ordering (on Intel x86 architectures, 
for example, the native byte order is little-endian, while on Sparc and PowerPC sys-
tems it is big-endian).
>utf16be: Strings are expected in UTF-16 format in big-endian byte ordering. There is 
no special treatment for Byte Order Marks.
>utf16le: Strings are expected in UTF-16 format in little-endian byte ordering. There is 
no special treatment for Byte Order Marks.
>auto: equivalent to bytes for 8-bit encodings, and utf16 for wide-character addressing 
(unicode, glyphid, or a UCS2 CMap). This setting will provide proper text interpreta-
tion in most environments which do not use Unicode natively.
The default setting for the textformat parameter is utf16 for Unicode-capable language 
bindings, and auto otherwise.
Although the textformat setting is in effect for all encodings, it will be most useful for 
unicode encoding. Table 4.3 details the interpretation of text strings for various combi-
nations of font encodings and textformat settings.
Table 4.3 Relationship of font encodings and text format
font encoding
textformat = bytes
textformat = utf8, utf16, utf16be, or utf16le
8-bit, or builtin en-
coding for TTF/OTF
8-bit codes
convert Unicode values to 8-bit codes according to 
the chosen encoding
1
builtin encoding for 
PostScript
8-bit codes
only in Unicode-capable language bindings. PDFlib 
will throw an exception otherwise
U+XXXX
8-bit codes will be added to the off-
set XXXX to address Unicode values
convert Unicode values to 8-bit codes according to 
the chosen Unicode offset
glyphid
8-bit codes address glyph ids from 0 
to 255
Unicode values will be interpreted as glyph ids
2
Erase text in pdf document - delete, remove text from PDF file in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
Allow C# developers to use mature APIs to delete and remove text content from PDF document
how to delete text in a pdf acrobat; delete text pdf
Erase text in pdf document - VB.NET PDF delete text library: delete, remove text from PDF file in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
VB.NET Programming Guide to Delete Text from PDF File
how to erase text in pdf; how to delete text in a pdf file
92
Chapter 4:  Text Handling
4.5.3 Unicode for Hypertext Elements
Unicode can be supplied for various hypertext elements, such as bookmarks, contents 
and title of note annotations (see Figure 4.1), standard and user-defined document in-
formation field contents, description and author of file attachments. For details on Uni-
code-enable hypertext items please review the respective function descriptions in Sec-
tion 7.9, »Hypertext Functions«, page 201.
Note The usability of Unicode in hypertext elements heavily depends on the Unicode support avail-
able on the target system. Unfortunately, most systems today are far from being fully Unicode-
enabled in their default configurations. Although Windows NT/2000/XP and Mac OS support 
Unicode internally, availability of appropriate Unicode fonts is still an issue.
Hypertext encoding. PDF supports only two encoding schemes for hypertext ele-
ments:
>Unicode in big-ending UTF-16 format.
>PDFDocEncoding, (see Figure 4.2), which is a superset of ISO 8859-1 (Latin 1). Although 
PDFDocEncoding and the Windows code page 1252 are quite similar, they differ sub-
stantially in the character range 128-160 (0x80–0xA0).
unicode and
UCS2-based CMaps
8-bit codes address Unicode values 
from U+0000 to U+00FF
any Unicode value, encoded according to the 
chosen text format
1
any other CMap
(not UCS2-based)
any single- or multibyte codes 
according to the chosen CMap
only in Unicode-capable language bindings. PDFlib 
will throw an exception otherwise
1.  If the Unicode character is not available in the font PDFlib will issue a warning and replace it with the space character. (this
can be controlled via the glyphwarning parameter).
2.  If the glyph id is not available in the font PDFlib will issue a warning and replace it with glyph id 0.
Table 4.3 Relationship of font encodings and text format
font encoding
textformat = bytes
textformat = utf8, utf16, utf16be, or utf16le
Fig. 4.1
Unicode bookmarks (left) and Unicode 
text annotations (right)
C# WPF Viewer: Load, View, Convert, Annotate and Edit PDF
PDF Protection. • Add signatures to PDF document. • Erase PDF text. • Erase PDF images. • Erase PDF pages. Miscellaneous. • Select PDF text on viewer.
delete text pdf acrobat professional; pdf editor online delete text
C# WinForms Viewer: Load, View, Convert, Annotate and Edit PDF
PDF Protection. • Sign PDF document with signature. • Erase PDF text. • Erase PDF images. • Erase PDF pages. Miscellaneous. • Select PDF text on viewer.
online pdf editor to delete text; how to delete text from a pdf document
4.5  Unicode Support 93
While PDF allows only Unicode and PDFDocEncoding, PDFlib supports all 8-Bit and Uni-
code-based encodings which are allowed for PDF_load_font( ), and will automatically ap-
ply any required conversions.
The hypertextencoding parameter works analogous to the encoding parameter of PDF_
load_font( ), and controls the 8-bit encoding of hypertext strings. It can attain any name 
of an 8-bit encoding known to PDFlib, including auto (see Section 4.4, »Encoding De-
tails«, page 84). Note that glyphid, builtin, and CMap names are not allowed for this pa-
rameter. The default is auto.
Hypertext format. Similar to the textformat parameter, the format of hypertext 
strings can be controlled with the hypertextformat parameter. However, interpretation 
of the allowed values is somewhat different for the hypertextformat parameter. While 
utf8, utf16, utf16be, and utf16le have the same meaning as for the textformat parameter, 
the behavior of bytes and auto is slightly different:
>auto: UTF-16 strings with big-endian BOM will be detected (in C such strings must be 
terminated with a double-null), and Unicode output will be generated. If the string 
does not start with a big-endian BOM it will be interpreted as an 8-bit encoded string 
according to the hypertextencoding parameter (see above). If it contains at least one 
character which is not contained in PDFDocEncoding, the complete string will be 
converted to a big-endian UTF-16 string, and written to the PDF output as Unicode. 
Otherwise it will be written to the PDF output as 8-bit encoded PDFDocEncoding text.
000
001
002
003
004
005
006
007
010
011
012
013
014
015
016
017
020
021
022
023
024
025
026
027
030
031
032
033
034
035
036
037
040
041
042
043
044
045
046
047
050
051
052
053
054
055
056
057
060
061
062
063
064
065
066
067
070
071
072
073
074
075
076
077
100
101
102
103
104
105
106
107
110
111
112
113
114
115
116
117
120
121
122
123
124
125
126
127
130
131
132
133
134
135
136
137
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160
161
162
163
164
165
166
167
170
171
172
173
174
175
176
177
200
201
202
203
204
205
206
207
210
211
212
213
214
215
216
217
220
221
222
223
224
225
226
227
230
231
232
233
234
235
236
237
240
241
242
243
244
245
246
247
250
251
252
253
254
255
256
257
260
261
262
263
264
265
266
267
270
271
272
273
274
275
276
277
300
301
302
303
304
305
306
307
310
311
312
313
314
315
316
317
320
321
322
323
324
325
326
327
330
331
332
333
334
335
336
337
340
341
342
343
344
345
346
347
350
351
352
353
354
355
356
357
360
361
362
363
364
365
366
367
370
371
372
373
374
375
376
377
0 1 2 3 4 5 6 7 8 9 A B C D E F
0
1
H I J K L M N O
2
! " # $ % &  ( ) * + , - . /
3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
4 @ A B C D E F G H I J K L M N O
5 P Q R S T U V W X Y Z [ \ ] ^ _
6  a b c d e f g h i j k l m n o
7 p q r s t u v w x y z { | } ~
8                
9               
A
 
          
 
B                
C                
D                
E                
F                
Fig. 4.2
The PDFDocEncoding 
character set with hexa-
decimal and octal codes.
C# PDF Text Redact Library: select, redact text content from PDF
code to erase text from adobe PDF file in Visual Studio. NET class without adobe reader installed. Provide a best and easy way to darken text in PDF document in
pdf text watermark remover; delete text from pdf preview
C# HTML5 Viewer: Load, View, Convert, Annotate and Edit PDF
you need to add your own signatures such as logo to PDF document, you and Redact tab on viewer empower users to redact and erase PDF text, erase PDF images and
how to erase text in pdf online; how to remove highlighted text in pdf
94
Chapter 4:  Text Handling
>bytes: one byte in the string corresponds to one character, and the string will be out-
put without any interpretation. This is mainly useful for 8-bit encodings. In addi-
tion, UTF-16 strings with big-endian BOM will automatically be detected. In C, such 
strings must be terminated with a double-null unless the length in bytes is explicitly 
supplied in the respective function call.
The default setting for the hypertextformat parameter is auto.
4.5.4 Unicode Support in PDFlib Language Bindings
Unicode in the C language binding. Clients of the C language binding must take care 
not to use the standard text (PDF_show( ), PDF_show_xy( ), and PDF_continue_text( )) or hy-
pertext functions (PDF_add_bookmark( ), etc.) when the text may contain embedded null 
characters. In such cases the alternate functions PDF_show2( ) etc. must be used, and the 
length of the string must be supplied separately. This is not a concern for all other lan-
guage bindings since the PDFlib language wrappers internally call PDF_show2( ) etc. in 
the first place.
Unicode in the C++ language binding. C++ users must be aware of a pitfall related to 
the compiler automatically converting literal strings to the C++ string type which is ex-
pected by the PDFlib API functions: this conversion supports embedded null characters 
only if an explicit length parameter is supplied. For example, the following will not 
work since the string will be truncated at the first null character:
p.show("\x00\x41\x96\x7B\x8C\xEA");
// Wrong!
To fix this problem apply the string constructor with an explicit length parameter:
p.show(string("\x00\x41\x96\x7B\x8C\xEA", 6));
// Correct
Unicode-aware language bindings. The following PDFlib language bindings are Uni-
code-capable:
>COM
>.NET
>Java
>Tcl (requires Tcl 8.2 or above)
These language wrappers will correctly deal with Unicode strings provided by the client, 
and automatically set certain PDFlib parameters. This has the following consequences:
>Since the language wrapper automatically sets the textformat and hypertextformat 
parameters to utf16, these are no longer accessible by the client, and must not be 
used.
>Using unicode encoding for page descriptions is the easiest way to deal with encod-
ings.
>Non-Unicode CMaps for standard CJK fonts on page descriptions must be avoided 
since the wrapper will always supply Unicode to the PDFlib core; only UCS2 CMaps 
can be used.
The overall effect is basically that clients can provide plain Unicode strings to PDFlib 
functions without any additional configuration or parameter settings required.
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
Able to protect PDF document from editing, printing, copying and commenting by setting PDF file permissions. Help C# users to erase PDF text content, images and
remove text watermark from pdf online; remove text from pdf preview
C# PDF Image Redact Library: redact selected PDF images in C#.net
call our image redaction API to redact PDF images. as text redaction, you can specify custom text to appear How to Erase PDF Images in .NET Using C# Class Code.
erase text in pdf document; how to copy text out of a pdf
4.6  Text Metrics, Text Variations, and Box Formatting 95
4.6 Text Metrics, Text Variations, and Box Formatting
4.6.1 Font and Character Metrics
Text position. PDFlib maintains the text position independently from the current 
point for drawing graphics. While the former can be queried via the textx/texty parame-
ters, the latter can be queried via currentx/currenty.
Character metrics. PDFlib uses the character and font metrics system used by Post-
Script and PDF which shall be briefly discussed here.
The font size which must be specified by PDFlib users is the minimum distance be-
tween adjacent text lines which is required to avoid overlapping character parts. The 
font size is generally larger than individual characters in a font, since it spans ascender 
and descender, plus possibly additional space between lines.
The leading (line spacing) specifies the vertical distance between the baselines of ad-
jacent lines of text. By default it is set to the value of the font size. The capheight is the 
height of capital letters such as T or H in most Latin fonts. The ascender is the height of 
lowercase letters such as f or d in most Latin fonts. The descender is the distance from the 
baseline to the bottom of lowercase letters such as j or p in most Latin fonts. The de-
scender is usually negative. The values of capheight, ascender, and descender are mea-
sured as a fraction of the font size, and must be multiplied with the required font size 
before being used.
The values of capheight, ascender, and descender for a specific font can be queried 
from PDFlib as follows:
float capheight, ascender, descender, fontsize;
...
font = PDF_load_font(p, "Times-Roman", 0 "winansi", "");
PDF_setfont(p, font, fontsize);
capheight = PDF_get_value(p, "capheight", font) * fontsize;
ascender = PDF_get_value(p, "ascender", font) * fontsize;
descender = PDF_get_value(p, "descender", font) * fontsize;
Note The position and size of superscript and subscript cannot be queried from PDFlib.
CPI calculations. While most fonts have varying character widths, so-called mono-
spaced fonts use the same widths for all characters. In order to relate PDF font metrics to 
the characters per inch (CPI) measurements often used in high-speed print environ-





Fig. 4.3 Font and character metrics
Customize, Process Image in .NET Winforms| Online Tutorials
for image & documents rotation; Edit images & documents using Erase Rectangle & More image processing & document clean-up functions. Image Manipulating. This
erase pdf text online; delete text from pdf
.NET Imaging Processing SDK | Process, Manipulate Images
Support over 30 image & document formats; Support 1-bit, 4-bit, and 8-bit Indexed Basic image edit function support, such as Erase Rectangle, Merge Block, etc.
pdf text remover; how to delete text in pdf preview
96
Chapter 4:  Text Handling
ments, some calculation examples for the mono-spaced Courier font may be helpful. In 
Courier, all characters have a width of 600 units with respect to the full character cell of 
1000 units per point (this value can be retrieved from the corresponding AFM metrics 
file). For example, with 12 point text all characters will have an absolute width of
12 points * 600/1000 = 7.2 points
with an optimal line spacing of 12 points. Since there are 72 points to an inch, exactly 10 
characters of Courier 12 point will fit in an inch. In other words, 12 point Courier is a 10 
cpi font. For 10 point text, the character width is 6 points, resulting in a 72/6 = 12 cpi 
font. Similarly, 8 point Courier results in 15 cpi.
4.6.2 Kerning
Some character combinations can lead to unpleasant appearance. For example, two Vs 
next to each other can look like a W, and the distance between T and e must be reduced 
in order to avoid ugly white space. This compensation is referred to as kerning. Many 
fonts contain comprehensive kerning tables which contain spacing adjustment values 
for certain critical letter pairs.
PDFlib supports kerning for PostScript, TrueType and OpenType fonts, but not for 
PostScript host fonts on the Mac (fonts fetched from the operating system). There are 
two PDFlib controls for the kerning behavior:
>By default, kerning information in a font is not read when loading a font. If kerning 
is desired the kerning option must be set in the respective call to PDF_load_font( ). This 
instructs PDFlib to read the font’s kerning data (if available).
>When a font for which kerning data has been read is used with any text output func-
tion, the positional corrections provided by the kerning data will be applied. How-
ever, kerning can also be disabled by setting the kerning parameter to false:
PDF_set_parameter(p, "kerning", "false"); /* disable kerning */
No kerning
Kerning applied
Character movement caused by kerning
Fig. 4.4 Kerning
How to C#: Special Effects
Erase. Set the image to current background color, the background color can be set by:ImageProcess.BackgroundColor = Color.Red. Encipher.
delete text from pdf with acrobat; delete text from pdf online
4.6  Text Metrics, Text Variations, and Box Formatting 97
Temporarily disabling kerning may be useful, for example, for tabular figures when 
the kerning data contains pairs of figures, since kerned figures wouldn’t line up in a 
table.
Kerning is applied in addition to any character spacing, word spacing, and horizontal 
scaling which may be activated. Note, however, that the combination of horizontal 
spacing and kerning only works correctly in Acrobat 4.05 and above, but not any older 
versions.
PDFlib does not have any limit for the number of kerning pairs in a font.
4.6.3 Text Variations
Artificial font styles. Bold and italic variations of a font should normally be created by 
choosing an appropriate font. In addition, PDFlib also supports artificial font styles: 
based on a regular font Acrobat will simulate bold, italic, or bolditalic styles by embold-
ening or slanting the base font. The aestethic quality of artificial font styles does not 
match those of real bold or italic fonts which have been fine-tuned by the font designer. 
However, in situations where a particular font style is not available directly, artificial 
styles can be used as a workaround. In particular, artificial font styles are useful for the 
standard CJK fonts which support only normal fonts, but not any bold or italic variants.
Due to restrictions in Adobe Acrobat, artificial font styles work only if all of the fol-
lowing conditions are met:
>The base font is a TrueType or OpenType font, including standard and custom CJK 
fonts. The base font must not be one of the PDF core fonts (see Section 4.3.2, »Font 
Embedding«, page 81).
>The encoding is winansi, macroman, or one of the predefined CJK CMaps listed in Ta-
ble 4.6 (since otherwise PDFlib will force font embedding).
>The embedding option must be set to false.
>The base font must be installed on the target system where the PDF will be viewed.
While PDFlib will check the first two conditions, it is the user’s responsibility to ensure 
the last one.
Artificial font styles can be requested by using one of the normal (no change of the 
base font), bold, italic, or bolditalic keywords for the fontstyle option of PDF_load_font( ):
PDF_load_font(p, "HeiseiKakuGo-W5", 0, "UniJIS-UCS2-H", "fontstyle bold");
Underline, overline, and strikeout text. PDFlib can be instructed to put lines below, 
above, or in the middle of text. The stroke width of the bar and its distance from the 
baseline are calculated based on the font’s metrics information. In addition, the current 
values of the horizontal scaling factor and the text matrix are taken into account when 
calculating the width of the bar. PDF_set_parameter( ) can be used to switch the under-
line, overline, and strikeout feature on or off as follows:
PDF_set_parameter(p, "underline", "true");
/* enable underlines */
The current stroke color is used for drawing the bars. The current linecap and dash pa-
rameters are ignored, however. Aesthetics alert: in most fonts underlining will touch 
descenders, and overlining will touch diacritical marks atop ascenders.
Note The underline, overline, and strikeout features are not supported for standard CJK fonts unless 
a UCS2 CMap is used.
98
Chapter 4:  Text Handling
Text rendering modes. PDFlib supports several rendering modes which affect the ap-
pearance of text. This includes outline text and the ability to use text as a clipping path. 
Text can also be rendered invisibly which may be useful for placing text on scanned im-
ages in order to make the text accessible to searching and indexing, while at the same 
time assuring it will not be visible directly. The rendering modes are described in Table 
4.4. They can be set with PDF_set_value( ) and the textrendering parameter.
PDF_set_value(p, "textrendering", 1);
/* set stroked text rendering (outline text) */
When stroking text, graphics state parameters such as linewidth and color will be ap-
plied to the glyph outline. The rendering mode has no effect on text displayed using a 
Type 3 font.
Text color. Text will usually be display in the current fill color, which can be set using 
PDF_setcolor( ). However, if a rendering mode other than 0 has been selected, both stroke 
and fill color may affect the text depending on the selected rendering mode.
4.6.4 Box Formatting
While PDFlib offers the PDF_stringwidth( ) function for performing text width calcula-
tions, many clients need easy access to text box formatting and justifying, e.g. to fit a 
certain amount of text into a given column. Although PDFlib offers such features, you 
shouldn’t think of PDFlib as a full-featured text and graphics layout engine. The PDF_
show_boxed( ) function is an easy-to-use method for text box formatting with a number 
of formatting options. Text may be laid out in a rectangular box either left-aligned, 
right-aligned, centered, or fully justified. The first line of text starts at a baseline with a 
vertical position which equals the top edge of the supplied box minus the leading. The 
bottom edge of the box serves as the last baseline used. For this reason, descenders of 
the last text line may appear outside the specified box (see Figure 4.5).
This function justifies by adjusting the inter-word spacing (the last line will be left-
aligned only). Obviously, this requires that the text contains spaces (PDFlib will not in-
sert spaces if the text doesn’t contain any). Advanced text processing features such as 
hyphenation are not available – PDFlib simply breaks text lines at existing whitespace 
characters. Text is never clipped at the boundaries of the box. 
Supplying a feature parameter of blind can be useful to determine whether a string 
fits in a given box, without actually producing any output.
ASCII newline characters (in C: ox0A) in the supplied text are recognized, and force a 
new paragraph. CR/NL combinations are treated like a single newline character. Other 
formatting characters (especially tab characters) are not supported.
The following is a small example of using PDF_show_boxed( ). It uses PDF_rect( ) to 
draw an additional border around the box which may be helpful in debugging:
Table 4.4 Values for the text rendering mode
value
explanation
value
explanation
0
fill text
4
fill text and add it to the clipping path
1
stroke text (outline)
5
stroke text and add it to the clipping path
2
fill and stroke text
6
fill and stroke text and add it to the clipping path
3
invisible text
7
add text to the clipping path
4.6  Text Metrics, Text Variations, and Box Formatting 99
text = "In an attempt to reproduce sounds more accurately, pinyin spellings often ... ";
fontsize = 13;
font = PDF_load_font(p, "Helvetica", 0, "auto", "");
PDF_setfont(p, font, fontsize);
x = 50;
y = 650;
w = 357;
h = 6 * fontsize;
c = PDF_show_boxed(p, text, x, y, w, h, "justify", "");
if (c > 0 ) {
/* Not all characters could be placed in the box; act appropriately here */
...
}
PDF_rect(p, x, y, w, h);
PDF_stroke(p);
The following requirements and restrictions of PDF_show_boxed( ) shall be noted:
>The function supports only the setting bytes for the textformat parameter, or the set-
ting auto in combination with an 8-bit encoding.
>Contiguous blanks in the text should be avoided.
>Due to restrictions in PDF’s word spacing support, the space character must be avail-
able at code position 0x20 in the encoding. Although this is the case for most com-
mon encodings, it implies that justification will not work with EBCDIC encoding.
>The simplistic formatting algorithm may fail for unsuitable combinations of long 
words and narrow columns since there is no hyphenation support.
>Since the bottom part of the box is used as a baseline, descenders in the last line may 
extend beyond the box area.
>It’s currently not possible to feed the text in multiple portions into the box format-
ting routine. However, you can retrieve the text position after calling PDF_show_
boxed( ) with the textx and texty parameters.
>The font within the text box can’t be changed.
>Text box formatting is only supported for 8-bit encodings.
In  an  attempt  to  reproduce  sounds  more  accurately,  pinyin
spellings  often  differ  markedly  from  the  older  ones,  and
personal  names  are  usually  spelled  without  apostrophes  or
hyphens;  an  apostrophe  is  sometimes  used,  however,  to
avoid  ambiguity  when  syllables  are  run  together  (as  in
Chang´an to distinguish it from Chan´gan).
Fig. 4.5  Text box formatting: the bottom edge will serve as the last baseline, not as a clipping border.
100
Chapter 4:  Text Handling
4.7 Chinese, Japanese, and Korean Text
4.7.1 CJK support in Acrobat and PDF
Acrobat/PDF supports a set of standard CJK fonts without font embedding, as well as 
custom embedded CJK fonts. While embedded CJK fonts will work in all versions of 
Acrobat without further ado, using any of the standard CJK fonts in Acrobat requires the 
user to do one of the following
1
:
>Use a localized CJK version of Acrobat.
>If you use any non-CJK version of the full Acrobat product, select the Acrobat install-
er’s option »Asian Language Support« (Windows) or »Language Kit« (Mac). The re-
quired support files (fonts and CMaps) will be installed from the Acrobat product 
CD-ROM.
>If you use Acrobat Reader, install one of the Asian Font Packs which are available on 
the Acrobat product CD-ROM, or on the Web.
2
Printing PDF documents with CJK text. Printing CJK documents gives rise to a number 
of issues which are outside the scope of this manual. However, we will supply some use-
ful hints for the convenience of PDFlib users. If you have trouble printing CJK docu-
ments (especially those using the standard fonts) with Acrobat, consider the following:
>Acrobat’s CJK support is based on CID fonts. Printing CID fonts does not work on all 
PostScript printers. Native CID font support has only been integrated in PostScript 
version 2015, i.e., PostScript Level 1 and early Level 2 printers do not natively support 
CID fonts. However, for early Level 2 devices the printer driver is supposed to take 
care of this by downloading an appropriate set of compatibility routines to pre-2015 
Level 2 printers.
>Due to the large number of characters CID fonts consume very much printer memo-
ry unless font subsetting has been applied. Disk files for full CJK fonts typically are 5 
to 10 MB in size. Not all printers have enough memory for printing such fonts. For 
example, in our testing we found that we had to upgrade a Level 3 laser printer from 
16 MB to 48 MB RAM in order to reliably print PDF documents with CID fonts.
>Non-Japanese PostScript printers do not have any Japanese fonts installed. For this 
reason, you must check Download Asian Fonts in Acrobat’s print dialog.
>If you can’t successfully print using downloaded fonts, check Print as image in Acro-
bat’s print dialog. This instructs Acrobat to send a bitmapped version of the page to 
the printer (300 dpi, though).
4.7.2 Standard CJK Fonts and CMaps
Historically, a wide variety of CJK encoding schemes has been developed by diverse 
standards bodies, companies, and other organizations. Fortunately, all prevalent encod-
ings are supported by Acrobat and PDF by default. Since the concept of an encoding is 
much more complicated for CJK text than for Latin text, simple 8-bit encodings no long-
er suffice. Instead, PostScript and PDF use the concept of character collections and char-
acter maps (CMaps) for organizing the characters in a font.
1. This is a good opportunity to praise Ken Lunde’s seminal tome »CJKV information processing – Chinese, Japanese, Korean 
& Vietnamese Computing« (O’Reilly 1999, ISBN 1-56592-224-7), as well as his work at Adobe since he’s one of the driving 
forces behind CJK support in PostScript and PDF.
2. See http://www.adobe.com/products/acrobat/acrrasianfontpack.html 
Documents you may be interested
Documents you may be interested