pdf library c# free : Extract pdf data into excel Library software component .net windows winforms mvc PDFlib-7-tutorial6-part1861

3.3  Working with Color 61
Cookbook A full code sample can be found in the Cookbook topic color/color_gradient.
3.3.2 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.
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-
or values (via the current color). Spot colors can be tinted, i.e., they can be used with a 
percentage between 0 and 1.
By default, built-in spot colors can not be redefined with custom alternate values. 
However, this behavior can be changed with the spotcolorlookup parameter. This can be 
useful to achieve compatibility with older applications which may use different color 
definitions, and for workflows which cannot deal with PDFlib’s Lab alternate values for 
PANTONE colors.
PDFlib will automatically generate suitable alternate colors for built-in spot colors 
when a PDF/X or PDF/A conformance level has been selected (see Section 9.4, »PDF/X for 
Print Production«, page 202). For custom spot colors it is the user’s responsibility to pro-
vide alternate colors which are compatible with the selected PDF/X or PDF/A conform-
ance 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.
Cookbook A full code sample can be found in the Cookbook topic color/spot_color.
PANTONE® colors. PANTONE colors are well-known and 
widely used on a world-wide basis. PDFlib fully supports the 
Pantone Matching System• , totalling ca. 24 000 swatches. 
All color swatch names from the digital color libraries listed 
in Table 3.3 can be used. Commercial PDFlib customers can 
request a text file with the full list of PANTONE spot color 
names from our support.
Spot color names are case-sensitive; use uppercase as 
shown in the examples. Old color name prefixes CV, CVV, 
CVU, CVC, and CVP will also be accepted, and changed to the corresponding new color 
names unless the preserveoldpantonenames parameter is true. The PANTONE prefix must 
always be provided in the swatch name as shown in the examples. Generally, PANTONE 
color names must be constructed according to the following scheme:
PANTONE <id> <paperstock>
Extract pdf data into excel - extract form data from PDF in C#.net, ASP.NET, MVC, Ajax, WPF
Help to Read and Extract Field Data from PDF with a Convenient C# Solution
exporting data from pdf to excel; java read pdf form fields
Extract pdf data into excel - VB.NET PDF Form Data Read library: extract form data from PDF in vb.net, ASP.NET, MVC, Ajax, WPF
Convenient VB.NET Solution to Read and Extract Field Data from PDF
save data in pdf form reader; extract data from pdf into excel
62
Chapter 3:  PDFlib Programming
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. If a spot color is requested where the 
name starts with the PANTONE prefix, but the name does not represent a valid PANTONE 
color, the function call will fail. The following code snippet demonstrates the use of a 
PANTONE color with a tint value of 70percent:
spot = p.makespotcolor("PANTONE 281 U");
p.setcolor("fill", "spot", spot, 0.7, 0, 0);
Note PANTONE® colors displayed here may not match PANTONE-identified standards. Consult current 
PANTONE Color Publications for accurate color. PANTONE® and other Pantone, Inc. trademarks 
are the property of Pantone, Inc. © Pantone, Inc., 2003.
Note PANTONE® colors are not supported in PDF/X-1a mode.
HKS® colors. . The HKS color system is widely used in Germa-
ny and other European countries. PDFlib fully supports HKS 
colors. All color swatch names from the following digital col-
or libraries (Farbfächer) can be used (sample swatch names are 
provided in parentheses):
Table 3.3 PANTONE spot color libraries built into PDFlib
color library name
sample color name
remarks
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 process uncoated EURO
PANTONE DE 35-1 U
introduced in May 2006
PANTONE pastel coated
PANTONE 9461 C
includes new colors introduced in 2006
PANTONE pastel uncoated
PANTONE 9461 U
includes new colors introduced in 2006
PANTONE metallic coated
PANTONE 871 C
includes new colors introduced in 2006
PANTONE color bridge CMYK PC
PANTONE 185 PC
replaces PANTONE solid to process coated
PANTONE color bridge CMYK EURO
PANTONE 185 EC
replaces PANTONE solid to process coated EURO
PANTONE color bridge uncoated
PANTONE 185 UP
introduced in July 2006
PANTONE hexachrome
coated
PANTONE H 305-1 C
not recommended; will be discontinued
PANTONE hexachrome
uncoated
PANTONE H 305-1 U
not recommended; will be discontinued
PANTONE solid in hexachrome coated
PANTONE 185 HC
PANTONE solid to process coated
PANTONE 185 PC
replaced by PANTONE color bridge CMYK PC
PANTONE solid to process coated EURO
PANTONE 185 EC
replaced by PANTONE color bridge CMYK EURO
C# Create PDF from Excel Library to convert xlsx, xls to PDF in C#
Turn all Excel spreadsheet into high quality PDF without losing formatting. Evaluation library and components for PDF creation from Excel in C#.NET framework.
exporting pdf form to excel; pdf data extraction to excel
C# PDF insert text Library: insert text into PDF content in C#.net
Parameters: Name, Description, Valid Value. value, The char wil be added into PDF page, 0
extract data from pdf form; pdf form data extraction
3.3  Working with Color 63
>HKS K (Kunstdruckpapier) for gloss art paper, 88 colors (HKS 43 K)
>HKS N (Naturpapier) for natural paper, 86 colors  (HKS 43 N)
>HKS E (Endlospapier) for continuous stationary/coated, 88 colors (HKS 43 E)
>HKS Z (Zeitungspapier) for newsprint, 50 colors (HKS 43 Z)
Commercial PDFlib customers can request a text file with the full list of HKS spot color 
names from our support.
Spot color names are case-sensitive; use uppercase as shown in the examples. 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. If a 
spot color is requested where the name starts with the HKS prefix, but the name does 
not represent a valid HKS color, the function call will fail. The following code snippet 
demonstrates the use of an HKS color with a tint value of 70 percent:
spot = p.makespotcolor("HKS 38 E");
p.setcolor("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:
p.setcolor("fill", "cmyk", 0.2, 1.0, 0.2, 0);
/* define alternate CMYK values */
spot = p.makespotcolor("CompanyLogo");
/* derive a spot color from it */
p.setcolor("fill", "spot", spot, 1, 0, 0);
/* set the spot color */
3.3.3 Color Management and ICC Profiles
PDFlib supports several color management concepts including device-independent col-
or, rendering intents, and ICC profiles.
Cookbook A full code sample can be found in the Cookbook topic color/iccprofile_to_image.
Device-Independent CIE L*a*b* Color. Device-independent color values can be speci-
fied in the CIE 1976 L*a*b* color space by supplying the color space name lab to PDF_
setcolor( ). Colors in the L*a*b* color space are specified by a luminance value in the 
range 0-100, and two color values in the range -127 to 128. The illuminant used for the 
lab color space will be D50 (daylight 5000K, 2˚ observer)
VB.NET Create PDF from Excel Library to convert xlsx, xls to PDF
Field Data. Data: Auto Fill-in Field Data. Field: Insert & pages edit, C#.NET PDF pages extract, copy, paste NET Microsoft Office Excel to adobe PDF file converter
pdf data extraction tool; sign pdf form reader
C# PDF Page Extract Library: copy, paste, cut PDF pages in C#.net
pdf"; doc.Save(outputFilePath); C#.NET Sample Code: Extract PDF Pages and Save into a New PDF File in C#.NET. You can easily get
collect data from pdf forms; how to save a filled out pdf form in reader
64
Chapter 3:  PDFlib Programming
Rendering Intents. Although PDFlib clients can specify device-independent color val-
ues, a particular output device is not necessarily capable of accurately reproducing the 
required colors. In this situation some compromises have to be made regarding the 
trade-offs in a process called gamut compression, i.e., reducing the range of colors to a 
smaller range which can be reproduced by a particular device. The rendering intent can 
be used to control this process. Rendering intents can be specified for individual images 
by supplying the renderingintent parameter or option to PDF_load_image( ). In addition, 
rendering intents can be specified for text and vector graphics by supplying the render-
ingintent option to PDF_create_gstate( ).
ICC profiles. The International Color Consortium (ICC)
1
defined a file format for speci-
fying color characteristics of input and output devices. These ICC color profiles are con-
sidered an industry standard, and are supported by all major color management system 
and application vendors. PDFlib supports color management with ICC profiles in the 
following areas:
>Define ICC-based color spaces for text and vector graphics on the page.
>Process ICC profiles embedded in imported image files.
>Apply an ICC profile to an imported image (possibly overriding an ICC profile em-
bedded in the image).
>Define default color spaces for mapping grayscale, RGB, or CMYK data to ICC-based 
color spaces.
>Define a PDF/X or PDF/A output intent by means of an external ICC profile.
Color management does not change the number of components in a color specification 
(e.g., from RGB to CMYK).
Note ICC color profiles for common printing conditions are available for download from 
www.pdflib.com, as well as links to other freely available ICC profiles.
Searching for ICC profiles. PDFlib will search for ICC profiles according to the following 
steps, using the profilename parameter supplied to PDF_load_iccprofile( ):
>If profilename=sRGB, PDFlib will use its internal sRGB profile (see below), and termi-
nate the search.
>Check whether there is a resource named profilename in the ICCProfile resource cate-
gory. If so, use its value as file name in the following steps. If there is no such re-
source, use profilename as a file name directly.
>Use the file name determined in the previous step to locate a disk file by trying the 
following combinations one after another:
<filename>
<filename>.icc
<filename>.icm
<colordir>/<filename>
<colordir>/<filename>.icc
<colordir>/<filename>.icm
On Windows 2000/XP colordir designates the directory where device-specific ICC pro-
files are stored by the operating system (typically C:\WINNT\system32\spool\drivers\ 
color). On Mac OS X the following paths will be tried for colordir:
1. See www.color.org 
C# PDF insert image Library: insert images into PDF in C#.net, ASP
Import graphic picture, digital photo, signature and logo into PDF document. Merge several images into PDF. Insert images into PDF form field.
how to save pdf form data in reader; pdf data extraction
VB.NET PDF Page Extract Library: copy, paste, cut PDF pages in vb.
Help to extract single or multiple pages from adobe PDF file and save into a new PDF file. VB.NET: Extract PDF Pages and Save into a New PDF File.
filling out pdf forms with reader; online form pdf output
3.3  Working with Color 65
/System/Library/ColorSync/Profiles
/Library/ColorSync/Profiles
/Network/Library/ColorSync/Profiles
~/Library/ColorSync/Profiles
On other systems the steps involving colordir will be omitted.
Acceptable ICC profiles. The type of acceptable ICC profiles depends on the usage pa-
rameter supplied to PDF_load_iccprofile( ):
>If usage=outputintent, only output device (printer) profiles will be accepted in PDF/X 
mode, and any profile in PDF/A mode.
>If usage=iccbased, input, display and output device (scanner, monitor, and printer) 
profiles plus color space conversion profiles will be accepted. They may be specified 
in the gray, RGB, CMYK, or Lab color spaces.
The sRGB color space and sRGB ICC profile. PDFlib supports the industry-standard 
RGB color space called sRGB (formally IEC 61966-2-1). sRGB is supported by a variety of 
software and hardware vendors and is widely used for simplified color management for 
consumer RGB devices such as digital still cameras, office equipment such as color 
printers, and monitors. PDFlib supports the sRGB color space and includes the required 
ICC profile data internally. Therefore an sRGB profile must not be configured explicitly 
by the client, but it is always available without any additional configuration. It can be 
requested by calling PDF_load_iccprofile( ) with profilename=sRGB.
Using embedded profiles in images (ICC-tagged images). Some images may contain 
embedded ICC profiles describing the nature of the image’s color values. For example, 
an embedded ICC profile can describe the color characteristics of the scanner used to 
produce the image data. PDFlib can handle embedded ICC profiles in the PNG, JPEG, and 
TIFF image file formats. If the honoriccprofile option or parameter is set to true (which is 
the default) the ICC profile embedded in an image will be extracted from the image, and 
embedded in the PDF output such that Acrobat will apply it to the image. This process is 
sometimes referred to as tagging an image with an ICC profile. PDFlib will not alter the 
image’s pixel values.
The image:iccprofile parameter can be used to obtain an ICC profile handle for the 
profile embedded in an image. This may be useful when the same profile shall be ap-
plied to multiple images.
In order to check the number of color components in an unknown ICC profile use the 
icccomponents parameter.
Applying external ICC profiles to images (tagging). As an alternative to using ICC pro-
files embedded in an image, an external profile may be applied to an individual image 
by supplying a profile handle along with the iccprofile option to PDF_load_image( ).
ICC-based color spaces for page descriptions. The color values for text and vector 
graphics can directly be specified in the ICC-based color space specified by a profile. The 
color space must first be set by supplying the ICC profile handle as value to one of the 
setcolor:iccprofilegray, setcolor:iccprofilergb, setcolor:iccprofilecmyk parameters. Subse-
quently ICC-based color values can be supplied to PDF_setcolor( ) along with one of the 
color space keywords iccbasedgray, iccbasedrgb, or iccbasedcmyk:
C# PDF Page Insert Library: insert pages into PDF file in C#.net
from the ability to inserting a new PDF page into existing PDF PDF page or pages from various file formats, such as PDF, Tiff, Word, Excel, PowerPoint, Bmp
how to fill out pdf forms in reader; exporting pdf data to excel
C# PDF File Split Library: Split, seperate PDF into multiple files
Divide PDF File into Two Using C#. This is an C# example of splitting a PDF to two new PDF files. Split PDF Document into Multiple PDF Files in C#.
how to extract data from pdf file using java; how to save filled out pdf form in reader
66
Chapter 3:  PDFlib Programming
p.set_parameter("errorpolicy", "return");
icchandle = p.load_iccprofile(...);
if (icchandle == -1)
{
return;
}
p.set_value("setcolor:iccprofilecmyk", icchandle);
p.setcolor("fill", "iccbasedcmyk", 0, 1, 0, 0);
Mapping device colors to ICC-based default color spaces. PDF provides a feature for 
mapping device-dependent gray, RGB, or CMYK colors in a page description to device-
independent colors. This can be used to attach a precise colorimetric specification to 
color values which otherwise would be device-dependent. Mapping color values this 
way is accomplished by supplying a DefaultGray, DefaultRGB, or DefaultCMYK color 
space definition. In PDFlib it can be achieved by setting the defaultgray, defaultrgb, or 
defaultcmyk parameters and supplying an ICC profile handle as the corresponding val-
ue. The following examples will set the sRGB color space as the default RGB color space 
for text, images, and vector graphics:
/* sRGB is guaranteed to be always available */
icchandle = p.load_iccprofile("sRGB", 0, "usage=iccbased");
p.set_value("defaultrgb", icchandle);
Defining output intents for PDF/X and PDF/A. An output device (printer) profile can be 
used to specify an output condition for PDF/X. This is done by supplying usage=output-
intent in the call to PDF_load_iccprofile( ). For PDF/A any kind of profile can be specified as 
output intent. For details see Section 9.4, »PDF/X for Print Production«, page 202, and 
Section 9.5, »PDF/A for Archiving«, page 207.
3.4  Interactive Elements 67
3.4 Interactive Elements
Cookbook Code samples regarding interactive element issues can be found in the interactive category 
of the PDFlib Cookbook.
3.4.1 Examples for Creating Interactive Elements
This section explains how to create interactive elements such as bookmarks, form 
fields, and annotations. Figure 3.1 shows the resulting document with all interactive ele-
ments that we will create in this section. The document contains the following interac-
tive elements:
>At the top right there is an invisible Web link to www.kraxi.com at the text 
www.kraxi.com. Clicking this area will bring up the corresponding Web page.
>A gray form field of type text is located below the Web link. Using JavaScript code it 
will automatically be filled with the current date.
>The red pushpin contains an annotation with an attachment. Clicking it will open 
the attached file.
>At the bottom left there is a form field of type button with a printer symbol. Clicking 
this button will execute Acrobat’s menu item File, Print.
>The navigation page contains the bookmark »Our Paper Planes Catalog«. Clicking 
this bookmark will bring up a page of another PDF document.
In the next paragraphs we will show in detail how to create these interactive elements 
with PDFlib.
Web link. Let’s start with a link to the Web site www.kraxi.com. This is accomplished in 
three steps. First, we fit the text on which the Web link should work. Using the matchbox 
option with name=kraxi we specify the rectangle of the text’s fitbox for further refer-
ence. 
Second, we create an action of type URI (in Acrobat: Open a web link). This will provide 
us with an action handle which subsequently can be assigned to one or more interactive 
elements.
Third, we create the actual link. A link in PDF is an annotation of type Link. The action 
option for the link contains the event name activate which will trigger the action, plus 
the act handle created above for the action itself. By default the link will be displayed 
Fig. 3.1
Document with interactive 
elements
68
Chapter 3:  PDFlib Programming
with a thin black border. Initially this is convenient for precise positioning, but we dis-
abled the border with linewidth=0.
normalfont = p.load_font("Helvetica", "unicode", "");
p.begin_page_ext(pagewidth, pageheight, "topdown");
/* place the text line "Kraxi Systems, Inc." using a matchbox */
String optlist =
"font=" + normalfont + " fontsize=8 position={left top} " +
"matchbox={name=kraxi} fillcolor={rgb 0 0 1} underline";
p.fit_textline("Kraxi Systems, Inc.", 2, 20, optlist);
/* create URI action */
optlist = "url={http://www.kraxi.com}";
int act = p.create_action("URI", optlist);
/* create Link annotation on matchbox "kraxi" */
optlist = "action={activate " + act + "} linewidth=0 usematchbox={kraxi}";
/* 0 rectangle coordinates will be replaced with matchbox coordinates */
p.create_annotation(0, 0, 0, 0, "Link", optlist);
p.end_page_ext("");
For an example of creating a Web link on an image or on parts of a textflow, see Section 
7.5, »Matchboxes«, page 177.
Cookbook A full code sample can be found in the Cookbook topic interactive/link_annotations.
Bookmark for jumping to another file. Now let’s create the bookmark »Our Paper 
Planes Catalog« which jumps to another PDF file called paper_planes_catalog.pdf. First 
we create an action of Type GoToR. In the option list for this action we define the name 
of the target document with the filename option; the destination option specifies a cer-
tain part of the page which will be enlarged. More precisely, the document will be dis-
played on the second page (page 2) with a fixed view (type fixed), where the middle of the 
page is visible (left 50 top 200) and the zoom factor is 200% (zoom 2):
String optlist =
"filename=paper_planes_catalog.pdf " +
"destination={page 2 type fixed left 50 top 200 zoom 2}";
goto_action = p.create_action("GoToR", optlist);
In the next step we create the actual bookmark. The action option for the bookmark con-
tains the activate event which will trigger the action, plus the goto_action handle created 
above for the desired action. The option fontstyle bold specifies bold text, and textcolor 
{rgb 0 0 1} makes the bookmark blue. The bookmark text »Our Paper Planes Catalog« is 
provided as a function parameter:
String optlist =
"action={activate " + goto_action + "} fontstyle=bold textcolor={rgb 0 0 1}";
catalog_bookmark = p.create_bookmark("Our Paper Planes Catalog", optlist);
Clicking the bookmark will display the specified part of the page in the target docu-
ment.
3.4  Interactive Elements 69
Cookbook A full code sample can be found in the Cookbook topic interactive/nested_bookmarks.
Annotation with file attachment. In the next example we create a file attachment. We 
start by creating an annotation of type FileAttachment. The filename option specifies the 
name of the attachment, the option mimetype image/gif specifies its type (MIME is a 
common convention for classifying file contents). The annotation will be displayed as a 
pushpin (iconname pushpin) in red (annotcolor {rgb 1 0 0}) and has a tooltip (contents {Get 
the Kraxi Paper Plane!}). It will not be printed (display noprint):
String optlist =
"filename=kraxi_logo.gif mimetype=image/gif iconname=pushpin " +
"annotcolor={rgb 1 0 0} contents={Get the Kraxi Paper Plane!} display=noprint";
p.create_annotation(left_x, left_y, right_x, right_y, "FileAttachment", optlist);
Note that the size of the symbol defined with iconname does not vary; the icon will be 
displayed in its standard size in the top left corner of the specified rectangle.
Button form field for printing. The next example creates a button form field which 
can be used for printing the document. In the first version we add a caption to the but-
ton; later we will use a printer symbol instead of the caption. We start by creating an ac-
tion of type Named (in Acrobat: Execute a menu item). Also, we must specify the font for 
the caption:
print_action = p.create_action("Named", "menuname=Print");
button_font = p.load_font("Helvetica-Bold", "unicode", "");
The action option for the button form field contains the up event (in Acrobat: Mouse Up) 
as a trigger for executing the action, plus the print_action handle created above for the 
action itself. The backgroundcolor {rgb 1 1 0} option specifies yellow background, while 
bordercolor {rgb 0 0 0} specifies black border. The option caption Print adds the text Print 
to the button, and tooltip {Print the document} creates an additional explanation for the 
user. The font option specifies the font using the button_font handle created above. By 
default, the size of the caption will be adjusted so that it completely fits into the but-
ton’s area. Finally, the actual button form field is created with proper coordinates, the 
name print_button, the type pushbutton and the appropriate options:
String optlist =
"action {up " + print_action + "} backgroundcolor={rgb 1 1 0} " +
"bordercolor={rgb 0 0 0} caption=Print tooltip={Print the document} font=" +
button_font;
p.create_field(left_x, left_y, right_x, right_y, "print_button", "pushbutton", optlist);
Now we extend the first version of the button by replacing the text Print with a little 
printer icon. To achieve this we load the corresponding image file print_icon.jpg as a 
template before creating the page. Using the icon option we assign the template handle 
print_icon to the button field, and create the form field similarly to the code above:
print_icon = p.load_image("auto", "print_icon.jpg", "template");
if (print_icon == -1)
{
/* Error handling */
return;
70
Chapter 3:  PDFlib Programming
}
p.begin_page_ext(pagewidth, pageheight, "");
...
String optlist = "action={up " + print_action + "} icon=" + print_icon +
" tooltip={Print the document} font=" + button_font;
p.create_field(left_x, left_y, right_x, right_y, "print_button", "pushbutton", optlist);
Cookbook A full code sample can be found in the Cookbook topic interactive/form_pushbutton.
Simple text field. Now we create a text field near the upper right corner of the page. 
The user will be able to enter the current date in this field. We acquire a font handle and 
create a form field of type textfield which is called date, and has a gray background:
textfield_font = p.load_font("Helvetica-Bold", "unicode", "");
String optlist = "backgroundcolor={gray 0.8} font=" + textfield_font;
p.create_field(left_x, left_y, right_x, right_y, "date", "textfield", optlist);
By default the font size is auto, which means that initally the field height is used as the 
font size. When the input reaches the end of the field the font size is decreased so that 
the text always fits into the field.
Cookbook Full code samples can be found in the Cookbook topics in teractive/form_textfield_layout 
and interactive/form_textfield_height.
Text field with JavaScript. In order to improve the text form field created above we au-
tomatically fill it with the current date when the page is opened. First we create an ac-
tion of type JavaScript (in Acrobat: Run a JavaScript). The script option in the action’s op-
tion list defines a JavaScript snippet which displays the current date in the date text 
field in the format month-day-year:
String optlist =
"script={var d = util.printd('mmm dd yyyy', new Date()); "
"var date = this.getField('date'); date.value = d;}"
show_date = p.create_action("JavaScript", optlist);
In the second step we create the page. In the option list we supply the action option 
which attaches the show_date action created above to the trigger event open (in Acrobat: 
Page Open):
String optlist = "action={open " + show_date + "}";
p.begin_page_ext(pagewidth, pageheight, optlist);
Finally we create the text field as we did above. It will automatically be filled with the 
current date whenever the page is opened:
textfield_font = p.load_font("Helvetica-Bold", "winansi", "");
String optlist = "backgroundcolor={gray 0.8} font=" + textfield_font;
p.create_field(left_x, left_y, right_x, right_y, "date", "textfield", optlist);
Cookbook A full code sample can be found in the Cookbook topic interactive/form_textfield_fill_
with_js.
Documents you may be interested
Documents you may be interested