3.2  Page Descriptions 51
3.2 Page Descriptions
3.2.1 Coordinate Systems
PDF’s default coordinate system is used within PDFlib. The default coordinate system 
(or default user space) has the origin in the lower left corner of the page, and uses the 
DTP point as unit:
1 pt = 1/72 inch = 25.4/72 mm = 0.3528 mm
The first coordinate increases to the right, the second coordinate increases upwards. 
PDFlib client programs may change the default user space by rotating, scaling, translat-
ing, or skewing, resulting in new user coordinates. The respective functions for these 
transformations are PDF_rotate( ), PDF_scale( ), PDF_translate( ), and PDF_skew( ). If the 
user space has been transformed, all coordinates in graphics and text functions must be 
supplied according to the new coordinate system. The coordinate system is reset to the 
default coordinate system at the start of each page.
Using metric coordinates. Metric coordinates can easily be used by scaling the coor-
dinate system. The scaling factor is derived from the definition of the DTP point given 
above:
PDF_scale(p, 28.3465, 28.3465);
After this call PDFlib will interpret all coordinates (except for hypertext features, see be-
low) in centimeters since 72/2.54 = 28.3465.
Coordinates for hypertext elements. PDF always expects coordinates for hypertext 
functions, such as the rectangle coordinates for creating text annotations, links, and file 
annotations in the default coordinate system, and not in the (possibly transformed) 
user coordinate system. Since this is very cumbersome PDFlib offers automatic conver-
sion of user coordinates to the format expected by PDF. This automatic conversion is ac-
tivated by setting the usercoordinates parameter to true:
PDF_set_parameter(p, "usercoordinates", "true");
Since PDF supports only hypertext rectangles with edges parallel to the page edges, the 
supplied rectangles must be modified when the coordinate system has been trans-
formed by scaling, rotating, translating, or skewing it. In this case PDFlib will calculate 
the smallest enclosing rectangle with edges parallel to the page edges, transform it to 
default coordinates, and use the resulting values instead of the supplied coordinates.
The overall effect is that you can use the same coordinate systems for both page con-
tent and hypertext elements when the usercoordinates parameter has been set to true.
Visualizing coordinates. In order to assist PDFlib users in working with PDF’s coordi-
nate system, the PDFlib distribution contains the PDF file grid.pdf which visualizes the 
coordinates for several common page sizes. Printing the appropriately sized page on 
transparent material may provide a useful tool for preparing PDFlib development. 
Acrobat 5/6 (full version only, not the free Reader) also has a helpful facility. Simply 
choose Window, Info to display a measurement palette which uses points as units. Note 
Pdf editor delete text - 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 erase text in pdf online; delete text from pdf acrobat
Pdf editor delete text - 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
delete text in pdf file online; delete text pdf acrobat professional
52
Chapter 3:  PDFlib Programming
that the coordinates displayed refer to an origin in the top left corner of the page, and 
not PDF’s default origin in the lower left corner.
Don’t be mislead by PDF printouts which seem to experience wrong page dimen-
sions. These may be wrong because of some common reasons:
> The Shrink oversized pages to paper size option has been checked in Acrobat’s print dia-
log, resulting in scaled print output.
> Non-PostScript printer drivers are not always able to retain the exact size of printed 
objects.
Rotating objects. It is important to understand that objects cannot be modified once 
they have been drawn on the page. Although there are PDFlib functions for rotating, 
translating, scaling, and skewing the coordinate system, these do not affect existing ob-
jects on the page but only subsequently drawn objects. Rotating text, images, and im-
ported PDF pages by multiples of 90˚ is accomplished very easily with the PDF_fit_
textline( ), PDF_fit_image( ), and PDF_fit_pdi_page( ) functions.
The following example generates some horizontal text, and rotates the coordinate 
system in order to show rotated text. The save/restore nesting makes it easy to continue 
with horizontal text in the original coordinate system after the vertical text is done:
PDF_set_text_pos(p, 50, 600);
PDF_show(p, "This is horizontal text");
textx = PDF_get_value(p, "textx", 0);
/* determine text position*/
texty = PDF_get_value(p, "texty", 0);
/* determine text position */
PDF_save(p);
PDF_translate(p, textx, texty);
/* move origin to end of text */
PDF_rotate(p, 45);
/* rotate coordinates */
PDF_set_text_pos(p, 18, 0);
/* provide for distance from horiz. text */
PDF_show(p, "rotated text");
PDF_restore(p);
PDF_continue_text(p, "horizontal text continues");
Using top-down coordinates. Unlike PDF’s bottom-up coordinate system some graph-
ics environments use top-down coordinates which may be preferred by some develop-
ers. Such a coordinate system can easily be established using PDFlib’s transformation 
functions. However, since the transformations will also affect text output additional 
calls are required in order to avoid text being displayed in a mirrored sense.
In order to facilitate the use of top-down coordinates PDFlib supports a special mode 
in which all relevant coordinates will be interpreted differently: instead of working with 
the default PDF coordinate system, with the origin (0, 0) at the lower left corner of the 
page and y coordinates increasing upwards, a modified coordinate system will be used 
which has its origin at the upper left corner of the page with y coordinates increasing 
downwards. This top-down coordinate system can be activated with the topdown pa-
rameter:
PDF_set_parameter(p, "topdown", "true")
A different coordinate system can be established for each page, but the topdown para-
meter must not be set within a page description (but only between pages). The topdown 
feature has been designed to make it quite natural for PDFlib users to work in a top-
VB.NET PDF- HTML5 PDF Viewer for VB.NET Project
C#: ASP.NET PDF Editor; C#: WPF PDF Viewer; C#: Create PDF from Word; C# Split PDF; C# Page: Insert PDF pages; C# Page: Delete PDF pages; C# Read: PDF Text Extract
delete text pdf; how to delete text in a pdf file
C# HTML5 PDF Viewer SDK to view, annotate, create and convert PDF
framework class. An advanced PDF editor enable C# users to edit PDF text, image and pages in Visual Studio .NET project. Support to
delete text pdf file; delete text from pdf preview
3.2  Page Descriptions 53
down coordinate system. For the sake of completeness we’ll list the detailed conse-
quences of establishing a top-down coordinate system below.
»Absolute« coordinates will be interpreted in the user coordinate system without 
any modification:
> All function parameters which are designated as »coordinates« in the function de-
scriptions. Some examples: x, y in PDF_moveto( ); x, y in PDF_circle( ), x, y (but not width 
and height!) in PDF_rect( ); llx, lly, urx, ury in PDF_add_note( )).
»Relative« coordinate values will be modified internally to match the top-down system:
> Text (with positive font size) will be oriented towards the top of the page;
> When the manual talks about »lower left« corner of a rectangle, box etc. this will be 
interpreted as you see it on the page;
> When a rotation angle is specified the center of the rotation is still the origin (0, 0) of 
the user coordinate system. The visual result of a clockwise rotation will still be 
clockwise.
3.2.2 Page Sizes and Coordinate Limits
Standard page formats. For the convenience of PDFlib users, Table 3.5 lists common 
standard page sizes
1
.
The PDFlib header file pdflib.h provides macro definitions for page width and height val-
ues for the most common page formats. These may be used in calls to PDF_begin_page( ). 
They are called <format>_width, <format>_height, where <format> is one of the formats in 
Table 3.5 (in lowercase).
Page size limits. Although PDF and PDFlib don’t impose any restrictions on the usable 
page size, Acrobat implementations suffer from architectural limits regarding the page 
size. Note that other PDF interpreters may well be able to deal with larger or smaller doc-
ument formats. PDFlib will throw an exception if Acrobat’s page size limits are exceed-
ed. The page size limits for Acrobat are shown in Table 3.6.
Different page size boxes. While many PDFlib developers only specify the width and 
height of a page, some advanced applications (especially for prepress work) may want 
to specify one or more of PDF’s additional box entries. PDFlib supports all of PDF’s box 
Table 3.5 Common standard page size dimensions in points
format
width
height
format
width
height
format
width
height
A0
2380
3368
A4
595
842
letter
612
792
A1
1684
2380
A5
421
595
legal
612
1008
A2
1190
1684
A6
297
421
ledger
1224
792
A3
842
1190
B5
501
709
11 x 17
792
1224
1. More information about ISO, Japanese, and U.S. standard formats can be found at the following URLs:
http://www.twics.com/~eds/paper/papersize.html, http://www.cl.cam.ac.uk/~mgk25/iso-paper.html 
Table 3.6 Minimum and maximum page size of Acrobat
PDF viewer
minimum page size
maximum page size
Acrobat 4 and above
1/24" = 3 pt = 0.106 cm
200" = 14400 pt = 508 cm
C# PDF Page Delete Library: remove PDF pages in C#.net, ASP.NET
Page: Delete Existing PDF Pages. |. Home ›› XDoc.PDF ›› C# PDF: Delete PDF Page. C#.NET PDF Library - Delete PDF Document Page in C#.NET.
how to delete text from a pdf; delete text pdf document
C# PDF insert text Library: insert text into PDF content in C#.net
|. Home ›› XDoc.PDF ›› C# PDF: Insert Text to PDF. Powerful .NET PDF edit control allows modify existing scanned PDF text.
acrobat delete text in pdf; how to erase in pdf text
54
Chapter 3:  PDFlib Programming
entries. The following entries, which may be useful in certain environments, can be 
specified by PDFlib clients (definitions taken from the PDF reference):
> MediaBox: this is used to specify the width and height of a page, and describes what 
we usually consider the page size.
> CropBox: the region to which the page contents are to be clipped; Acrobat uses this 
size for screen display and printing.
> TrimBox: the intended dimensions of the finished (possibly cropped) page;
> ArtBox: extent of the page’s meaningful content. It is rarely used by application soft-
ware;
> BleedBox: the region to which the page contents are to be clipped when output in a 
production environment. It may encompass additional bleed areas to account for in-
accuracies in the production process.
PDFlib will not use any of these values apart from recording it in the output file. By de-
fault PDFlib generates a MediaBox according to the specified width and height of the 
page, but does not generate any of the other entries. The following code fragment will 
start a new page and set the four values of the CropBox:
PDF_begin_page(p, 595, 842);
/* start a new page */
PDF_set_value(p, "CropBox/llx", 10);
PDF_set_value(p, "CropBox/lly", 10);
PDF_set_value(p, "CropBox/urx", 500);
PDF_set_value(p, "CropBox/ury", 800);
Number of pages in a document. There is no limit in PDFlib regarding the number of 
generated pages in a document. PDFlib generates PDF structures which allow Acrobat to 
efficiently navigate documents with hundreds of thousands of pages.
Output accuracy and coordinate range. PDFlib’s numerical output accuracy has been 
carefully chosen to match the requirements of PDF and the supported environments, 
while at the same time minimizing output file size. As detailed in Table 3.7 PDFlib’s ac-
curacy depends on the absolute value of coordinates. While most developers may safely 
ignore this issue, demanding applications should take care in their scaling operations 
in order to not exceed PDF’s built-in coordinate limits.
3.2.3 Paths
A path is a shape made of an arbitrary number of straight lines, rectangles, or curves. A 
path may consist of several disconnected sections, called subpaths. There are several 
operations which can be applied to a path (see Section 7.4.6, »Path Painting and Clip-
ping«, page 167):
> Stroking draws a line along the path, using client-supplied parameters (e.g., color, 
line width) for drawing.
Table 3.7 Output accuracy and coordinate range
absolute value
output
0 ... 0.000015
0
0.000015 ... 32767.999999
rounded to four decimal digits
32768 ... 2
31
- 1
rounded to next integer
>= 2
31
an exception will be raised
C# PDF Convert to Text SDK: Convert PDF to txt files in C#.net
PDF to Text. |. C#.NET PDF SDK - Convert PDF to Text in C#.NET. Empower C# Users to Convert PDF to Text (TXT) in Visual C# with .NET XDoc.PDF Converter Library.
delete text from pdf acrobat; how to edit and delete text in pdf file online
C# PDF Text Search Library: search text inside PDF file in C#.net
|. Home ›› XDoc.PDF ›› C# PDF: Search PDF Text. C#.NET PDF SDK - Search and Find PDF Text in C#.NET. C#.NET PDF DLLs for Finding Text in PDF Document.
delete text pdf acrobat professional; how to delete text in a pdf acrobat
3.2  Page Descriptions 55
> Filling paints the entire region enclosed by the path, using client-supplied parame-
ters for filling.
> Clipping reduces the imageable area for subsequent drawing operations by replacing 
the current clipping area (which is the page size by default) with the intersection of 
the current clipping area and the area enclosed by the path.
> Merely terminating the path results in an invisible path, which will nevertheless be 
present in the PDF file. This will only rarely be required.
It is an error to construct a path without applying any of the above operations to it. 
PDFlib’s scoping system ensures that clients obey to this restriction. These rules may 
easily be summarized as »don’t change the appearance within a path description«.
Merely constructing a path doesn’t result in anything showing up on the page; you 
must either fill or stroke the path in order to get visible results:
PDF_moveto(p, 100, 100);
PDF_lineto(p, 200, 100);
PDF_stroke(p);
Most graphics functions make use of the concept of a current point, which can be 
thought of as the location of the pen used for drawing.
3.2.4 Templates
Templates in PDF. PDFlib supports a PDF feature with the technical name form 
XObjects. However, since this term conflicts with interactive forms we refer to this fea-
ture as templates. A PDFlib template can be thought of as an off-page buffer into which 
text, vector, and image operations are redirected (instead of acting on a regular page). 
After the template is finished it can be used much like a raster image, and placed an ar-
bitrary number of times on arbitrary pages. Like images, templates can be subjected to 
geometrical transformations such as scaling or skewing. When a template is used on 
multiple pages (or multiply on the same page), the actual PDF operators for construct-
ing the template are only included once in the PDF file, thereby saving PDF output file 
size. Templates suggest themselves for elements which appear repeatedly on several 
pages, such as a constant background, a company logo, or graphical elements emitted 
by CAD and geographical mapping software. Other typical examples for template usage 
include crop and registration marks or custom Asian glyphs.
Using templates with PDFlib. Templates can only be defined outside of a page descrip-
tion, and can be used within a page description. However, templates may also contain 
other templates. Obviously, using a template within its own definition is not possible. 
Referring to an already defined template on a page is achieved with the PDF_fit_image( ) 
function just like images are placed on the page (see Section 5.3, »Placing Images and 
Imported PDF Pages«, page 115). The general template idiom in PDFlib looks as follows:
/* define the template */
template = PDF_begin_template(p, template_width, template_height);
...place marks on the template using text, vector, and image functions...
PDF_end_template(p);
...
PDF_begin_page(p, page_width, page_height);
/* use the template */
PDF_fit_image(p, template, (float) 0.0, (float) 0.0, "");
C# PDF metadata Library: add, remove, update PDF metadata in C#.
Allow C# Developers to Read, Add, Edit, Update and Delete PDF Metadata in .NET Project. Remove and delete metadata from PDF file.
how to delete text in pdf converter; how to copy text out of a pdf
VB.NET PDF Page Delete Library: remove PDF pages in vb.net, ASP.
›› VB.NET PDF: Delete PDF Page. VB.NET PDF - How to Delete PDF Document Page in VB.NET. Visual Basic Sample Codes to Delete PDF Document Page in VB.NET Class.
erase text from pdf file; how to delete text from a pdf in acrobat
56
Chapter 3:  PDFlib Programming
...more page marking operations...
PDF_end_page(p);
...
PDF_close_image(p, template);
All text, graphics, and color functions can be used on a template. However, the follow-
ing functions must not be used while constructing a template:
> The functions in Section 7.6, »Image and Template Functions«, page 175, except PDF_
place_image( ), PDF_fit_image( ), and PDF_close_image( ). This is not a big restriction 
since images can be opened outside of a template definition, and freely be used 
within a template (but not opened).
> The functions in Section 7.9, »Hypertext Functions«, page 191. Hypertext elements 
must always be defined on the page where they should appear in the document, and 
cannot be generated as part of a template.
Template support in third-party software. Templates (form XObjects) are an integral 
part of the PDF specification, and can be perfectly viewed and printed with Acrobat. 
However, not all PDF consumers are prepared to deal with this construct. For example, 
the Acrobat plugin Enfocus PitStop 5.0 can only move templates, but cannot access indi-
vidual elements within a template. On the other hand, Adobe Illustrator 9 and 10 fully 
support templates.
3.3  Working with Color 57
3.3 Working with Color
3.3.1 Color and Color Spaces
PDFlib clients may specify the colors used for filling and stroking the interior of paths 
and text characters. Colors may be specified in several color spaces:
> Gray values between 0=black and 1=white;
> RGB triples, i.e., three values between 0 and 1 specifying the percentage of red, green, 
and blue; (0, 0, 0)=black, (1, 1, 1)=white;
> Four CMYK values between 0=no color and 1=full color, representing cyan, magenta, 
yellow, and black values; (0, 0, 0, 0)=white, (0, 0, 0, 1)=black. Note that this is different 
from the RGB specification.
> Device-independent colors in the CIE L*a*b* color space are specified by a luminance 
value and two color values (see Section 3.3.6, »Device-Independent CIE L*a*b* Color«, 
page 63).
> ICC-based colors are specified with the help of an ICC profile (see Section 3.3.4, »Color 
Management and ICC Profiles«, page 60).
> Spot color (separation color space): a predefined or arbitrarily named custom color 
with an alternate representation in one of the other color spaces above; this is gener-
ally used for preparing documents which are intended to be printed on an offset 
printing machine with one or more custom colors. The tint value (percentage) rang-
es from 0=no color to 1=maximum intensity of the spot color. See Section 3.3.3, »Spot 
Colors«, page 58, for a list of spot color names.
> Patterns: tiling with an object composed of arbitrary text, vector, or image graphics 
(see Section 3.3.2, »Patterns and Smooth Shadings«, page 57).
> Shadings (smooth blends) provide a gradual transition between two colors, and are 
based on another color space (see Section 3.3.2, »Patterns and Smooth Shadings«, 
page 57).
> The indexed color space is a not really a color space on its own, but rather an efficient 
coding of another color space. It will automatically be generated when an indexed 
(palette-based) image is imported.
The default color for stroke and fill operations is black.
3.3.2 Patterns and Smooth Shadings
As an alternative to solid colors, patterns and shadings are special kinds of colors which 
can be used to fill or stroke arbitrary objects.
Patterns. A pattern is defined by an arbitrary number of painting operations which 
are grouped into a single entity. This group of objects can be used to fill or stroke arbi-
trary other objects by replicating (or tiling) the group over the entire area to be filled or 
the path to be stroked. Working with patterns involves the following steps:
> First, the pattern must be defined between PDF_begin_pattern( ) and PDF_end_
pattern( ). Most graphics operators can be used to define a pattern.
> The pattern handle returned by PDF_begin_pattern( ) can be used to set the pattern as 
the current color using PDF_setcolor( ).
Depending on the painttype parameter of PDF_begin_pattern( ) the pattern definition 
may or may not include its own color specification. If painttype is 1, the pattern defini-
58
Chapter 3:  PDFlib Programming
tion must contain its own color specification and will always look the same; if painttype 
is 2, the pattern definition must not include any color specification. Instead, the current 
fill or stroke color will be applied when the pattern is used for filling or stroking.
Note Patterns can also be defined based on a smooth shading (see below).
Smooth shadings. Smooth shadings, also called color blends or gradients, provide a 
continuous transition from one color to another. Both colors must be specified in the 
same color space. PDFlib supports two different kinds of geometry for smooth shadings:
> axial shadings are defined along a line;
> radial shadings are defined between two circles.
Shadings are defined as a transition between two colors. The first color is always taken 
to be the current fill color; the second color is provided in the c1, c2, c3, and c4 parameters 
of PDF_shading( ). These numerical values will be interpreted in the first color’s color 
space according to the description of PDF_setcolor( ).
Calling PDF_shading( ) will return a handle to a shading object which can be used in 
two ways:
> Fill an area with PDF_shfill( ). This method can be used when the geometry of the ob-
ject to be filled is the same as the geometry of the shading. Contrary to its name this 
function will not only fill the interior of the object, but also affects the exterior. This 
behavior can be modified with PDF_clip( ).
> Define a shading pattern to be used for filling more complex objects. This involves 
calling PDF_shading_pattern( ) to create a pattern based on the shading, and using this 
pattern to fill or stroke arbitrary objects.
3.3.3 Spot Colors
PDFlib supports spot colors (technically known as Separation color space in PDF, al-
though the term separation is generally used with process colors, too) which can be 
used to print custom colors outside the range of colors mixed from process colors. Spot 
colors are specified by name, and in PDF are always accompanied by an alternate color 
which closely, but not exactly, resembles the spot color. Acrobat will use the alternate 
color for screen display and printing to devices which do not support spot colors (such 
as office printers). On the printing press the requested spot color will be applied in addi-
tion to any process colors which may be used in the document. This requires the PDF 
files to be post-processed by a process called color separation.
Note PDF color separation is outside the scope of PDFlib; additional software for Acrobat 5, such as 
the plugins callas pdfOutput PRO
1
, Lantana Crackerjack
2
, or in-RIP separation is required.
Note Some spot colors do not display correctly on screen in Acrobat 5 when Overprint Preview is 
turned on. They can be separated and printed correctly, though.
PDFlib supports various built-in spot color libraries as well as custom (user-defined) 
spot colors. When a spot color name is requested with PDF_makespotcolor( ) PDFlib will 
first check whether the requested spot color can be found in one of its built-in libraries. 
If so, PDFlib will use built-in values for the alternate color. Otherwise the spot color is as-
sumed to be a user-defined color, and the client must supply appropriate alternate col-
1. See http://www.callassoftware.com 
2. See http://www.lantanarips.com 
3.3  Working with Color 59
or values (via the current color). Built-in spot colors can not be redefined with custom 
alternate values. Spot colors can be tinted, i.e., they can be used with a percentage be-
tween 0 and 1.
PDFlib will automatically generate suitable alternate colors for built-in spot colors 
when a PDF/X conformance level has been selected (see Section 3.4, »PDF/X Support«, 
page 64). For custom spot colors it is the user’s responsibility to provide alternate colors 
which are compatible with the selected PDF/X conformance level.
Note Built-in spot color data and the corresponding trademarks have been licensed by PDFlib GmbH 
from the respective trademark owners for use in PDFlib software.
PANTONE® colors. PANTONE Colors are well-known and 
widely used on a world-wide basis. PDFlib fully supports the 
PANTONE MATCHING SYSTEM®, totalling ca. 20000 swatches. 
All color swatch names from the following digital color li-
braries can be used (sample swatch names are provided in 
parentheses):
PANTONE solid coated (PANTONE 185 C)
PANTONE solid uncoated (PANTONE 185 U)
PANTONE solid matte (PANTONE  185 M)
PANTONE process coated (PANTONE DS 35-1 C)
PANTONE process uncoated (PANTONE DS 35-1 U)
PANTONE process coated EURO (PANTONE DE  35-1 C)
PANTONE pastel coated (PANTONE  9461 C)
PANTONE pastel uncoated (PANTONE  9461 U)
PANTONE metallic coated (PANTONE 871 C)
PANTONE solid to process coated (PANTONE  185 PC)
PANTONE solid to process coated EURO (PANTONE 185 EC)
PANTONE hexachrome® coated (PANTONE  H 305-1 C)
PANTONE hexachrome® uncoated (PANTONE H 305-1 U)
PANTONE solid in hexachrome coated (PANTONE 185 HC)
Old color name prefixes CV, CVV, CVU, CVC, and CVP will also be accepted. The PANTONE 
prefix must always be provided in the swatch name as shown in the examples. General-
ly, PANTONE Color names must be constructed according to the following scheme:
PANTONE <id> <paperstock>
where <id> is the identifier of the color (e.g., 185) and <paperstock> the abbreviation of the 
paper stock in use (e.g., C for coated). A single space character must be provided between 
all components constituting the swatch name. It is an error to request a spot color name 
starting with the PANTONE prefix if the name does not represent a valid PANTONE Color. 
The following code snippet demonstrates the use of a PANTONE Color with a tint value 
of 70 percent:
spot = PDF_makespotcolor(p, "PANTONE 281 U", 0);
PDF_setcolor(p, "fill", "spot", spot, 0.7, 0, 0);
Note PANTONE® Colors displayed here may not match PANTONE-identified standards. Consult cur-
rent PANTONE Color Publications for accurate color. PANTONE® and other Pantone, Inc. trade-
marks are the property of Pantone, Inc. © Pantone, Inc., 2003.
60
Chapter 3:  PDFlib Programming
Note PANTONE® Colors are currently not supported in the PDF/X-1 and PDF/X-1a modes.
HKS® colors. . The HKS color system is widely used in Germa-
ny and other European countries. PDFlib fully supports HKS 
colors, including those from the new HKS 3000 plus palettes. 
All color swatch names from the following digital color librar-
ies (Farbfächer) can be used (sample swatch names are provid-
ed in parentheses):
> HKS K (Kunstdruckpapier) for gloss art paper, 88 colors (HKS 43 K)
> HKS N (Naturpapier) for natural paper, 88 colors  (HKS 43 N)
> HKS E (Endlospapier) for continuous stationary/coated, 90 colors (HKS 43 E)
> HKS Ek (Endlospapier) for continuous stationary/uncoated, 88 colors (HKS 43 E)
> HKS En: identical to HKS E (HKS 43 En)
> HKS Z (Zeitungspapier) for newsprint, 50 colors (HKS 43 Z)
The HKS prefix must always be provided in the swatch name as shown in the examples. 
Generally, HKS color names must be constructed according to one of the following 
schemes:
HKS <id> <paperstock>
where <id> is the identifier of the color (e.g., 43) and <paperstock> the abbreviation of the 
paper stock in use (e.g., N for natural paper). A single space character must be provided 
between the HKS, <id>, and <paperstock> components constituting the swatch name. It is 
an error to request a spot color name starting with the HKS prefix if the name does not 
represent a valid HKS color. The following code snippet demonstrates the use of an HKS 
color with a tint value of 70 percent:
spot = PDF_makespotcolor(p, "HKS 38 E", 0);
PDF_setcolor(p, "fill", "spot", spot, 0.7, 0, 0);
User-defined spot colors. In addition to built-in spot colors as detailed above, PDFlib 
supports custom spot colors. These can be assigned an arbitrary name (which must not 
conflict with the name of any built-in color, however) and an alternate color which will 
be used for screen preview or low-quality printing, but not for high-quality color sepa-
rations. The client is responsible for providing suitable alternate colors for custom spot 
colors.
There is no separate PDFlib function for setting the alternate color for a new spot col-
or; instead, the current fill color will be used. Except for an additional call to set the al-
ternate color, defining and using custom spot colors works similarly to using built-in 
spot colors:
PDF_setcolor(p, "fill", "cmyk", 0.2, 1.0, 0.2, 0); /* define alternate CMYK values */
spot = PDF_makespotcolor(p, "CompanyLogo", 0);
/* derive a spot color from it */
PDF_setcolor(p, "fill", "spot", spot, 1, 0, 0);
/* set the spot color */
3.3.4 Color Management and ICC Profiles
The International Color Consortium (ICC)
1
defined a file format for specifying color 
characteristics of input and output devices. These ICC color profiles are considered an 
industry standard, and are supported by all major color management system and appli-
1. See http://www.color.org 
Documents you may be interested
Documents you may be interested