Trademarks
Adobe, Reader, and PostScript are either registered trademarks or trademarks of Adobe Systems Incorporated in the United States
and/or other countries.
Apple and Macintosh are trademarks of Apple Computer, Inc., registered in the United States and other countries.
Hewlett-Packard and HP are registered trademarks of Hewlett-Packard Company.
Microsoft, Windows, MS-DOS, and OpenType are either registered trademarks or trademarks of Microsoft Corporation in the United
States and/or other countries.
UNIX is a registered trademark in the United States and other countries, licensed exclusively through X/Open Company, Ltd.
All other product names are trademarks or registered trademarks of their respective trademark holders.
Contents
1
Overview.......................................................................................................... 13
Print Agent Output ........................................................................................................... 14
Print Agent Commands ................................................................................................... 15
Print Agent Samples........................................................................................................15
Related Documentation ................................................................................................... 15
About This Guide............................................................................................................. 16
Contents
Contents
Contents
Contents
Contents
trayout............................................................................................................... 183
duplex ............................................................................................................... 184
^fax (Fax Data)........................................................................................................ 184
^field (Move to Specific Field) .................................................................................188
^file (Include File in Data)........................................................................................189
^form (Open Template) ........................................................................................... 191
^global (Define Global Field)................................................................................... 193
^graph (Print Logo or Raster Image)....................................................................... 194
^group (Execute Specified Group) ..........................................................................198
^inline (Activate Inline Text Control Processing) .....................................................199
{on|off} .............................................................................................................. 199
[fixed|variable|fixed variable] ............................................................................ 200
[novarsub|varsub] ............................................................................................. 200
[freset|nofreset]................................................................................................. 201
^inlinegraphbegin (Graphic Image Follows) ............................................................201
^inlinegraphend (Graphic Image Ends)...................................................................203
^key (Specify Record Type) .................................................................................... 203
^macro (Insert Macro at Current Position) .............................................................. 204
^newfield (New Field Character) ............................................................................. 204
^page (Move to New Page in Template)................................................................. 205
trayin................................................................................................................. 205
trayout............................................................................................................... 206
duplex ............................................................................................................... 206
^passthru (Send Data Directly to Output) ............................................................... 206
^popsymbolset (Restore Saved Symbol Set).......................................................... 207
^position (Change Placement of Data) ...................................................................207
[absolute] .......................................................................................................... 211
up|down ............................................................................................................ 213
relative .............................................................................................................. 214
left|right .............................................................................................................215
restore .............................................................................................................. 215
save .................................................................................................................. 215
^prefix (Prefix Character) ........................................................................................216
x........................................................................................................................ 216
dictvar x ............................................................................................................ 217
inline x .............................................................................................................. 217
varsub x ............................................................................................................ 218
^pushsymbolset (Save Current Symbol Set) .......................................................... 218
^record (Define Record Structure) ..........................................................................219
^reformat (Reformat Data) ...................................................................................... 220
^shell (Invoke an Operating System Command).....................................................220
^subform (Activate Subform)................................................................................... 221
^symbolset (Select Symbol Set) ............................................................................. 222
^tab (Set or Clear Horizontal Tab Stops) ................................................................ 225
[default].............................................................................................................225
[default] clear .................................................................................................... 226
^terminator (Alternate Newline Character).............................................................. 226
Contents
Contents
10
trayout............................................................................................................... 268
duplex ............................................................................................................... 268
\position (Change Placement of Data) .................................................................... 268
[absolute] .......................................................................................................... 273
up|down ............................................................................................................ 274
relative .............................................................................................................. 275
left|right .............................................................................................................277
restore .............................................................................................................. 277
save .................................................................................................................. 277
\reserve (Reserve Space for Subform) ...................................................................278
n........................................................................................................................ 278
subform.............................................................................................................279
\subform (Activate Subform) ................................................................................... 279
\trace (Trace Facility) .............................................................................................. 280
\$page (Page Number)............................................................................................ 280
Variable Substitution......................................................................................................281
@variable (Replace a Variable) .............................................................................. 282
$currentx (Current Horizontal Position) ............................................................282
$currenty (Current Vertical Position) ................................................................ 282
$date (Current Date)......................................................................................... 283
$duplexsurface (Duplex Mode and Surface) .................................................... 284
$ffile (Current Path and File Name).................................................................. 286
$fieldx (Horizontal Distance to Field)................................................................ 286
$fieldy (Vertical Distance to Field) .................................................................... 286
$file (Current File Name) .................................................................................. 287
$page (Current Page Number) ......................................................................... 287
$printablebottomy (Bottom of Printable Area) .................................................. 288
$printableleftx (Left Limit of Printable Area) .....................................................288
$printablerightx (Right Limit of Printable Area) ................................................. 288
$printabletopy (Top of Printable Area).............................................................. 289
$time (Current Time) ........................................................................................289
fieldname (Global Field) ................................................................................... 290
{[dictionary-name]:}variable-name (Retrieve Variables from Dictionary) .......... 290
Special Variables .................................................................................................... 291
Calculation Expressions ................................................................................................ 292
Contents
11
12
Overview
Print Agent, the output component of Adobe Central Output Server (Central), uses intelligent
merge technology to enable applications to output data, merged with electronic templates.
Output can be in print format, fax format, or PDF format. Central launches Print Agent when
one of the processing steps in a job involves an output task.
To output documents, Print Agent requires:
A transaction file. You can provide data to Print Agent from any application that can create
transaction files with a data format acceptable to Print Agent. See page 27 for the
acceptable data formats. Alternatively, if you have transaction files in a data format not
acceptable to Print Agent, you can use Transformation Agent to transform them to an
acceptable format. For details, see the guide, Advanced Transformations.
A template. The templates used by Print Agent must be created and compiled using Adobe
Output Designer. For details, see the guide, Developing Templates, which accompanies
your Output Designer software.
Command line options describing the required processing. Print Agent can run with a default
set of command line options from its configuration file. Options overriding those in the
configuration file can be included in the transaction file or included on the command line
used to launch Print Agent. For Print Agent command line options, see the chapter
Command Line Options on page 63.
Overview
14
For print output, compile the template for one or more printer presentment targets.
For fax output, compile the template for one or more fax presentment targets.
For PDF output, compile the template for the PDF presentment target.
At output time, use the -asp option (see page 117) to direct the output to a presentment target
other than the default presentment target, and the -apm option (see page 113) to restrict output
to either a printer or fax presentment target.
For fax output, either the transaction file must include a ^fax command (see page 184) or the
command line must contain the faxing parameters.
For PDF output (see page 42), the output destination must be to a PDF file. Use the -abmk
(see page 68) and -abms (see page 69) options to include bookmarks in the PDF file.
PDF output can be passed to Preview Agent, which routes the PDF file to a users workstation
for viewing. For details, see the guide, Previewing Central Output.
Overview
15
Dynamic Merge commands are the base upon which Print Agent processes a transaction
file. These commands control field and template sequencing, data formats, and the
appearance of the templates. Using Dynamic Merge commands, Print Agent can print
multipage templates, multipart templates, or can build a template dynamically using
subforms.
Inline Text Control commands are an advanced feature of Print Agent. They provide greater
control over formatting from within a data stream, and permit you to control template paging
at run-time, based on the needs of the data.
Intelligent Pagination commands control the pagination for a static or dynamic template.
When you use Intelligent Pagination, your data must be in either field-nominated or XML
format.
Variable Substitution commands make data more flexible, by enabling you to substitute
values for variables as the data processes. The values are supplied by Print Agent, based
on such things as date and time, and template and field attributes.
For a complete list of Print Agent commands, see Command Reference on page 173.
RELATED DOCUMENTATION
The documentation set that accompanies Output Designer and Central includes the following
guides, which are relevant to developing applications for processing by Print Agent:
Developing Templates, which provides conceptual information for using Output Designer.
Previewing Central Output, which introduces Preview Agent and describes how to preview
Central output before finalization.
Integrating XML with Central, for a complete description of how XML data is translated.
Overview
16
W
NE
E
AT
PD
2. In the Available Processes box, select Print Agent and then click Edit File.
The descriptive name of the active Central appears within the title of Print Agent
Configuration dialog box.
3. Default values appear in each of the text boxes. You can change any of the values:
Message display controls the logging of trace, informational, warning, and error messages
to the log file.
18
Description
10
20
30
40
Form files - enter the path for templates (forms) referenced in the data stream. If the path
begins with http:, Print Agent will use it to build fully qualified URLs and retrieve templates
from an HTTP server. Otherwise, Print Agent will use it to build fully qualified file names and
retrieve templates from the file system.
Logo files - enter the path for logo files referenced in the data stream.
Data files - enter the path for transaction files referenced in the data stream.
The Browse command buttons open a common dialog box. Here you can select a target
drive and directory from the corresponding list boxes.
The Currency command button opens the Print Agent Currency Options dialog box.
The selections in this dialog box determine the way Print Agent handles currency formatting.
Thousands separator is the character used as a currency thousands separator. The default
is a , (comma).
Decimal character is the character used as a currency decimal separator. The default is a
. (period).
Credit symbol is the character used as a currency credit symbol. The default is CR
(credit).
Debit symbol is the character used as a currency debit symbol. The default is DB (debit).
19
Currency location allows you to change the location of the symbol used to indicate units of
currency. The available locations are left and right. The default currency symbol location is
left.
Currency symbol is the character used as a currency symbol. The default is a $ (dollar
sign).
Parenthesis for negative values is the pair of characters used as currency parentheses,
indicating negative values. The default is ( ) (left and right parenthesis).
Click OK to accept the changes or Cancel to close the dialog box without saving the
changes.
The Characters command button opens the Print Agent Special Characters dialog box.
The selections in this dialog box identify the characters that have a special meaning for Print
Agent.
Alternate newline identifier is the character, in addition to the newline character,
recognized by Print Agent as the end of a line in a multiline field or the end of a single line
field. The default is a ~ (tilde).
New field identifier is the character, in addition to the ^field and \field commands, that tells
Print Agent to end the current field and advance to the next field on the template. The default
is a ` (back quotation mark).
Dictionary name separator is the character recognized by Print Agent as a dictionary name
separator. The default is a : (colon).
DFC command prefix is the character recognized by Print Agent as a Dynamic Merge
command prefix character. The default is a ^ (caret).
Variable substitution prefix is the character recognized by Print Agent as a variable
substitution prefix character. The default is an @ (at sign).
20
ITC command prefix is the character recognized by Print Agent as an Inline Text Control
command prefix character. The default is a \ (backslash).
Click OK to accept the changes or Cancel to close the dialog box without saving the
changes.
4. If you make changes to the Print Agent Configuration dialog box, click OK to update the
configuration file or Cancel to close the dialog box without saving the changes.
If you do not have access to Central Control, you configure Print Agent from the command
prompt.
To configure Print Agent from the command prompt
1. Open the configuration file, jfmerge.ini, using a text editor.
2. Change the value of any entry.
3. Save the configuration file.
21
By specifying Print Agent as a single executable task. This method uses the -axx option on
the standard Central ^job command in the transaction file. The ^job command has the
format:
^job jobname [-axxtaskid] [-ajijobid] [jobtokens]
where:
jobname is a logical name for the transaction.
-axxtaskid (optional) identifies a task that Central executes exclusively. taskid appears
in the Task Table of the Job Management Database. The taskid for Print Agent is
JFMERGE. This value is case-insensitive.
-ajijobid (optional) is a user assigned identifier for the job.
jobtokens (optional) are other options provided to the task by Central. jobtokens may
be any command line options or variable substitution arguments supported by Print Agent,
or the variable substitution arguments supported by Central.
When one of the job steps in the Job Table for the transaction specifies Print Agent. The
Task Id in the Job Table corresponds to an entry in the Task Table that calls Print Agent.
When you wish to use the Job Table to process your transaction file, the ^job command
takes the form:
^job jobname [-ajijobid] [jobtokens]
where:
jobname is the logical name for the transaction.
-ajijobid (optional) is a user assigned identifier for the job.
jobtokens (optional) are other options provided to the task by Central. jobtokens may
be any command line options or variable substitution arguments supported by Print Agent,
or the variable substitution arguments supported by Central.
23
This entry may be sufficient to handle the majority of your printing tasks. If you need additional
Task Table entries for Print Agent, we recommend you use this task as a guideline for creating
your own entries. For additional information on creating Task Table entries, refer to the guide,
Central Control.
The default task JFMERGE contains these entries:
Task Id is JFMERGE. This is the logical task identifier that maps to a Central job step or to the
-axx option on the ^job command. The maximum length is nine characters. Task Id is
case-insensitive and cannot contain blanks.
Program name is jfmerge. This is the executable program name for Print Agent, the task that
Central launches. The maximum length is 255 characters. This value is case-sensitive on
operating systems where case-sensitivity rules apply.
Program options are arguments that Central passes to Print Agent. The string may contain
substitution variables or command line options that Central replaces with actual values at
execution time. (For the Central substitution variables, see the guide, Working with Central.)
Program options are case-insensitive. The maximum length is 1023 characters.
The program options are enclosed in (quotation marks). As well, notice the additional set of
quotation marks surrounding certain of the variables. When there is a possibility that the value
generated will contain spaces within its parameters, a substitution variable should be
surrounded with quotation marks. The . (period) at the end of a substitution variable delimits
the variable.
24
The file name or URL of the template used by the current job step,
from the Job Table. When the -axx option appears on the ^job
command, @MDFName is the job name. Central substitutes the
appropriate value and passes the result to Print Agent.
@InFile.
When a job step initiates Print Agent, @InFile is the Input file
specified on the Job Table. When Input file is *, then the
transaction file is the file for printing. When Input file is a value
other than *, then the file for printing is a temporary file created by
a previous job step.
When Print Agent is initiated by an -axx option on the ^job
command, then @InFile is the transaction file Central is
processing.
Central substitutes the appropriate value for @InFile and passes
the result to Print Agent.
-axml@XMLData
-l
Note: Ensure that you download the macro to the printer before using the -l option. For
details, see -m (Download Macro to Printer) on page 135.
-apr@PreambleName. The name of the preamble file, a file containing commands or data
that Print Agent reads before the contents of the data stream.
Central substitutes the value of Preamble file from the job step on
the Job Table for @PreambleName. For example, if the value for
Preamble file is h:\prem\p_order.pre, Central passes the
command line option, -aprh:\prem\p_order.pre, to Print Agent. If
@PreambleName is blank, resulting in -apr , Print Agent ignores
the -apr option.
-all@LogFileName.
The name of the file that contains the history of the activity of Print
Agent. Before Central initiates Print Agent, it substitutes the log file
name, jfserver.log, for @LogFileName. Central passes the
command line option, -alljfserver.log to Print Agent.
25
-asl@SkipLines
Tells Print Agent to skip over the ^job command in the transaction
file. If the transaction file contains a ^job command, Central
substitutes a 1 for @SkipLines. If the transaction file does not
contain a ^job command, Central substitutes a 0. Central passes
the command line option, -asl1 or -asl0, to Print Agent.
-amq@ManagedMem
-ams@MSTName.
The file name of the Macro Status Table file, from the Printer
Table. Central substitutes the value of Printer id on the Printer
Table, plus the .mst file extension, for @MSTName. For example, if
the value of Printer id is prntr1, Central passes the command line
option, -amsprntr1.mst, to Print Agent.
-m@Macro#.
The macro number for the job step, from the Job Table. Central
substitutes the value of Macro number for @Macro#. For
example, if the value of Macro number is 121, Central passes
the command line option, -m121, to Print Agent.
@LoadFlag
The type of macro for the current step, from the Job Table. Central
substitutes the value of Load flag for @LoadFlag. For example, if
the value of Load flag is T, Central passes T to Print Agent.
-z@PhysicalDev.
Central uses the value from the -z option on the ^job command to
determine the value to substitute for @PhysicalDev. Using the
^job command, Central first matches the job name and the printer
name from the -z option to the Job Table. If a match is made,
Central substitutes the value found for Physical device on the
Printer Table for @Physical Device. If a match is not made, Central
substitutes the value of the -z option for @Physical Device. Central
passes the command line option, -zvalue, to Print Agent.
@PrintDirectorParms.
Central takes the values from Print Agent options on the Printer
Table, satisfies any substitution variables, and then substitutes the
result for @PrintDirectorParms. Central passes the value to Print
Agent.
@OtherJobTokens.
-aii@IniFileName.
26
Comments is a descriptive explanation of the information in this record. The maximum length is
81 characters. This value is case-insensitive.
Return Parameters
Print Agent returns two parameters to Central for use by subsequent steps of the same job.
@NumberPage
@NumberPages is set to the number of surfaces printed. For example, if the job causes the
printer to print 5 sheets of paper on both sides and another on one side, the value of
@NumberPages is set to 11. This is useful when you want the printed output to show page
numbering in a Page n of m format.
This value is not affected by page renumbering caused by the -s option or the ^$page and
\$page commands.
Note: The NumberPages variable (see page 121) is used to place page numbers, in the Page
n of m format, on each page of a print run. All pages in the output are numbered
sequentially, from the first to the last. This works well if your output contains only one
document. However, if your output contains multiple documents, with each document to
be numbered separately, use the -atf option (see page 119) to achieve the Page n of
m result.
@OutputFileName
Whenever Print Agent output is directed to a file or device, it automatically places the name of
the file or device into the @OutputFileName parameter. This is particularly useful in subsequent
job steps, after Print Agent is invoked with the ,u argument.
For an example of this processing, see the job PREVIEW that ships with the Job Management
Database. This job consists of two steps, the first to invoke Print Agent to direct the output to a
temporary file, and the second to invoke Preview Agent to route the file to a users workstation
for previewing. (For complete details about Preview Agent, see the guide, Previewing Central
Output.)
DATA FORMATS
Print Agent can process transaction files with data in these formats:
Field-nominated
Fixed record
Comma-delimited
The most typical way of using Print Agent is with either the field-nominated or XML data
formats. The following sections describe these formats and provide examples of their usage
with Print Agent. In addition, the samples that accompany your Central software include
samples for all data formats. For details, see Print Agent Samples on page 15.
Field-Nominated Format
The field-nominated (.dat) data format is a simple but orderly format, that follows the basic
Central tenet of separating data from presentation. Users can produce this format directly, or
they can transform their existing application data to this format using Transformation Agent.
A field-nominated transaction file combines the data with command sequences that direct the
activity of Print Agent. These command sequences can be Dynamic Merge commands, with a
default prefix character of ^ (caret), Inline Text Control and Intelligent Pagination commands,
with a default prefix character of \ (backslash), or Substitution Variables with a default prefix
character of @ (at). For details on all Print Agent commands, see Command Reference on
page 173.
Field-nominated data consists of a sequence of name/value pairs. For example, in this
transaction file fragment:
^field VENDOR_CODE
1001
^field VENDOR_NAME
A1 Business Products
^field VENDADDR1
234 Second St.
^field VENDADDR2
Anytown, ST
28
^field is a command sequence that tells Print Agent to position to the named field on the
template and place the corresponding value in that field. In the example, the first named field is
VENDOR_CODE and the corresponding value is 1001.
Print Agent reads the transaction file one string record at a time. A string record is a set of
characters delimited by a newline character, such as <CR/LF>. By default, Print Agent uses an
input buffer of 6144 bytes. If the string record is longer than the input buffer, the input buffer is
expanded as necessary to encompass the string record. The string record that Print Agent
reads becomes the current contents of the input buffer.
Print Agent first determines whether the input buffer is a command or data. If the character in
column one of the input buffer is a Dynamic Merge command prefix character, Print Agent
executes the command. Inline Text Control commands are executed no matter where they
appear in the input buffer.
If the first input buffer in the transaction file after the ^job and, if it exists, the ^fax, is specifically
a ^form command, Print Agent ignores a template name provided on the command line that
initiates Print Agent, and activates the template named in the ^form command. If the first input
buffer in the transaction file is not a ^form command, Print Agent activates the template named
on the command line. Use care when using the ^form command with multipart templates. Print
Agent can only cope with one template during a multipart print execution. For each part in a
multipart template, Print Agent repositions in the data stream to the start of the file. If you use a
^form command after Print Agent has already opened the template, it forces Print Agent to
open the template again. Opening the template again may cause Print Agent to lose track of
where it is in processing the multipart template.
Note: Conditions other than the execution of a ^form command can cause Print Agent to
open the template. For a list of these conditions, see either ^form (Open Template) on
page 191 or \form (Open Template) on page 260.
Activating the template means that Print Agent downloads the template to the target output,
either printer or file, as required. As well, Print Agent adopts the field list and field attributes for
the fields on the first page.
The field list that Print Agent reads from the template for the current page is significant for
processing the data. The transaction file can contain commands, commands and data, or data
only. Print Agent can interpret the data as field-nominated data or as fixed record data, that is,
the current input buffer contains data for more than one field. When Print Agent adopts the field
list for the current page, it internally maintains a field pointer that begins by pointing to the first
field in the list.
Print Agent places field data on the page in the field indicated by the field pointer, that is, in the
current field. If the current field is a multiline field, Print Agent does not advance the field pointer
until it fills all lines, or until it reads a command that forces the field pointer to advance. The
^field or \field commands without a field name argument force Print Agent to advance to the
next field in sequence in the field list. If it reaches the end of the list, Print Agent does
end-of-page processing, prints the page, then makes the next page in the template active. This
causes Print Agent to drop the current field list and adopt the field list for the newly active page.
29
The ^field or \field command with a field name argument, that is, field-nominated format, starts
Print Agent searching forward through the field list until it encounters a matching field name.
There can be more than one field with the same name. Print Agent searches from the current
field until it finds the next field with the specified name. Print Agent wraps from the end of the list
to the top of the list until it finds a match or until it returns to its starting point. The field list only
contains fields for the currently active page. If it cannot find a match, Print Agent advances the
field pointer, and either:
Ignores all subsequent input buffers until it encounters a Dynamic Merge or Intelligent
Pagination command. Print Agent takes this action if the option -afxon (see page 84)
appears on the command line. This option tells Print Agent to discard any data for an
unknown field.
Places all subsequent input buffers, advancing the field pointer as necessary, until it
encounters a Dynamic Merge or Intelligent Pagination command. Print Agent takes this
action if -afxon does not appear on the command line. This processing can cause
overprinting and may not advance to the next page when expected.
To summarize, when Print Agent encounters a ^field or \field command, it advances the field
pointer either to the next field in the list or to the next field that matches the field name in the
command. You can also set the -afxon option so that Print Agent ignores data intended for a
field whose name does not appear in the field list for the current page.
Date
[
Requisition Number
]
Vendor Code
Vendor
Ship To
Item
Qty
Delivery Instructions
Description
Units
Unit Price
Total Price
Subtotal
Tax - 7.25%
Total
]
]
]
^field PO_DATE
01/31/1999
^field REQNO
1234567
^field VENDOR_CODE
1001
^field VENDOR_NAME
A1 Business Products
^field VENDADDR1
234 Second St.
^field VENDADDR2
Anytown, ST
^field VENDADDR3
USA 12345-6789
^field VENDADDR4
^field VENDADDR5
^field ITEM
123A
^field QUANTITY
10
^field DESCRIPTION
Mouse Pads
^field UNITS
EA
^field UNIT_PRICE
1.75
^field TOTAL_PRICE
17.50
^field ITEM
333C
^field QUANTITY
5
^field DESCRIPTION
Phone Message Pads
^field UNITS
EA
^field UNIT_PRICE
.50
^field TOTAL_PRICE
2.50
^field ITEM
777X
^field QUANTITY
10
^field DESCRIPTION
Desk Calendars
^field UNITS
EA
^field UNIT_PRICE
5.50
^field TOTAL_PRICE
55.00
^field ITEM
333B
^field QUANTITY
2
^field DESCRIPTION
Desk Trays
^field UNITS
EA
^field UNIT_PRICE
6.60
^field TOTAL_PRICE
13.20
30
Transaction File, 1 of 3
In this transaction file, each ^field command
names a field on the template, with its data
following. Print Agent advances to the field
named in the command and places the data in
the field until it fills all fields.
Transaction File, 2 of 3
^field SUB_TOTAL
88.20
^field TAX
6.39
^field TOTAL
94.59
^field DEL_INSTRCTN
Deliver these goods before the end of the
fiscal year.
Date
Requisition Number
01/31/1999
1234567
Vendor
Item
Qty
10
333C
777X
10
333B
1001
Ship To
A1 Business Products
234 Second St.
Anytown, ST
USA 12345-6789
123A
Vendor Code
Description
Mouse Pads
Total Price
EA
1.75
0.50
2.50
Desk Calendars
EA
5.50
55.00
Desk Trays
EA
6.60
13.20
Subtotal
Tax - 7.25%
Total
Delivery Instructions
Deliver these goods before the end of the fiscal year.
17.50
88.20
6.39
94.59
Transaction File, 3 of 3
31
32
If a <?xml ...?> processing instruction is present in the data file it must be the very first thing
in the data file except optionally for a UTF-8 byte-order mark. This particular processing
instruction must not be preceded even by a space, tab, or newline.
If a <?xml ...?> processing instruction is present in the data file it must include version=1.0.
If either of these rules is violated, Print Agent will be unable to parse the file as XML and will quit
with an XML parsing error. Once Print Agent decides that the file is XML, it is committed to XML
and cannot proceed unless it can parse the file as XML.
To process a data file in XML format, Print Agent first loads the data into the XFA-Data
Document Object Model (XFA-Data DOM), and then translates it into Central field-nominated
format. Print Agent then processes the translated file as it would any other field-nominated
transaction file. For a complete description of the XFA-Data DOM and of how XML data is
translated, refer to the guide, Integrating XML with Central.
The Print Agent configuration file contains a number of options which impact how XML data is
translated to field-nominated data. The default values in the configuration file can be overridden
using the equivalent command line options. These values, located in the [XMLOptions] section
of the configuration file, are:
Configuration File
Setting
Description
Equivalent
Command
Line Option
Attributes=ignore
-axattibutes
CodePage=
-axcodepage
Configuration File
Setting
Description
33
Equivalent
Command
Line Option
EndGroupPrefix=G_END_
-axendgroupprefix
Exclude=
-axexclude
Flatten=No
-axflatten
IncrementalLoad=Yes
-axincrementalload
Order=document
-axorder
Record=
-axrecord
StartGroupPrefix=G_
-axstartgroupprefix
StartNode=
-axstartnode
UseEndGroup=No
-axuseendgroup
UseFormCommand=No
-axuseformcommand
XSL=
-axaxsl
34
Date
[
Requisition Number
]
Vendor Code
Vendor
Ship To
Item
Qty
Description
Units
Unit Price
Total Price
Subtotal
Tax - 7.25%
Total
]
]
]
Delivery Instructions
<?xml version="1.0"?>
<PO>
<PO_Date>01/31/1999</PO_Date>
<ReqNo>1234567</ReqNo>
<Vendor_Code>1001</Vendor_Code>
<Vendor_Name>A1 Business Products</Vendor_Name>
<AddressBox>
<VendAddr1>234 Second St.</VendAddr1>
<VendAddr2>Anytown, ST</VendAddr2>
<VendAddr3>USA 12345-6789</VendAddr3>
</AddressBox>
<Detail>
<Item>123A</Item>
<Quantity>10</Quantity>
<Description>Mouse Pads</Description>
<Units>EA</Units>
<Unit_Price>1.75</Unit_Price>
<Total_Price>17.50</Total_Price>
</Detail>
<Detail>
<Item>333C</Item>
<Quantity>5</Quantity>
<Description>Phone Message Pads</Description>
<Units>EA</Units>
<Unit_Price>0.50</Unit_Price>
<Total_Price>2.50</Total_Price>
</Detail>
<Detail>
<Item>777X</Item>
<Quantity>10</Quantity>
<Description>Desk Calendars</Description>
<Units>EA</Units>
<Unit_Price>5.50</Unit_Price>
<Total_Price>55.00</Total_Price>
</Detail>
Transaction File, 1 of 2
The XML declaration on the first line tells Print
Agent that this file is in XML data format.
<Detail>
<Item>333B</Item>
<Quantity>2</Quantity>
<Description>Desk Trays</Description>
<Units>EA</Units>
<Unit_Price>6.60</Unit_Price>
<Total_Price>25.99</Total_Price>
</Detail>
<Sub_Total>88.20</Sub_Total>
<Tax>6.39</Tax>
<Total>94.59</Total>
<Del_Instrctn>Deliver these goods before the
end of the fiscal year</Del_Instrctn>
</PO>
Date
Requisition Number
01/31/1999
1234567
Vendor
Item
Qty
10
333C
777X
10
333B
1001
Ship To
A1 Business Products
234 Second St.
Anytown, ST
USA 12345-6789
123A
Vendor Code
Description
Mouse Pads
Total Price
EA
1.75
0.50
2.50
Desk Calendars
EA
5.50
55.00
Desk Trays
EA
6.60
13.20
Subtotal
Tax - 7.25%
Total
Delivery Instructions
Deliver these goods before the end of the fiscal year.
17.50
88.20
6.39
94.59
35
Transaction File, 2 of 2
36
If the code point can be satisfied with the same typeface but with just a different character
set, then that switch of character sets occurs. The relevant font select sequence will be
emitted to the print stream and then the character data with the previously offending code
points.
If the data has characters whose code points are not in any available symbol set of the
nominated typeface, then recourse will be made to other typefaces that are defined for the
printer. These typeface changes will be made based on certain font property matches, for
example, trying to maintain a serif font, instead of switching to a sans serif font.
Automatic font switching applies to all presentation targets for both single and double-byte
fonts, regardless of whether or not the font is downloadable or printer-resident. For backwards
compatibility, the -autfssoff command line option (see page 126) will suppress this feature.
Note: Automatic font switching is not supported for label printers.
37
Licensing Considerations
When determining licensing requirements, remember that:
The licensing requirement impacts only fonts included in a soft font cartridge.
When creating a soft font cartridge, Output Designer will indicate which fonts require a
license. For details, see the topic, Create a soft font cartridge, in the Output Designer Help.
Certain TrueType fonts are unrestricted usage fonts, meaning that a license is not required
for their use. These fonts contain a bit setting indicating that embedding is allowed. You can
use the Font Properties Extension Utility, available as a free download from Microsoft, to
determine if your fonts allow unrestricted usage.
38
Currency
[Currency_Euro]
Euro
[Currency_Dollar]
Dollar
[Currency_FFR]
French Franc
[Currency_PQ$]
[Currency_DKR]
Danish Kroner
[Currency_DM]
[Currency_IRP]
Irish Punt
[Currency_Lire]
Italian Lire
[Currency_Norway]
Norwegian Kroner
[Currency_SKR]
Swedish Kroner
[Currency_UKP]
UK Pound
[Currency_RMB]
[Currency_yen]
Japan
Any number of additional currency sections can be added to the configuration file. Use the
pre-defined sections as a template for all new sections.
the currency indicator element for the \pic command would be [FFR]. The currency indicator
element must be coded at the beginning of the picture clause. For example,
\pic"num[FFR]zz,zz9.99","1234.56"
39
When Print Agent is processing a data file and encounters a picture clause, it uses the currency
indicator element to look up values in the referenced currency section in its configuration file. If
the referenced currency section does not exist, or if the \pic command does not contain a
currency indicator element, Print Agent formats the data using the default currency characters
from its configuration file [Special] section.
Currency indicator
included in picture
clause
For further information on adding picture clauses in Output Designer, see the Help topic
Picture clauses.
40
The Generic PostScript presentment target creates the appropriate but most basic commands
necessary to drive the printer and generate your document. However, it does not create printer
specific commands for printer options such as input tray selection or finishing options. Also,
fonts and their spacing are handled in a best guess fashion, as a result of no printer specific
information.
Some manufacturers printer models emulate certain HP printer models; therefore, an HP
presentment target can be used for those printers. Check your printer documentation to see
what printer your printer emulates. As well, newer printers can often be driven with an earlier
presentment target for a manufacturers printer, but new printer features will not be supported.
For HP and Lexmark printers, you can usually use a presentment target from a printer in the
same family.
The Generic Microsoft Windows Driver is intended to be used when no other compatible
presentment target can be selected.
In this release of the product we moved from Zebra printer specific presentment targets to
Zebra Generic presentment targets. The existing printer specific presentment targets are
organized under legacy printers in the Presentment Target Selection dialog box in Output
Designer. The new generic Zebra presentment targets are based on printer DPI (dots per inch).
The Zebra printer models vary by DPI and print head width, but they use a common firmware.
Refer to your Zebra printer documentation for more information.
The generic Zebra presentment targets have been tested with a variety of Zebra printers in the
High Performance (XiIII Plus) and Industrial and Commercial (Z6M Plus, 105SL, S600) model
lines, as well as Zebra RFID capable printers based on these printer models (R170Xi).
However, RFID is not a supported feature.
Using record data. You identify the global field with an * (asterisk) preceding the field name
in the record definition.
Creating an entry in the Global dictionary (see page 59) using the ^define command (see
page 180).
At template design time, by marking the field as global in Output Designer. When the
template is opened by Print Agent, the globals are placed in memory. When Print Agent
encounters a ^global or a ^define global: command in the data stream, it stores the global
value in memory. However, a global field that is defined in the template at design time does
not take affect until the corresponding ^field is processed in the data file.
41
When Print Agent processes the transaction file, it stores the global field name and associated
data in memory. You can use the ^global command at any time to change the value for a global
field. When Print Agent encounters a ^global command, it updates the list of global fields and
corresponding values in memory. It then processes the remaining commands and data
normally.
When it reaches the end of a page or subform, or the end of a template, Print Agent performs
global field processing. If a global field name matches a field name in the field list, Print Agent
retrieves the corresponding data from memory and inserts it into all occurrences of the field
name in the field list.
Print Agent will ignore data associated with a ^field command if the field name for the ^field
command is already defined as a global field. For example, for a field named AMOUNT that is
defined as a global, Print Agent processes the commands for the field as follows:
^global AMOUNT
10.00
.
.
.
^field AMOUNT
15.00
^field command.
.
.
.
^global AMOUNT
20.00
An overprint for a field can occur when a field is not designed as global at the appropriate time.
For example, a field is not initially defined as global when Print Agent first encounters a ^field
command in the data stream. Print Agent inserts the value from the ^field command into the
field. Print Agent subsequently encounters a ^global command for the field during the
processing of a page. When global field processing occurs, Print Agent inserts the global value
into the field. The result is that the global value overprints the value of the field data.
42
PDF OUTPUT
Print Agent enables you to output data as PDF (Portable Document Format) files, viewable with
the Adobe Reader. Files in this format are easily exchanged and viewed, as they are platform
independent.
PDF output can also be passed to Preview Agent, which routes the PDF file to a users
workstation for viewing. For complete details about the Preview Agent, see the guide,
Previewing Central Output.
TE
DA
There are a number of considerations to keep in mind when creating and displaying PDF:
If you are concerned about the size of your PDF output, you should:
Create forms using the Acrobat base fonts. This means that fonts would not have to be
embedded in your PDF document, providing a significant size benefit.
43
Try whenever possible to minimize the use of graphics, as they directly impact the size of
the output. If you do use graphics, there are a number of things you can do to lessen their
size impact. For details about this, see Graphic Considerations for PDF Output on
page 44.
For all documents that Print Agent creates with DBCS fonts, you must have the Asian font
pack installed in Acrobat/Reader, even if you do not use the Adobe DBSC fonts. The
installation of the Asian font pack is required because it also includes the Asian encodings the encodings are required no matter what the source of your DBCS fonts.
Editing of PDF output produced by Print Agent is not supported. The output is intended for
viewing only.
When printing PDF output, the default behavior in Adobe Reader and Adobe Acrobat is to
scale the pages to fit the paper size selected. This may cause the output to shrink or grow
in overall size, giving the appearance of a different point size font. To have the PDF output
print as designed, ensure you de-select all Paper Scaling options on the Print dialog in
Adobe Reader or Adobe Acrobat.
The color model that Print Agent uses to produce a PDF is RGB and this cannot be
changed.
A template, compiled with Output Designer using the PDF presentment target. The use of
the PDF presentment target is mandatory for PDF output.
For complete details about creating templates, see Creating templates for PDF output in
the Output Designer Help.
A bookmark file, if the PDF output is to include bookmarks. Bookmarks are links to different
positions within the PDF file, used to assist in navigation. The bookmark file is a text file,
which you can create with any text editor. For details, see Creating Bookmarks for PDF
Output on page 45.
An output destination. The output destination must be to a PDF file, for which Print Agent
requires a fully qualified name. You can provide the PDF output file name to Print Agent in
two ways:
Using the -z option on the ^job command in the transaction file. See -z (Direct Output)
on page 153.
By creating a Printer Table entry in the Job Management Database, and using it as the
Physical Device name. You can then reference this Printer Table entry in the Job Table.
For complete details about creating table entries for the Job Management Database, see
the chapter Defining Central Tasks in the guide, Working with Central.
The PDF output destination is mandatory. Without it, Print Agent will direct the PDF output to
a printer, resulting in many pages of unreadable characters.
When processing the transaction file, Print Agent automatically creates the PDF file, writes the
merged data and template to it, and places it in the specified location.
44
Page Layout - determines whether the document is viewed in single-page, facing page,
continuous page, or continuous facing page mode. For details, see -apdflayout (Specify
PDF Initial Page Layout) on page 109.
Page Number - sets the page that the document opens at. For details, see -apdfopentopage
(Specify PDF Initial Page Number) on page 110.
Zoom - sets the level of magnification the document will display at when opened. For details,
see -apdfzoom (Specify PDF Initial Page Magnification) on page 111.
Avoid all processing of graphic files at runtime by including them in the form at compile time.
It does not matter what graphic format you use. This is by far the most processing efficient
option as:
The graphics are converted to PDF at compile time only, and then streamed out at run
time.
Smaller .PDF files are produced, because the graphic filters in Output Designer can
resize and sometimes reduce the color depth of the graphic.
The graphic is only stored once in the PDF even though it could be used on every page.
45
If you must include graphic files in the data stream (^graph or graphic fields), here are some
recommendations for reducing file size:
Regardless of the image format (JPG, TIF, etc.), reduce the number of pixels in the
graphic. An 800x600 graphic will be the size of a 1600x1200 graphic with the same
color depth (bits per pixel) when stored in the PDF file. There are free applications
available which let you do this.
Note that if you use a graphic field, the image will be scaled to the size of the field when
your PDF viewer draws it. This does NOT affect the size of the PDF file.
For formats other than JPG, reduce the number of bits per pixel in the graphic. There are
free applications available which let you do this. Note that reducing the number of bits per
pixel for JPG graphics does NOT reduce the size of the final PDF file.
The size of the graphic file (number of bytes in your file system) is a poor predictor of its
size impact on the final PDF file. Many types of graphic files use compression. The JPG
format in particular is very highly compressed. All graphic files are uncompressed in order
to include them in the PDF file. Typically, more compression requires more CPU time to
uncompress the image. Because of the nature of the JPG format, large amounts of
memory can also be required to uncompress the .jpg images. The JPG uncompression
code makes use of an in-memory buffer up to a default threshold of 1000000 bytes. When
the threshold is exceeded, a disk buffer is used. You can set the threshold for the
in-memory buffer with the JPEGMEM environment variable. For example, the threshold
can be set to a value such as 4M to represent 4000000 bytes. If your system has enough
available memory, increasing the JPEGMEM environment variable threshold can
reduce processing time.
TE
DA
To have Print Agent include bookmarks in PDF output, you must reference the required
bookmarks in a bookmark file, with a recommended file extension of .bmk. The bookmark file
specifies fields in a template. At output time, values in the transaction file for the specified fields
are displayed as the bookmarks in the PDF file.
Entries in a bookmark file are in the format:
[Section]
fieldname=level,order
where:
Section is the logical name for a grouping of bookmarks. It precedes a list of fields whose
values are displayed as bookmarks. Section is optional. In the absence of Section, Print
Agent will attempt to process the entire bookmark file. The inclusion of multiple instances of
Section, each with its own associated grouping of bookmarks, lets you maintain one
bookmark file for all your PDF output jobs. You use the -abms command line option (see
page 69) to tell Print Agent which grouping of bookmarks to use for a particular job.
fieldname is the name of a field on the template, whose value you want to appear as a
bookmark. The field must be a single line field. You can bookmark on any number of fields in a
template.
46
level is the indentation level of the bookmark. The lowest value of bookmark levels identified
will be the top (least indented) level of bookmarks. For example:
level 0
level 1
level 2
level 3
order is the sorting order of the bookmarks at a given indentation level. order can be one
of:
A (ascending)
D (descending)
X (no sorting)
bookmark specifier
group
bookmark specifier
group
{
{
[payroll]
Employees by Name=0
EMP_NAME=1,A
EMP_CITY=2,A
Employees by Location=0
EMP_CITY=1,A
EMP_NAME=2,A
Bookmark specifiers must be added to a bookmark file in numerical order. That is, level 1
must be defined before level 2, level 2 must be defined before level 3, and so on.
Within a bookmark specifier group (that is, a level 1 followed by additional levels) there can
be only one bookmark specifier for each level. For example, only one level 1 bookmark
specifier, one level 2 bookmark specifier, and so on per group.
A bookmark specifier with a level 0 is used as a heading bookmark for all following bookmark
specifiers in its group. A level 0 bookmark is not displayed with a field value, but with the
string fieldname specified in the bookmark file. If a level 0 is not defined for a bookmark
specifier group, Print Agent will supply one, in the format Bookmark Set n, where n is
the sequential number of the unidentified group.
The system variable trimBmk can be used to control the number of characters that will
displayed in a bookmark. Bookmarks can be trimmed at an arbitrary length or not at all. To
set the value in the Sys directory, use the format:
^define sys:trimBmk value
where:
sys is the dictionary name
trimBmk is the option name.
47
value is the value to be assigned to trimBmk. It accepts a numeric Value (the default is 50).
A Value of <= 0 means no trimming. A Value of > 0 means trim to Value characters. The
maximum Value is 374, as that is the maximum number of characters that can be displayed by
Acrobat/Reader in a bookmark generated by Print Agent
You require a : colon separator between the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 61.
PDF Example
This example shows the output produced by Print Agent when it creates a PDF file containing
bookmarks.
The example uses this purchase order
template and the following transaction file to
produce the PDF output.
Date
Requisition Number
Vendor
Vendor Code
Ship To
Item
Qty
Description
Units
Unit Price
Subtotal
Tax - 7.25%
Total
Delivery Instructions
Total Price
Transaction file, 1 of 4
^field VENDOR_CODE
1001
^field VENDOR_NAME
A1 Business Products
^field VENDADDR1
234 Second St.
^field VENDADDR2
Anytown, ST
^field VENDADDR3
USA 12345-6789
^field VENDADDR4
^field VENDADDR5
^field ITEM
123A
^field QUANTITY
10
^field DESCRIPTION
Mouse Pads
^field UNITS
EA
^field UNIT_PRICE
1.75
^field TOTAL_PRICE
17.50
.
. field-nominated data for
. three detail lines
.
^field SUB_TOTAL
88.20
^field TAX
6.39
^field TOTAL
94.59
^field DEL_INSTRCTN
Deliver these goods before the end of the fiscal year.
^page 1
start of record 3
^field PO_DATE
13/05/99
^field REQNO
1234568
^field VENDOR_CODE
1832
^field
VENDOR_NAME
XYZ Trading Company
Transaction file, 2 of 4
48
^field VENDADDR1
234 Second Ave.
^field VENDADDR2
Anytown, ST
^field VENDADDR3
USA 34567-8904
^field VENDADDR4
^field VENDADDR5
^field ITEM
2354
^field QUANTITY
4
^field DESCRIPTION
Report Covers
^field UNITS
BOX
^field UNIT_PRICE
6.60
^field TOTAL_PRICE
26.40
.
. field-nominated data for
. four detail lines
.
^field SUB_TOTAL
71.00
^field TAX
5.15
^field TOTAL
76.15
^field DEL_INSTRCTN
Please deliver ASAP - urgently required.
^page 1
start of record
^field PO_DATE
13/05/99
^field REQNO
1234583
^field VENDOR_CODE
5454
^field VENDOR_NAME
Office Supplies Warehouse
^field VENDADDR1
82 Main St.
^field VENDADDR2
Anytown, ST
^field VENDADDR3
USA 54321-9876
^field VENDADDR4
^field VENDADDR5
^field ITEM
446G
^field QUANTITY
10
^field DESCRIPTION
Desk Trays
^field UNITS
EA
^field UNIT_PRICE
6.90
^field TOTAL_PRICE
69.00
.
. field-nominated data for
. three detail lines
.
^field SUB_TOTAL
341.50
^field TAX
24.76
^field TOTAL
366.26
^field DEL_INSTRCTN
Delivery required prior to 2 PM Friday.
Transaction file, 3 of 4
Transaction file, 4 of 4
The first line of the transaction file contains the ^job command:
^job p_order -zpathnamep_order.pdf -abmkpathnamep_order.bmk
-abmsp_order
49
50
where:
p_order is the job name.
-zpathnamep_order.pdf is the fully qualified name of the file to which Print Agent will write
the PDF output.
-abmkpathnamep_order.bmk is the fully qualified name of the bookmark file, containing the
fields in the transaction file to use as bookmarks. For details on the -abmk command line
option, see page 68.
-abmsp_order defines the section within the bookmark file to use for this transaction. As
illustrated in the following bookmark file, sections are shown within the bookmark file enclosed
in [ ] (square brackets). For details on the -abms command line option, see page 69.
Bookmark File
sections
This bookmark file contains bookmarks for two different types of jobs, purchase orders and
invoices. This example uses the purchase order section, [p_order]. Within this section, there
are two bookmark specifier groups, one titled Vendor Information and the other titled Item
Information.
Using the files provided, Print Agent produces PDF output with four records, each appearing in
the PDF file in the order it appeared in the transaction file. The bookmarks appear collapsed
upon opening the PDF, with only the bookmarks for the highest level, level 0, displaying.
51
The text for the level 0 bookmarks, in this example - Vendor Information and Item Information,
displays exactly as defined in the bookmark file. Clicking the level 0 bookmarks will expand the
other levels.
The bookmarks open in a tree structure. For the level 1 and 2 bookmarks, the data values are
substituted for the fieldnames included in the bookmark file.
This feature is available for Print Agent presentment targets only - it is not supported for
Windows drivers.
52
53
Staple support is implemented using finish options. Finish options are only supported on
printers that support PJL and they are inserted into the printer reset sequence. The finish option
and its PJL value are defined in the printer .ICS file in the custom strings. Print Agent is
informed of the finish option with the -aFinish command line option, which takes the format:
-aFinishnFinishOption
where:
n is a number from 0 - 9. This allows for up to 10 finish options on a command line.
FinishOption is a custom defined finish option whose name appears in a custom string in the
.ICS file.
For example, the following line in the lex632.ics file defines the text that would be included in
the printer reset sequence to support stapling on the Lexmark 632 printer.
CustomString1 /STAPLE/\x0D\x0A@PJL\x20SET\x20LSTAPLE=ON
In this example, the finish option name is STAPLE, as defined by the text /STAPLE/ at the
beginning of the finish option.
The finish option is included in the printer reset sequence by referencing the variable
@SYS:STAPLE.
For example, in the lex632.ics file, the printer reset sequence includes:
@PJL COMMENT @SYS:STAPLE.
When Print Agent encounters a command line option referencing the staple finish option, such
as -aFinish1Staple, it checks the .ICS file for a custom string containing a finish option with the
name Staple. Print Agent reads the custom string and inserts the finish option into its SYS
dictionary as @SYS:STAPLE.
When the Print Agent processes the data file that includes the -aFinish1Staple command line
option, it inserts the value of @SYS:STAPLE into the printer reset sequence and a new line with
the PJL staple command is inserted in the print file.
If @SYS:Staple is not defined when the Print Agent processes the data file, then a PJL
comment line is inserted in the print file.
54
The .ICS files for each of these printers include the staple finish option and its PJL value
defined as CustomString1. The PJL value is referenced in the reset sequence as the variable
@SYS:STAPLE.
As long as your printer supports PJL, you can define finish options for any of the features
available on your printer. Use the staple finish option from one of the above noted .ICS files as
a guide and the following steps to implement a custom finish option.
To define finish options in the printer reset sequence
1. Find the PJL required to implement the feature on the designated printer. This can be done
by generating output from the Windows driver for that printer. Select the option in the printer
options dialog and print the output to file.
2. In the .ICS file for your printer, define the @SYS variable by creating a new custom string
and adding the PJL to it. Ensure you use \x20 to represent spaces, \x0D\x0A to represent
carriage return and line feed, and that you start your custom string with the text
/FinishName/.
For example, the staple custom string from the hp4350.ics file is:
CustomString1
/STAPLE/\x0D\x0A@PJL\x20SET\x20PROCESSINGTYPE="STAPLING"\x0D\x0A@PJL
\x20SET\x20PROCESSINGOPTION="ONE_STAPLE"\x0D\x0A@PJL\x20SET\x20PROCE
SSINGBOUNDARY=MOPY
3. Insert the PJL comment lines, including the @SYS variable referencing your finish option,
into the reset sequence in the order required by the printer. The first PJL command must not
have a newline character preceding it. Each subsequent PJL command must be on a new
line. The last PJL command must be @PJL ENTER LANGUAGE = lang.
4. For example, the reset sequence from the hp4350.ics file is:
Reset
\E%-12345X@PJL\x20RDYMSG\x20DISPLAY="%s"\x0D\x0A@PJL\x20COMMENT
\x20@SYS:STAPLE.\x0D\x0A@PJL\x20ENTER\x20LANGUAGE\x20=\x20PCL\x0D
\x0A\E&l1T\E*t1200R\E&u1200D
The reset sequence includes @SYS:STAPLE., the variable which references the PJL defined
in the custom string. Notice the . (period) after @SYS:STAPLE. The period after the
variable is required, as it delimits the command.
5. Save your .ICS file.
55
where:
n is a number from 0 - 9. This allows for up to 10 finish options on a command line.
FinishOption is the custom defined finish option whose name appears in the custom string in
the .ICS file.
For example, -aFinish1Staple will allow Print Agent to access the finish option called STAPLE.
When Print Agent encounters this command line option, it creates an variable in its Sys
dictionary named @SYS:STAPLE. The value of @SYS:STAPLE is the value of the Staple
custom string from the .ICS file.
When the Print Agent processes the data file that includes the -aFinish1Staple command line
option, it inserts the value of @SYS:STAPLE into the printer reset sequence and a new line with
the PJL staple command is inserted in the print file.
If @SYS:Staple is not defined when the Print Agent processes the data file, then a PJL
comment line is inserted in the print file.
56
COLLATION SUPPORT
Print Agent provides an option, -acollate, to collate printed output. Collation is supported for the
Windows presentment target on Windows 2000 and up, provided the Windows driver for your
printer supports this function. Collation is also supported for PCL and PostScript Print Agent
presentment targets through the use of the @PJL SET QTY = command.
For PCL and PostScript Print Agent presentment targets, if your printer does not support
collation through the use of the @PJL SET QTY = command or if your printer does not have
enough resources to collate your jobs, your can modify the .ICS file PrinterFlag value to force
collation support.
Once the PrinterFlag value is modified, this forced collation method will be used regardless of
support for PJL. Collation is achieved by repeating the print stream the number of times you
have asked for collated copies. For example, if you started Print Agent with -acollateyes -c3,
the print stream will be output three times.
Note: When forced collation occurs, a print job containing multiple copies will appear like a
single print job to the printer. Therefore, finish options such as staple or other custom
finishing options will act upon all copies as if they were one document.
To update your printer .ICS file to allow forced collation
1. Open the .ICS file for your printer. The .ICS files are found in the \CONFIG folder in the
directory where Output Designer is installed.
2. Locate the PrinterFlag value and increase it by 65536. For example, if the PrinterFlag value
was 16704, the new PrinterFlag value will be 82240.
3. Save the .ICS file.
57
Note: You must recompile all forms compiled for the presentment target associated with the
changed .ICS file to have these forms take advantage of forced collation.
DocVar Dictionary
The DocVar dictionary is read-only, and provides a method of retrieving the template
Information values, set for the template in Output Designer. You can retrieve any of the values
by a variable substitution call to the DocVar dictionary, by referencing these variable names.
This variable substitution is case-insensitive.
Value
Variable Substitution
Contact
@docvar:contact
Creation date
@docvar:creationdate
Custom name
Custom value
To retrieve a Custom value, use the Custom name value in the variable
substitution. For example, to retrieve the Custom value for a Custom
name of Terms_and_Conditions, use:
@docvar:Terms_and_Conditions.
Description
@docvar:description
Designer
@docvar:designer
Name
@docvar:formname
Version
@docvar:version
Version date
@docvar:versiondate
For example, to retrieve the name, version, and the Custom value for a Custom name of
Purchase_Order, include these commands in the data stream:
^field FORM_NAME
@docvar:formname
^field FORM_VERSION
@docvar:version
^field CUSTOM_VALUE
@docvar:Purchase_Order
58
Environment Dictionary
The Environment dictionary is read-only, and provides a method of retrieving information that is
normally external to Print Agent. You can use the Environment dictionary to retrieve any
environment string set in the UNIX shell or in DOS by a variable substitution call from the
Environment dictionary.
For example, if a DOS environment variable called LOGIN_NAME is assigned to a login
identifier, you can retrieve it with the command:
^field SALUTATION
Dear @env:LOGIN_NAME.,
Note that the : (colon) is the separator between the dictionary name and the variable name.
The period after the variable delimits the command.
You can also retrieve command line options passed to Print Agent from the Environment
dictionary by referencing these variable names:
Variable
Description
$0 ... $n
$$
$#
Fax Dictionary
The Fax dictionary provides the means for storing faxing information specified by a ^fax
command, a ^define command, or an -adv command line option. Print Agent uses the
information to output one or more faxes, as specified by the options provided.
When you use the ^fax command, Print Agent automatically adds all of the faxing information
to the Fax dictionary.
59
When you use the other methods for specifying faxing information, you name the Fax dictionary
directly. For example:
^define fax:TO_FAX_NUM_1="1-234-555-6789"
-or-advfax:TO_FAX_NUM_1="1-234-555-6789"
In these examples, fax is the dictionary name, TO_FAX_NUM_1 is one of the keywords for the
^fax command that is supported by your faxing software, and 1-234-555-6789 is the value
assigned to the keyword, in this case, the fax telephone number. You require a : colon
separator between the dictionary name and the variable name.
For details on using the ^fax command, see page 184. For details on specifying fax information
without using the ^fax command, see page 186.
Global Dictionary
The Global dictionary stores global variables. To define global variables, use the ^global or
^define command in the following forms:
^global CLIENT_NAME
Chris Brown
- or ^define global:CLIENT_NAME
Chris Brown
In the ^define examples, global is the dictionary name and CLIENT_NAME is the variable
name. Chris Brown is the value assigned to CLIENT_NAME. You require a : colon
separator between the dictionary name and the variable name.
To retrieve the value from the Global dictionary, use the variable substitution command in one of
these forms. The : (colon) is the separator between the dictionary name and the variable
name. The period after the variable delimits the command.
^field SALUATION
Dear @global:CLIENT_NAME.
- or ^field SALUATION
Dear @CLIENT_NAME.
Values from the Global dictionary automatically populate like-named global fields in a subform.
60
Group Dictionary
The Group dictionary stores the group event and field event handlers that determine the
processing for a data stream. These events are created at template compile time and stored, in
the template, in the JFPREAMBLE and JFPREAMBLE_1 document variables. When Print
Agent opens the template to process its accompanying data stream, it loads the contents of the
JFPREAMBLE and JFPREAMBLE_1 document variables in the Group dictionary. Then, as it
processes the data stream, Print Agent uses the group and field events from the Group
dictionary to determine data placement on the template.
The group and field events contained in the JFPREAMBLE and JFPREAMBLE_1 document
variables are fully described in the Appendix Intelligent Pagination on page 306.
INI Dictionary
The INI dictionary is read-only, and provides a method of retrieving values from the Print Agent
configuration file. You can retrieve any of the values in the dictionary using a variable
substitution call in the format:
@INI:entry!section
where:
@INI: is a literal. @ is the variable substitution prefix character, INI is the name of the
dictionary from which to retrieve the variable and : separates the dictionary name from the
balance of the variable.
entry is the setting name from the configuration file.
! is a literal, to separate entry and section.
section is an optional section name from the configuration file. In the absence of section,
Print Agent will look for entry in the [User] section of its configuration file.
When Print Agent processes the variable, it uses the configuration file under which it is currently
running to retrieve the value.
For example, in this fragment from the Print Agent configuration file:
[Currency_Euro]
CurrencyComma=.
CurrencyCR=CR
[Currency_Euro] is the section and CurrencyComma and CurrencyCR are entries within
the section.
will return
CR
61
Sys Dictionary
UP
TE
DA
The Sys dictionary is reserved for internal use in Print Agent, so any use other than as
documented could conflict with internal use. Users are NOT to use it for general data storage
and retrieval.
The Sys dictionary stores system variables, which can be defined with the ^define command.
For example, to define a value for the initial display setting when opening a PDF file in Adobe
Reader, use this command:
^define sys:pdfLayout Continuous
In the ^define example, sys is the dictionary name and pdfLayout is the variable name.
Continuous is the value assigned to pdfLayout. You require a : colon separator between
the dictionary name and the variable name.
To retrieve a value from the sys dictionary, use the format:
@SYS:Variablename
For example, to retrieve the value of pdfLayout from the sys dictionary, use the variable:
@sys:pdfLayout.
which returns:
Continuous
Values for the following variables can be stored in the Sys dictionary:
pdfLock
pdfAllowPrint
pdfZoom
pdfEncryptionLevel
pdfAllowMod
pdfLayout
pdfUser
pdfAllowCopy
pdfOpenToPage
pdfOwner
pdfAllowAdd
staple
trimBmk
User Dictionary
The User dictionary is an alternate dictionary that can be used to store variables, to prevent
conflicts with like-named variables in the Global dictionary. When you do not supply a dictionary
name, this is the default dictionary that Print Agent uses to define a variable value. For
example:
^define CLIENT_NAME
Chris Brown
stores the value Chris Brown in the dictionary variable CLIENT_NAME. Since the example
does not specify a dictionary, the User dictionary is implied.
62
To retrieve the value from the User dictionary, use the variable substitution command in one of
these forms. The : (colon) is the separator between the dictionary name and the variable
name. The period after the variable delimits the command.
^field SALUTATION
Dear @user:CLIENT_NAME.
- or ^field SALUTATION
Dear @:CLIENT_NAME.
Note that omitting the : from Dear @user:CLIENT_NAME. would make this a reference to
global:CLIENT_NAME.
SECURITY CONSIDERATIONS
For security reasons, you can activate or deactivate certain Print Agent facilities. These
facilities are controlled by the setting, SecurityLevel, in the [JetForm] section of the Print Agent
configuration file, jfmerge.ini. Each of the facilities contains a bit value, which is used to
determine whether the facility is activated.
The facilities and their bit values are:
Bit Value
Facility
16
The ability to trace with -atf when specified with a ^job or ^form.
32
To enable any of these facilities, set the value of SecurityLevel to the sum of the bit values of
those facilities you wish to leave deactivated. For example, a value of 33 (1+32) would
deactivate only ^shell and -z. A value of 63 (1+2+4+8+16+32) would deactivate all facilities.
At installation, the value of SecurityLevel is set to 1, meaning only the ^shell command is
deactivated.
Format options, that define how Print Agent handles the overall data stream.
Processing options, that change the way Print Agent processes and prints data.
XML options, that define how Print Agent processes XML data.
The options you choose depend on the type of data you wish to process.
where:
formfile is the template (form) name. It may be any of a fully qualified file name, a fully
qualified URL beginning with http:, or a file or resource name without a path. If formfile is
not fully qualified, Print Agent will attempt to open it as a file in the current directory. If this
attempt fails and the -afp template path option (see page 82) has been supplied, Print Agent
will try again using the template path.
formfile may also be a place holder when a ^form command (see page 191) occurs early in
the data stream.
-aiifilename is the name of the Print Agent configuration file, jfmerge.ini. Print Agent
cannot run without its configuration file.
datafile is the transaction file to merge with the template, and options are one or more of
the format or processing options.
64
FORMAT OPTIONS
Format options change the way Print Agent handles data records. The formats are mutually
exclusive. You can choose only one format at a time, which you must identify to Print Agent at
the start of each session. For the format options, see Data Formats on page 27.
Field-Nominated Format
Field-nominated format is the default. When you do not specify a format option, Print Agent
processes the transaction file in field-nominated format.
XML Format
Data in XML format is initially treated as if it were field-nominated format. Central sets the
substitution variable @XMLData to yes when it detects an XML job card, but to (the empty
string) when it does not. When this substitution is made into the Task Table entry for Print
Agent, the result is that Print Agent receives either -axmlyes or -axml on its command line.
-axmlyes forces Print Agent to process the transaction file as XML. -axml leaves it up to Print
Agent to inspect the transaction file and decide for itself whether the file contains XML or not.
When Print Agent identifies the data stream as an XML data stream, it processes the data in
XML format.
Note that all rules specified by the XML standard must be adhered to by all XML data files. In
particular note that:
If a <?xml ...?> processing instruction is present in the data file it must be the very first thing
in the data file except optionally for a UTF-8 byte-order mark. This particular processing
instruction must not be preceded even by a space, tab, or newline.
If a <?xml ...?> processing instruction is present in the data file it must include version=1.0.
If either of these rules is violated, Print Agent will be unable to parse the file as XML and will quit
with an XML parsing error. Once Print Agent decides that the file is XML, it is committed to XML
and cannot proceed unless it can parse the file as XML.
65
-d (Comma-Delimited Format)
Format
-d[x]
To merge data in comma-delimited format, start Print Agent with the -d option.
For example, to merge a template called data.mdf with comma-delimited data in a file named
numbers.dbx, start Print Agent with this command:
jfmerge data.mdf numbers.dbx -aiijfmerge.ini -d
When the data contains a text string that has a comma, enclose the text string in (quotation
marks). Print Agent uses as the default characters for enclosing text strings. When the data
uses a different character, follow the -d with the character you wish to use.
For example, to merge a template called base.mdf with comma-delimited data in a file named
numbers.dbx, and use a % (percent sign) to enclose text strings, start Print Agent with this
command:
jfmerge base.mdf numbers.dbx -d%
You can specify a character value with the -d option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
PROCESSING OPTIONS
There are a number of options that change the way Print Agent processes and prints data
records. Processing options override the equivalent options set in the template.
The format of the options is optionargument, option{argument} or option[argument]. An
argument is a value that refines the option. Arguments without brackets or in brace brackets are
mandatory. If the arguments in brace brackets are separated by vertical lines, such as
{item1|item2|item3}
you can use only one of the arguments within the brace brackets with the option at any one
time.
Arguments in square brackets are optional. If the arguments in square brackets are separated
by vertical lines, such as
[item1|item2|item3]
you can use only one of the arguments within the square brackets with the option at any one
time.
66
To store the value of global ^field commands in the global dictionary, start Print Agent with the
-aafgdno option. This is the default. This only affects values for fields with a global designation
because of a previous ^global command.
To control the triggering of !FldUsed and !FldNotAvail events for global fields, start Print Agent
with the -aafgeyes option. This is the default. This option applies only to dynamic templates.
To store the value of global ^field commands in the global dictionary, start Print Agent with the
-aafgfdyes option. This is the default. This only affects values for fields with a global
designation because the global attribute for the field was set in Output Designer.
To print all pages of a template, start Print Agent with the -aapon option. This is useful when
you have a template with a page containing only boilerplate and no fields. Without -aapon, Print
Agent prints only those pages of a template with data for the fields, as well as pages made
active with either the ^form or ^page command.
67
For example, a template called poform.mdf is a three page template with fields on pages one
and two and the purchase terms and conditions on page three. To merge the template with a
transaction file named poform.dat and print all three pages, start Print Agent with:
jfmerge poform poform.dat -aiijfmerge.ini -aapon
To print only those pages containing data, start Print Agent with the -aapoff option. This is the
default. However, you require an explicit page position command to position to the pages
containing the fields, in order to prevent printing of intervening pages with no fields.
Caution: Do not use the -aapon option with dynamic templates. Doing so causes incorrect
print results.
To print templates on the Hewlett-Packard LaserJet 5si printer and draw the macros from the
fixed disk, start Print Agent with the -aaton option.
jfmerge poform poform.dat -aiijfmerge.ini -aaton
For storing macros on the printer hard disk, see the -h argument of the -m option on
page 138.
The -aat option is intended for templates compiled for PCL presentment targets other than the
LaserJet 5si. Using this option means that there is no need to re-compile templates when
printing to the LaserJet 5si printer. The -aaton option causes Print Agent to treat the template
as compiled for a LaserJet 5si printer, even when the template is compiled for some other PCL
printer.
Using the -aatoff option does not force Print Agent to search for a macro on the hard disk.
However, it does not prevent the search when the template is compiled for a LaserJet 5si
printer. When Print Agent prints a template compiled for a LaserJet 5si printer, it always
searches for the macro on the hard disk. The default is -aatoff.
The -aat option affects templates compiled for PCL presentment targets. When the template is
compiled for another type of presentment targets, -aat is silently ignored; even when the
template is compiled for a LaserJet 5siMX PostScript printer.
68
To specify a bookmark file for bookmarks that appear in the PDF output, start Print Agent with
the -abmk option. Bookmarks are links to different records within the PDF file, used to assist in
navigation. The bookmark file is a text file, which you can create with any text editor. For details
on creating a bookmark file, see PDF Output on page 43.
You pass the bookmark file to Print Agent, using the -abmkfilename command line option. If the
bookmark file includes sections, you advise Print Agent of the section within the file to use with
the -abmssection command line option (see page 69). For example:
jfmerge formfile datafile -aiijfmerge.ini -zc:\finance\p_order.pdf
-abmkc:\finance\bookmark.bmk -abmsP_Order
When you include bookmarks in the PDF file, they appear in the left pane of the Adobe Reader
window.
PDF File Displayed In Adobe Reader
bookmarks
In the above graphic, the values from the field Vendor Code are the bookmarks. Clicking on any
of the bookmarks will take you to the record containing that value.
69
To specify a bookmark section within a bookmark file, start Print Agent with the -abms option.
Section is a logical name for a grouping of bookmarks, as it appears in the bookmark file.
Section tells Print Agent which group of bookmarks to use for the job it is currently
processing. For details on creating a bookmark file, see PDF Output on page 43.
When you use the -abms option, you must identify the bookmark file using the -abmk option
(see page 68).
To specify collation of the printed output, start Print Agent with the -acollate option. This option
works with the -c (copies) option. Setting -acollateyes results in all copies requested by the
-c option being collated.
With -acollateno, the printed output is not collated. This is the default.
Collation is supported for the Windows presentment target on Windows 2000 and up, provided
the Windows driver for your printer supports this function.
Collation is also supported for PCL and PostScript Print Agent presentment targets. If your
printer does not support collation through the use of the @PJL SET QTY = command, or if
your printer does not have enough resources to collate your jobs, refer to the section Collation
Support on page 57.
The collation option will not work with the ^copies command; only with the -c option on the
command line.
To convert a date with a two digit year to a date with a four digit year, start Print Agent with the
-acs option. nn is the number used to determine the first two digits of the resulting four digit
year. If the two digit year is less than nn, the preface for the two digit year is 20; otherwise,
70
the preface for the two digit year is 19. The default value for nn is 10, causing all two digit
years between 00 and 09 to start with 20, and all two digit years between 10 and 99 to start
with 19.
For example, when you start Print Agent with the command
jfmerge formfile datafile -aiijfmerge.ini -acs25
dates with two digit years from 00 to 24 result in 2000 to 2024, and dates with two digit years
from 25 to 99 result in 1925 to 1999.
nn must be a maximum of two digits or the letters AA. When you use more than two digits, only
the first two digits are considered. When there are no digits, Print Agent ignores the -acs option.
For example, use -acs05 or -acs5, not -acs. When you use AA, the preface for all two digit
years is 20.
Note: The -acs option does not affect dates supplied with four digit years, or $DATE. It is used
only for conversions from two digit year formats to four digit year formats. However, this
does include conversions of dates with a two digit year supplied using daten with the
\pic command (see page 242).
To handle currency formatting in fields with a picture format, use the -acu option. By default,
Print Agent uses English North American currency formatting:
Default
Option
currency symbol
thousands separator
decimal separator
CR
credit symbol
DB
debit symbol
()
currency parentheses
left
71
You can change the default symbols, as described in the following sections.
To change the currency symbol, start Print Agent with the -acucs option. By default, Print Agent
uses a $ (dollar sign) to indicate currency:
$37.50
For example, to change the currency symbol to a (pound sterling), start Print Agent with this
command:
jfmerge poform poform.dat -aiijfmerge.ini -acucs=
Print Agent supports currencies that require more than one character as a symbol and accepts
a maximum of four characters. For example, to change the currency symbol to DM (deutsche
mark), start Print Agent with this command:
jfmerge poform poform.dat -aiijfmerge.ini -acucs=DM
You can specify a character value with the -acucs option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
cc (Thousands Separator)
Format
-acucc=n
To change the thousands separator, start Print Agent with the -acucc option. By default, Print
Agent uses a , (comma) to indicate thousands of units:
14,000,000
For example, to change the thousands separator to a . (period), start Print Agent with this
command:
jfmerge poform poform.dat -aiijfmerge.ini -acucc=.
You can specify a character value with the -acucc option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
72
cd (Decimal Separator)
Format
-acucd=n
To change the decimal separator, start Print Agent with the -acucd option. By default, Print
Agent uses a . (period) to indicate a decimal:
3.14159
For example, to change the decimal separator to an , (comma), start Print Agent with this
command:
jfmerge poform poform.dat -aiijfmerge.ini -acucd=,
You can specify a character value with the -acucd option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
cr (Credit Symbol)
Format
-acucr=n
To change the credit symbol, start Print Agent with the -acucr option. The maximum is four
characters. By default, Print Agent uses CR (credit) to indicate a credit balance:
12.75CR
For example, to change the credit symbol to PLUS, start Print Agent with this command:
jfmerge poform poform.dat -aiijfmerge.ini -acucr=PLUS
You can specify a character value with the -acucr option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
To specify the thousands separator for incoming data, start Print Agent with the -acucic option.
This option is useful when the incoming data stream is generated with different currency
separators than those defined for the numeric picture clauses in the fields on your template.
73
For example, to specify the incoming thousands separator as a . (period), start Print Agent
with this command:
jfmerge poform poform.dat -aiijfmerge.ini -acucic=.
You can specify a character value with the -acucic option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
To specify the decimal separator for incoming data, start Print Agent with the -acucid option.
This option is useful when the incoming data stream is generated with a different decimal
separator than that defined for the numeric picture clauses in the fields on your template.
By default, Print Agent uses a . (period) to indicate a decimal:
3.14159
For example, to specify the incoming decimal separator as an , (comma), start Print Agent
with this command:
jfmerge poform poform.dat -aiijfmerge.ini -acucid=,
You can specify a character value with the -acucid option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
db (Debit Symbol)
Format
-acudb=n
To change the debit symbol, start Print Agent with the -acudb option. The maximum is four
characters. By default, Print Agent uses DB (debit) to indicate a debit balance:
29.95DB
For example, to change the debit symbol to LESS, start Print Agent with this command:
jfmerge poform poform.dat -aiijfmerge.ini -acudb=LESS
74
You can specify a character value with the -acudb option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
cp (Currency Parenthesis)
Format
-acucp=n
To change the currency parentheses, start Print Agent with the -acucp option. By default, Print
Agent uses ( ) (left and right parentheses) to indicate negative numbers:
(850)
For example, to change the currency parentheses to { } (brace brackets), start Print Agent with
this command:
jfmerge poform poform.dat -aiijfmerge.ini -acucp={}
You can specify a character value with the -acucp option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
To change the location of the currency symbol, start Print Agent with the -acucl option. The
locations are left and right. By default, Print Agent places the currency symbol on the left.
$14,000
For example, to move the currency symbol to the right of the currency string, start Print Agent
with this command:
jfmerge poform poform.dat -aiijfmerge.ini -acucl=right
75
To specify a path for a file referenced in the data stream by a ^file command, start Print Agent
with the -adp option. Providing a path with the -adp option gives you the flexibility of changing
the storage location for your files without impacting your data stream.
Print Agent first attempts to locate the file with the information supplied with the ^file command:
If the file name supplied with the ^file command contains an absolute path reference, Print
Agent ignores the -adp option.
For example, with an absolute path of:
^file \\server1\files\info.txt
- or ^file c:\files\info.txt
If the file name supplied with the ^file command is not an absolute path reference, Print
Agent searches the current folder for the name as given.
For example, if the file name provided with the ^file command is:
^file files\info.txt
Print Agent searches for info.txt in the ...\files\ subfolder of the current folder.
If Print Agent cannot locate the file using the information supplied with the ^file command, it
examines the -adp option:
If the path supplied with the -adp option contains an absolute path reference, Print Agent
prefixes the path supplied with the -adp option to the file name supplied with the ^file
command.
For example, if the file name provided with the ^file command is:
^file files\info.txt
If the path supplied with the -adp option is not an absolute path reference, Print Agent
prefixes the path supplied with the -adp option to the file name and searches the current
folder.
For example, if the file name provided with the ^file command is:
^file files\info.txt
Print Agent searches for info.txt in the ...\finance\files\ subfolder of the current folder.
76
To specify two-sided printing, use the -adu option. This option is useful when you want to print
in duplex for binding the output in data binders.
By default, Print Agent uses the duplex option compiled into the template.
Several of the arguments for the -adu option produce the same result. The arguments are:
off
Format
-aduoff
To print on only one side of the page, start Print Agent with this command:
jfmerge -aiijfmerge.ini -aduoff
Print Agent prints in either portrait or landscape page orientation. The template designer
determines the orientation requirements at the time of template design.
Portrait Orientation
Landscape Orientation
on
Format
-aduon
To print on both sides of the page, start Print Agent with this command:
jfmerge -aiijfmerge.ini -aduon
77
The template prints for binding along the long edge of the page, whether portrait or landscape
orientation:
Binding edge
Binding
edge
left
Format
-aduleft
To print the page with the left edge of the front side as the binding edge, start Print Agent with
this command:
jfmerge -aiijfmerge.ini -aduleft
This option is for portrait orientation. The template prints for binding along the left edge:
Binding
edge
long
Format
-adulong
To print the page with the long edge of the front side as the binding edge, start Print Agent with
this command:
jfmerge -aiijfmerge.ini -adulong
The template prints for binding along the long edge, whether portrait or landscape orientation:
Binding edge
Binding
edge
78
top
Format
-adutop
To print the page with the top edge of the front side as the binding edge, start Print Agent with
this command:
jfmerge -aiijfmerge.ini -adutop
This option is for portrait orientation. The template prints for binding along the top edge.
Binding edge
short
Format
-adushort
To print the page with the short edge of the front side as the binding edge, start Print Agent with
this command:
jfmerge -aiijfmerge.ini -adushort
The template prints for binding along the short edge, whether portrait or landscape orientation:
Binding edge
Binding
edge
*ptrstring
Format
-adu*ptrstring
79
To select duplex printing using printer commands, start Print Agent with the -adu*ptrstring
option. ptrstring is the printer command string for the duplex options, as set by the printer
manufacturer. It must be preceded by an * (asterisk). It is not interpreted by Print Agent but
sent directly to the printer. It may not contain newline characters or other characters that are
special to Print Agent.
For example, to print the page with the long edge of the front side as the binding edge, for which
the printer manufacturer has designated a printer command string of true setduplexmode false
settumble, start Print Agent with this option:
-adu"*true setduplexmode false settumble"
Windows printer drivers do not support the use of *ptrstring with -adu.
Refer to the documentation provided with your printer for the available duplex options and their
equivalent command strings.
+encoded-ptrstring
Format
-adu+encoded-ptrstring
To select duplex printing using printer commands, start Print Agent with the
-adu+encoded-ptrstring option. encoded-ptrstring is the printer command string, but
potentially with some or all characters encoded as described in the Appendix Numeric
Character Values on page 319. It must be preceded by a + (plus).
For example, to print the page with the long edge of the front side as the binding edge, for which
the printer manufacturer has designated a printer command string of <ESC> (the ASCII escape
character) followed by &l1S, start Print Agent with this option:
-adu"+\027&l1S"
Windows printer drivers do not support the use of +encoded-ptrstring with -adu.
Refer to the documentation provided with your printer for the available duplex options and their
equivalent command strings.
80
To define dictionary variables from the command line, start Print Agent with the -adv option.
name is a variable identifier of the form [dictionary-name:]variable-name and value is the
value to place in the dictionary variable. value may be any characters, including spaces and
most punctuation marks. When value contains spaces, surround the name=value with
(quotation marks).
When you do not specify a dictionary name, the default dictionary is User. This means that
starting Print Agent with this command:
jfmerge -aiijfmerge.ini -adv"user:name=Tom Brown"
See also:
^define (Assign Value to Dictionary Variable) on page 180, for another method of defining
dictionary variables.
Page 186, for faxing using the Fax dictionary and the -adv option.
Page 316 for replacing lines of input data using !Replace! and the -adv option.
To use extended barcode processing, start Print Agent with the -aebon option.
Extended barcode processing allows Print Agent to use special extended codes, as well as
some non-printable function codes, in code 128, subsets CodeA, CodeB, and CodeC.
Use the -aebon option to identify the following characters in the data stream for substitution
with the equivalent CodeA, CodeB, and CodeC characters:
Character CodeA equivalent CodeB equivalent CodeC equivalent
\A
CODEA
\B
CODEB
\C
CODEC
CODEC
\1
FNC1
FNC 1
\2
FNC 2
FNC 2
\3
FNC 3
FNC 3
\4
CODEA
CODEB
FNC 4
FNC 1
81
US
DEL
\S
SHIFT
SHIFT
\\
To ignore extended barcode processing, start Print Agent with the -aeboff option. This is the
default.
To format the printer hard disk drive, start Print Agent with the -afdf option.
This option is available for certain printers that contain hard disks.
To specify that a finish option be sent to the printer, start Print Agent with the -afinish option.
Finish options are only supported on printers that support PJL (Printer Job Language) and only
on Print Agent presentment targets - they are not supported for Windows drivers.
n is a number from 0 - 9. This allows for up to 10 finish options on a command line.
It does not matter what value you choose for n as long as it is in the range 0 - 9. If you put
more that one -afinish option on the command line with the same value for n, then the
rightmost one on the line will be used. If you put multiple -afinish options on the command line
with unique values for n, then they will ALL be used. This will allow -afinish1Staple and
-afinish2HolePunch if your printer has support for both stapling and hole punching on the
same document.
FinishOption is a custom defined finish option whose name appears in a custom string in
the .ICS file for the printer. The .ICS files are found in the \CONFIG folder in the directory where
Output Designer is installed.
For completed details about defining custom finish options for the features available on your
printer, see Defining Custom Finish Options on page 54.
82
Staple Support
Print Agent includes a mechanism to select the PJL staple capability on these printers:
The ICS files noted above include the custom strings necessary to provide the PJL staple
capability.
To specify that a request to staple the printed output be sent to the printer when using of the
above noted printers, start Print Agent with the -afinishnStaple option. Ensure you substitute a
number from 0 - 9 for n, for example -afinish1Staple.
The staple option will not work with the ^copies command; only with the -c option on the
command line. This is because PJL parameters must occur at the start of the job.
If you want collated stapled copies of a document, ensure you use the -acollateyes option with
the -afinishnStaple option. For details about the collate option, see -acollate (Collate Output)
on page 69.
For complete details about staple support and how it is implemented, see Staple Document
Support on page 53.
To format the printer nonvolatile (flash) memory, start Print Agent with the -afmf option.
This option is available for certain printers that support nonvolatile memory.
To specify a path for a template referenced in the data stream by a ^form (see page 191) or
\form (see page 260) command, start Print Agent with the -afp option. Providing a path with the
-afp option gives you the flexibility of changing the storage location for your templates without
impacting your data stream.
83
Print Agent first attempts to locate the template with the information supplied with the ^form or
\form command:
If the template name supplied with the ^form or \form command begins with an absolute
path, Print Agent ignores the -afp option.
For example, given the following commands:
^form \\server1\forms\myform.mdf
- or ^form c:\forms\myform
- or ^form http://www.adobe.com/forms/myform.mdf
Print Agent opens the template or downloads it from the HTTP server using the path
supplied.
If the template name supplied with the ^form or \form command does not contain a full path,
Print Agent searches the current folder for a file with the supplied name, adding an .mdf
extension if no extension is supplied.
For example, if the template name provided with the ^form command is:
^form forms\myform.mdf
Print Agent searches for myform.mdf in the ...\forms\ subfolder of the current folder.
If Print Agent cannot locate the template using the information supplied with the ^form or \form
command, it examines the -afp option:
If the path supplied with the -afp option starts with http:, Print Agent prefixes the path
supplied with the -afp option to the resource name supplied with the ^form or \form
command. If the resulting URL contains \ (backslash) characters, Print Agent converts
them into / (forward slash) characters to comply with Internet technical standards.
For example, if the resource name supplied with the ^form command is:
^form forms\myform.mdf
If the path supplied with the -afp option contains an absolute path reference that does not
start with http:, Print Agent prefixes the path supplied with the -afp option to the template
name supplied with the ^form or \form command.
For example, if the file name provided with the ^form command is:
^form forms\myform.mdf
84
If the path supplied with the -afp option is not an absolute path reference, Print Agent
prefixes the path supplied with the -afp option to the template name and searches the
current folder.
For example, if the template name provided with the ^form command is:
^form forms\myform.mdf
Print Agent searches for myform.mdf in the ...\finance\forms\ subfolder of the current folder.
When Print Agent encounters a ^field command, it resets all field attributes to that of the new
field. Field attributes include font, indentation, tab settings, subscripts and superscripts. The
-afron option is the default for Print Agent, and causes a ^field command to reset the current
attributes.
Including the -afroff option causes Print Agent to ignore the resetting of field attributes when it
encounters a ^field command.
For another method of setting field attributes, see [freset|nofreset] on page 201.
To discard data for unknown fields, start Print Agent with the -afxon option.
To place data for an unknown field in the next field on the template, start Print Agent with the
-afxoff option. This is the default. The command:
jfmerge poform podata.dat -aiijfmerge.ini -afxoff
where poform is the name of the template and podata.dat is the name of the transaction file.
85
To adjust the appearance of the printed gray-scale image, start Print Agent with the -agsb
option. nn is the brightness setting, with a range from 0 to 100. 0 makes a normal contrast
image completely black, while 100 makes it completely white. The default is 50.
The -agsb option applies only to gray-scale images printed via the ^graph (see page 194) or
\graph (see page 262) commands, or in a field defined as a Graphics type field in Output
Designer. It does not apply to PostScript Level 2 or PCL 6 printing, which handles gray-scale in
the printer itself, or to printing via Windows printer drivers, which handle gray-scale in the driver.
Gray-scale images may be stored in PCX format files or in TIFF format files, but not in JPEG
compressed TIFF files.
To adjust the appearance of the printed gray-scale image, start Print Agent with the -agsc
option. nn is the contrast setting, with a range from 0 to 100. 0 makes the image wash out
completely, while 100 doubles the contrast compared to that stored in the image file. The
default is 50.
Laser printers are designed so that if adjacent pixels are black, they bleed together; this makes
the text look like solid letters rather than the collection of pixels it really is. However, for images
on which the dithering method was used (-agsmdither), this has the effect of making dark grey
areas into solid black. This causes the printed image to have a higher contrast than the image
stored in the image file. Although this may be acceptable, it does actually obscure some detail
in the image. If you want maximum visible detail, you can bring it out by reducing the contrast
somewhat using -agscnn. The optimum setting depends on the printer and may vary with time
and the condition of the toner cartridge, but a setting in the range of 40 to 45 seems to be a
good compromise.
The -agsc option applies only to gray-scale images printed via the ^graph (see page 194) or
\graph (see page 262) commands, or in a field defined as a Graphics type field in Output
Designer. It does not apply to PostScript Level 2 or PCL 6 printing, which handles gray-scale in
the printer itself, or to printing via Windows printer drivers, which handle gray-scale in the driver.
Gray-scale images may be stored in PCX format files or in TIFF format files, but not in JPEG
compressed TIFF files.
86
To set the method of display for image files containing gray-scale images, start Print Agent with
the -agsm option. In gray-scale images, each pixel is represented by a number giving its
monochrome brightness.
The bluenoise argument displays the gray-scale image by spreading the pixels as
homogeneously as possible. This is the default.
The threshold argument displays the gray-scale image with each pixel independently
converted to black or to white. Any pixel with a brightness less than the threshold setting
appears as white and any pixel with a brightness greater than the threshold setting appears as
black. For the threshold setting, see -agst (Gray-scale Threshold) on page 86.
The dither argument displays the gray-scale image with a scattering of dots that is denser
where the image is darkest. This allows for a better looking image and shows much more of the
detail in the image.
The -agsm option applies only to gray-scale images printed via the ^graph (see page 194) or
\graph (see page 262) commands, or in a field defined as a Graphics type field in Output
Designer. It does not apply to PostScript Level 2 or PCL 6 printing, which handles gray-scale in
the printer itself, or to printing via Windows printer drivers, which handle gray-scale in the driver.
Gray-scale images may be stored in PCX format files or in TIFF format files, but not in JPEG
compressed TIFF files.
To adjust the appearance of the printed gray-scale image, start Print Agent with the -agst
option. nn is the threshold setting, with a range from 0 to 100. 0 makes an image completely
black, while 100 makes it completely white. The default is 50.
The -agst option applies only to gray-scale images printed via the ^graph (see page 194) or
\graph (see page 262) commands, or in a field defined as a Graphics type field in Output
Designer. It does not apply to PostScript Level 2 or PCL 6 printing, which handles gray-scale in
the printer itself, or to printing via Windows printer drivers, which handle gray-scale in the driver.
Gray-scale images may be stored in PCX format files or in TIFF format files, but not in JPEG
compressed TIFF files.
87
To enter a value for a global field from the command line, start Print Agent with the -agv option.
fieldname is the name of the global field. fieldname can be any valid field name. value is
the value to place in the global field. value may be any characters, including spaces and most
punctuation marks. When value contains spaces, surround the fieldname=value with
(quotation marks).
For example, to enter the name Tom Brown in a global field named MGR_NAME, start Print
Agent with this command:
jfmerge -aiijfmerge.ini -agv"mgr_name=Tom Brown"
To activate the processing of global fields set for the template in Output Designer, start Print
Agent with the -aifgfno option. This is the default. When Print Agent activates a template
containing global fields, it adds these fields to the Global dictionary and treats them as though
they were defined as global fields in the data stream, using the ^global or ^define global
commands.
Starting Print Agent with the -aifgfyes option causes it to ignore global fields set for the
template in Output Designer.
To specify the name for the Print Agent configuration file, start Print Agent with the -aii option.
The default is jfmerge.ini.
This option is mandatory. You must specify the -aii option on the command line used to invoke
Print Agent. For tasks invoked via Central, you must include the -aii@IniFileName option in the
Program options for the task.
88
To start printing at a specified page number within the template, start Print Agent with the -aip
option. nn is the number of the first page to print.
Renumbering of pages on output using the -s option (see page 152) does not affect this option.
To activate processing of Inline Text Control commands, start Print Agent with the -aitcon
option. This is the default.
jfmerge formfile datafile -aiijfmerge.ini -aitcon
Without this option, Print Agent processes Inline Text Control commands as data, and prints
them literally rather than executing them. You may set Inline Text Control processing off with
-aitcoff.
For another method of activating Inline Text Control commands, see ^inline (Activate Inline
Text Control Processing) on page 199.
-ajitf (Just-in-Time-Fonts)
The command line option has been cancelled and superseded with -ajutf (Just-in-Time Fonts).
89
To control the downloading of fonts to the printer, start Print Agent with the -ajutf option.
With -ajutfyes, fonts are downloaded to the printer only if they are needed to complete the print
job. This is the default. Downloading only the fonts called for by the data stream and the
template boilerplate will reduce the size of output print files.
With -ajutfno, all fonts defined in the printer configuration file are downloaded to the printer at
the start of the print job.
To control the downloading of macros to the printer, start Print Agent with the -ajutm option.
With -ajutmyes, pages and subforms compiled into the template are downloaded to the printer
only if they are needed to complete the print job. This is the default. Downloading only the
template elements called for by the data stream will reduce the size of output print files.
With -ajutmno, all pages and subforms compiled into the template are downloaded to the
printer at the start of the print job.
The just-in-time macros feature is available for PCL 5, PCL-XL, PostScript, and PDF. However,
it does not work for all printers supported by Print Agent. To confirm whether the presentment
target you are using supports the just-in-time macros feature, check the .ICS file for that
presentment target.
90
To specify the name of the log file to use for processing messages, start Print Agent with the -all
option. When you do not specify filename, Print Agent uses the default file name from its
configuration file. On platforms that support it, filename can also be the file descriptor
stdout.
Log file entries have the format:
DATE TIME MODULE: MESSAGE
where DATE has the format YYMMDD, TIME has the format HH:MM:SS, MODULE is the
name of the executable program that generated the message and MESSAGE is the text of the
log message.
You can set the level of message detail that Print Agent writes to the jfserver.log file in two
ways:
By setting the Message Display option (see page 17) when configuring Print Agent
If desired, you can also change the format of the DATE and TIME settings. You do this in the
Print Agent configuration file, jfmerge.ini, in the [JetForm] section under the setting
MsgDateStampFormat.
The possible values for the settings are any valid XPG format specifiers, but the following are
the most useful:
Specifier
Description
%y
%Y
%m
Month as a number
%d
%H
%I
%M
Minute as a number
%S
Second as a number
%p
The default specifier, %Y/%m/%d %H:%M:%S, provides a date in the format, YYYY/MM/DD
HH:MM:SS:
2000/01/31 15:47:23
For a two digit year, use a specifier of %y/%m/%d %H:%M:%S. This provides the date in the
format YY/MM/DD HH:MM:SS:
00/01/31 15:47:23
91
The use of / (slash marks), : (colons) and spaces in the specifier are for ease of readability
only. For example, using a specifier of %Y%m%d%I%M%S%p provides the date in the format
YYYYMMDDHHMMSSXM:
20000131034723PM
whereas, using a specifier of %Y/%m/%d/ %I:%M:%S:%p provides the date in the format
YYYY/MM/DD HH:MM:SS XM:
2000/01/31 03:47:23 PM
Note: The default configuration for Central and components (Print Agent, Transformation
Agent, etc.) is to write to the same log file, jfserver.log. To ensure that all components
write to the log file in the same manner, it is recommended that the
MsgDateStampFormat setting in the configuration file for each component be the
same.
To specify a path for a logo file referenced in the data stream by a ^graph or \graph command,
start Print Agent with the -alp option. Providing a path with the -alp option gives you the
flexibility of changing the storage location for your logos without impacting your data stream.
The logo file may be bound into the template at design time, when the template is designed with
Output Designer. Print Agent always searches the template first for the logo file.
Note: The -alp command line option supports file names with embedded blanks (spaces).
However, file names with embedded blanks must be enclosed in (quotation marks).
Print Agent next attempts to locate the file with the information supplied with the ^graph or
\graph command:
If the file name supplied with the ^graph or \graph command contains an absolute path
reference, Print Agent ignores the -alp option.
For example, with an absolute path of:
^graph \\server1\logos\mylogo.pcx
- or ^graph c:\logos\mylogo.pcx
If the file name supplied with the ^graph or \graph command is not an absolute path
reference, Print Agent searches the current folder for the name as given.
92
For example, if the file name provided with the ^graph command is:
^graph logos\mylogo.pcx
Print Agent searches for mylogo.pcx in the ...\logos\ subfolder of the current folder.
If Print Agent cannot locate the file using the information supplied with the ^graph or \graph
command, it examines the -alp option:
If the path supplied with the -alp option contains an absolute path reference, Print Agent
prefixes the path supplied with the -alp option to the file name supplied with the ^graph or
\graph command.
For example, if the file name provided with the ^graph command is:
^graph logos\mylogo.pcx
If the path supplied with the -alp option is not an absolute path reference, Print Agent
prefixes the path supplied with the -alp option to the file name and searches the current
folder.
For example, if the file name provided with the ^graph command is:
^graph logos\mylogo.pcx
Print Agent searches for mylogo.pcx in the ...\finance\logos\ subfolder of the current folder.
EW
-amaxeventloopn
To limit the number of events Print Agent will execute within a page, start Print Agent with
-amaxeventloop option.If n is greater than zero, Print Agent will stop after executing n events.
If n is zero, Print Agent does not limit the number of events that may execute for a page.
The default for n is set by the MaximumEventLoop setting in the Print Agent configuration file,
jfmerge.ini. At installation, this is set to zero.
Sometimes, particularly when developing forms with custom coded event logic, a form may
enter an event loop that prevents it from completing properly. When this happens the Print
Agent may appear to hang while processing the form. When a MaximumEventLoop limit is set
and the processing of the form exceeds the set limit, Print Agent will generate error messages
that identify the sequence of events leading up to the point at which processing is abandoned.
93
When diagnosing a situation involving a form that contains an event loop, the
MaximumEventLoop setting can be useful to help identify the custom coded event logic that is
causing the form to enter an event loop.
Print Agent can process many hundreds of events per second and form designs rarely require
more than a hundred events to complete a page layout. Therefore a MaximumEventLoop limit
of 500 is suitable for most debugging situations, since the limit is unlikely to interfere with the
execution of a properly functioning form, but will catch a form that has entered an event loop
within a few seconds.
The MaximumEventLoop option can also be used in combination with the
MaximumPagesToPrint option to detect and debug nearly any situation where a combination
of custom coded event logic can cause Print Agent to enter an infinite event loop. For details
about the MaximumPagesToPrint option, see -amaxpagestoprint (Maximum Surfaces to
Print) on page 96.
UP
TE
DA
Format:
-amaxicodeeolcharacters
To specify the character or characters to use for the UPS MaxiCode barcode end of line (EOL)
condition, start Print Agent with the -amaxicodeeol option.
For example, with -amaxicodeeol\029, the end of line character is ASCII GS (decimal 29). This
is the default. The end of line (EOL) character is sent to the printer as the field separator in
Modes 2 and 3.
The corresponding configuration file option for -amaxicodeeol is MAXICODEEOL in the
[Special] section of the Print Agent configuration file, jfmerge.ini.
You can specify a character value with the -amaxicodeeol option, in lieu of the actual
character. This is useful in cases where the character you require is not a standard keyboard
character. For details, see the Appendix Numeric Character Values on page 319.
Note: UPS MaxiCode barcodes are only supported on Zebra and Intermec presentment
targets.
UP
TE
DA
Format:
-amaxicodeifscharacters
94
To specify the character to use for the UPS MaxiCode barcode input field separator, start Print
Agent with the -amaxicodeifs option. For example, to specify the | (pipe symbol) as the input
field separator, use the option -amaxicodeifs|.
By default, the separator is newline. However, newline and the input field separator specified
with the -amaxicodeifs option can be intermixed within a field. Unlike newline, the input field
separator can also be used in the MaxiCode message header and MaxiCode message trailer.
All occurrences of the input field separator within the MaxiCode low priority message will be
replaced on output with the end of line character. The first three fields (the MaxiCode high
priority message) are fixed in length for the given mode: input separators may be used
between them, but on output these fields are combined according to the standard.
The corresponding configuration file option for -amaxicodeifs is MAXICODEIFS in the
[Special] section of the Print Agent configuration file, jfmerge.ini.
You can specify a character value with the -amaxicodeifs option, in lieu of the actual character.
This is useful in cases where the character you require is not a standard keyboard character.
For details, see the Appendix Numeric Character Values on page 319.
Note: UPS MaxiCode barcodes are only supported on Zebra and Intermec presentment
targets.
UP
TE
DA
Format:
-amaxicodehdrcharacters
To specify the characters to use for the UPS MaxiCode barcode message header, start Print
Agent with the -amaxicodehdr option.
In Modes 2 and 3, this header begins the MaxiCode low priority message. The format,
-amaxicodehdr=[)>\03001\02996, is set by the ANSI MH10.8.3M standard, and for UPS
should be left as shown, which is the internal default.
The corresponding configuration file option for -amaxicodehdr is MAXICODEHDR in the
[Special] section of the Print Agent configuration file, jfmerge.ini.
You can specify character values with the -amaxicodehdr option, in lieu of the actual
characters. This is useful in cases where the characters you require are not a standard
keyboard character. For details, see the Appendix Numeric Character Values on page 319.
Note: UPS MaxiCode barcodes are supported only on Zebra and Intermec presentment
targets.
95
UP
TE
DA
Format:
-amaxicodetrlrcharacters
To specify the characters to use for the UPS MaxiCode barcode message trailer, start Print
Agent with the -amaxicodetrlr option.
The corresponding configuration file option for -amaxicodehdr is MAXICODEHDR in the
[Special] section of the Print Agent configuration file, jfmerge.ini.
For example, with -amaxicodetrlr\030\004, the message trailer is ASCII RS (decimal 30)
followed by ASCII EOT (decimal 4). This is the default. In Modes 2 and 3, this trailer will be sent
to the printer following the MaxiCode low priority message.
The corresponding configuration file option for -amaxicodetrlr is MAXICODETRLR in the
[Special] section of the Print Agent configuration file, jfmerge.ini.
You can specify character values with the -amaxicodetrlr option, in lieu of the actual
characters. This is useful in cases where the characters you require are not a standard
keyboard character. For details, see the Appendix Numeric Character Values on page 319.
Note: UPS MaxiCode barcodes are only supported on Zebra and Intermec presentment
targets.
UP
TE
DA
Format:
-amaxpagestoprintn
To limit the number of surfaces (sides of pages) Print Agent will print, start Print Agent with the
-amaxpagestoprint option. If n is greater than zero, Print Agent will stop after printing n
surfaces. If n is zero, Print Agent will not stop until it reaches the end of the data stream. This
option differs from the -apg option (see page 112) in that it uses a count of surfaces printed, not
the page number. The page number can be reset by commands in the data stream but the
surface count can not.
The default for n is set by the MaximumPagesToPrint setting in the Print Agent configuration
file, jfmerge.ini. At installation, this is set to zero.
Sometimes, particularly when developing forms with custom coded event logic, a form may
enter an event loop that prevents it from completing properly. When this happens the Print
Agent may appear to hang while processing the form and it may also print an endless number
96
of surfaces. When a MaximumPagesToPrint limit is set and the processing of the form
exceeds the set limit, Print Agent will stop processing and generate an error message that
indicates that the number of expected surfaces has been exceeded.
The MaximumPagesToPrint option can be used in combination with the MaximumEventLoop
option to detect and debug nearly any situation where a combination of custom coded event
logic can cause Print Agent to enter an infinite event loop. For details about the
MaximumEventLoop option, see -amaxeventloop (Maximum Event Loop).
To specify the number of bytes of managed memory in a printer, start Print Agent with the -amq
option. nn is the number of bytes of managed memory. Print Agent requires this option when
you use the managed memory in a printer for storing macros. (For managed memory macros,
see m (Managed Memory Macro) on page 137.)
This option is available for certain printers that support macros.
To search a specific path for the Macro Status Table file for the printer, start Print Agent with the
-ams option. By default, Print Agent searches the current directory. Print Agent requires this
option when you use either load-first-time (see page 137) or managed memory macros (see
page 137).
To change the new field character, start Print Agent with the -anf option. The default new field
character (see page 322) is a ` (back quotation mark). When Print Agent encounters a new
field character in the data stream, it ends the current field and advances to the next field on the
template.
97
For example, to change the new field character to # (pound), start Print Agent with this
command:
jfmerge formfile datafile -aiijfmerge.ini -anf#
You can specify a character value with the -anf option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
For another method of modifying the new field character, see ^newfield (New Field Character)
on page 204.
To change the alternate newline character, start Print Agent with the -anl option. The default
alternate newline character (see page 324) is a ~ (tilde). When Print Agent encounters this
character in the data stream, it ends a line in a multi-line field or ends a single line field.
For example, to change the alternate newline character to # (pound), start Print Agent with
this command:
jfmerge formfile datafile -aiijfmerge.ini -anl#
You can specify a character value with the -anl option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
For another method of modifying the alternate newline character, ^terminator (Alternate
Newline Character) on page 226.
To revert to the older method of calculating the font baseline, start Print Agent with the -aobon
option.
Previously Output Designer and Print Agent used a different algorithm to calculate the font
baseline. When you positioned boilerplate and text at the same place in Output Designer, Print
Agent printed the template with the text in the field vertically displaced from the boilerplate. Print
Agent now accurately aligns fields with boilerplate. This means that if you have templates
98
compiled with the position of field or boilerplate adjusted to compensate for the misalignment,
Print Agent will undo your adjustment by using the new calculation. This affects templates
compiled with Output Designer 4.0 or later.
To retain the present method of calculating the font baseline, use the -aoboff option. This is the
default.
To revert to the older method of calculating the page length, start Print Agent with the -aoplyes
option.
Previously the page length was determined incorrectly when calculating values during the
processing of a \reserve command, because the calculation did not include the bottom
unprintable area. This is now corrected. However, the correction may cause Print Agent
(version 5.2.6 or later) to overflow a subform onto a new page, where it previously found room
on the current page.
To retain the present method of calculating the page length, use the -aoplno option. This is the
default. The corresponding configuration file entry in the jfmerge.ini [Options] section is
UseOldPageLength=Yes|No.
To change the Dynamic Merge command prefix character, start Print Agent with the -apcc
option. This is a character that Print Agent uses to distinguish commands from data. The default
character (see page 322) is a ^ (caret).
It may be necessary to change the prefix character when the source of the data:
Use caution when changing prefix characters. Do not set any two to the same value. If you do,
Print Agent cannot distinguish between the different types of commands.
For example, to change the Dynamic Merge command prefix character to # (pound), start
Print Agent with this command:
jfmerge formfile datafile -aiijfmerge.ini -apcc#
99
You can specify a character value with the -apcc option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
For another method of modifying the Dynamic Merge command prefix character, see ^prefix
(Prefix Character) on page 216.
Note: When the Print Agent is processing a form that includes an internal preamble, it does
not recognize an attempt made in the data file to change the default Dynamic Merge
Command prefix character (from ^ (caret) to some other character).
To resolve this issue, append a ^prefix command to the preamble. For example,
^prefix #, to change the prefix character to the number sign. Appending the ^prefix
command to the preamble allows the change in prefix character to take place before the
data file is read, but after the preamble has been processed.
To change the prefix character that Print Agent uses as a dictionary name separator, start Print
Agent with the -apcd option. The default character (see page 322) is a : (colon).
It may be necessary to change the prefix character when the source of the data:
Use caution when changing prefix characters. Do not set any two to the same value. If you do,
Print Agent cannot distinguish between the different types of commands.
For example, to change the dictionary prefix character to # (pound), start Print Agent with this
command:
jfmerge formfile datafile -aiijfmerge.ini -apcd#
You can specify a character value with the -apcd option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
For another method of modifying the prefix character used as a dictionary name separator, see
^prefix (Prefix Character) on page 216.
100
To change the prefix character that Print Agent uses as an event name separator, start Print
Agent with the -apce option. The default character (see page 322) is an ! (exclamation point).
It may be necessary to change the prefix character when the source of the data:
Is not capable of generating Print Agent commands with the ! (exclamation point.
Use caution when changing prefix characters. Do not set any two to the same value. If you do,
Print Agent cannot distinguish between the different types of commands.
For example, to change the event prefix character to # (pound), start Print Agent with this
command:
jfmerge formfile datafile -aiijfmerge.ini -apce#
You can specify a character value with the -apce option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
To change the Inline Text Control prefix character, start Print Agent with the -apci option. This is
a character that Print Agent uses to distinguish commands from data. The default character
(see page 322) is a \ (backslash).
It may be necessary to change the prefix character when the source of the data:
Use caution when changing prefix characters. Do not set any two to the same value. If you do,
Print Agent cannot distinguish between the different types of commands.
For example, to change the Inline Text Control command prefix character to # (pound), start
Print Agent with this command:
jfmerge formfile datafile -aiijfmerge.ini -apci#
101
You can specify a character value with the -apci option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
For another method of modifying the Inline Text Control prefix character, see ^prefix (Prefix
Character) on page 216.
When an internal preamble that was not auto-generated by Output Designer is being used.
If you must pass the reserved inline text control prefix character in the data file with a dynamic
form that contains an internal auto-generated preamble, the only other way to make this work
would be to change the reserved character in the data file to some other character and then
change it back again once the inline commands have been executed. This can be done by
using Transformation Agent to change the reserved character and then using the JetKeys.ini
file to remap the character back to the reserved character before the data is written to the
output file.
To change the variable substitution prefix character, start Print Agent with the -apcv option. This
is the character that Print Agent uses to distinguish a substitution variable from data. The
default character (see page 322) is @ (at).
It may be necessary to change the prefix character when the source of the data:
102
For example, to change the variable substitution prefix character to # (pound), start Print
Agent with this command:
jfmerge formfile datafile -aiijfmerge.ini -apcv#
You can specify a character value with the -apcv option, in lieu of the actual character. This is
useful in cases where the character you require is not a standard keyboard character. For
details, see the Appendix Numeric Character Values on page 319.
For another method of modifying the Inline Text Control prefix character, see ^prefix (Prefix
Character) on page 216.
Caution: If you are using dynamic templates created in version 5.2 or later of Output
Designer, we do not recommend that you change the variable substitution prefix
character. The preamble generated automatically by these products contains
references to many variables that are specified using the @ (at).
Use caution when changing prefix characters. Do not set any two to the same value.
If you do, Print Agent cannot distinguish between the different types of commands.
To determine the handling of newline characters in multiline text data for PDF417 barcodes,
start Print Agent with the -apdf417bc53 option.
With -apdf417bc53off, Print Agent ignores the current reformat setting and preserves newline
characters in the data. This is the default.
With -apdf417bc53on, Print Agent handles newline characters in the data in accordance with
the current reformat setting.
You can change the default for this option by editing the PDF417BackComp53 setting in the
[Special] section of the Print Agent configuration file, jfmerge.ini. Setting the value to on
makes -apdf417bc53on the default, or to off makes -apdf417bc53off the default.
For the reformat settings, see -r (Reformat Data) on page 139, or ^reformat (Reformat Data)
on page 220.
103
To determine the symbol set used to store data in the PDF417 barcode, start Print Agent with
the -apdf417conv option.
With -apdf417convoff, Print Agent stores the data in the PDF417 barcode as is; that is, it
retains the incoming symbol set. This is the default.
With -apdf417convon, Print Agent converts the data from the incoming symbol set to the PC-8
symbol set (IBM Code Page 437). The PC-8 symbol set is the default Global Label Identifier
(GLI) for PDF417 barcodes.
You can change the default for this option by editing the PDF417Convert setting in the [Special]
section of the Print Agent configuration file, jfmerge.ini. Setting the value to on makes
-apdf417convon the default, or to off makes -apdf417convoff the default.
To specify the character or characters to use for the PDF417 barcode end of line (EOL)
condition, start Print Agent with the -apdf417eol option.
For example, with -apdf417eol\010, the end of line character is the ASCII LineFeed character.
This is the default.
The default value of \010 (ASCII LineFeed) is controlled by the PDF417EOL setting in the
[Special] section of the Print Agent configuration file, jfmerge.ini.
You can specify a character value with the -apdf417eol option, in lieu of the actual character.
This is useful in cases where the character you require is not a standard keyboard character.
For details, see the Appendix Numeric Character Values on page 319.
To produce a PDF file that repeats the boilerplate for each page and subform whenever it is
used, start Print Agent with the -apdfmon option. The resulting PDF file is rendered more
quickly by the Adobe Reader plug-in for Web browsers.
To produce a PDF file which declares the boilerplate for each page or subform once and then
refers to it as required, start Print Agent with the -apdfmoff option. This is the default.
104
With the -apdfmoff option, the resulting PDF file is usually smaller and takes less time for Print
Agent to produce. However, whether the PDF file is smaller with the -apdfmoff option depends
on the data being supplied. In some cases, using the -apdfmoff option may produce a
noticeably larger file size.
You can change the default for this option by editing the InlineMacros setting in the [PDFPrep]
section of the Print Agent configuration file, jfmerge.ini. Set the value to Yes to make
-apdfmon the default or No to make -apdfmoff the default.
To allow the addition of content to a PDF document, start Print Agent with the -apdfallowadd
option.
With -apdfallowaddno, content cannot be added to the PDF document This is the default.
With -apdfallowaddyes, these additions are allowed:
commenting
signing
Print Agent ignores the -apdfallowaddyes option if security is not activated. (See -apdflock
(Activate PDF Security Features) on page 107.)
The Allow Adding Content to a PDF Document value can be set on the command line with the
-apdfallowadd option, in the AllowAdd setting in the [PDFPrep] section of the Print Agent
configuration file, jfmerge.ini, or in the data stream via the SYS dictionary.
To set the Allow Adding Content to a PDF Document value in the Sys directory, use the format:
^define sys:pdfallowadd value
where sys is the dictionary name and pdfallowadd is the option name. value is the value
to be assigned to pdfallowadd and can be one of yes or no. You require a : colon
separator between the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
105
To allow the copying of a PDF document, start Print Agent with the -apdfallowcopy option.
With -apdfallowcopyyes, the default, the following is allowed:
With -apdfallowcopyno, the document cannot be copied. Print Agent ignores the
-apdfallowcopyno option if security is not activated. (See -apdflock (Activate PDF Security
Features) on page 107.)
The Allow Copying of PDF Document value can be set on the command line with the
-apdfallowcopy option, in the AllowCopy setting in the [PDFPrep] section of the Print Agent
configuration file, jfmerge.ini, or in the data stream via the SYS dictionary.
To set the Allow Copying of PDF Document value in the Sys directory, use the format:
^define sys:pdfallowcopy value
where sys is the dictionary name and pdfallowcopy is the option name. value is the
value to be assigned to pdfallowcopy and can be one of yes or no. You require a : colon
separator between the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
To allow the modification of a PDF document, start Print Agent with the -apdfallowmod option.
With -apdfallowmodno, the PDF document cannot be modified. This is the default.
With -apdfallowmodyes, these modifications are allowed:
document assembly
signing
Print Agent ignores the -apdfallowmodyes option if security is not activated. (See -apdflock
(Activate PDF Security Features) on page 107.)
The Allow Modification of PDF Document value can be set on the command line with the
-apdfallowmod option, in the AllowMod setting in the [PDFPrep] section of the Print Agent
configuration file, jfmerge.ini, or in the data stream via the SYS dictionary.
106
To set the Allow Modification of PDF Document value in the Sys directory, use the format:
^define sys:pdfallowmod value
where sys is the dictionary name and pdfallowmod is the option name. value is the value
to be assigned to pdfallowmod and can be one of yes or no. You require a : colon
separator between the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
Format
N
EW
-apdfencryptionlevel{40|low|128|high}
To set the PDF encryption level, start Print Agent with the -apdfencryptionlevel option.
Both -apdfencryptionlevel40 and -apdfencryptionlevellow specify 40 bit encryption. This is
the default.
Both -apdfencryptionlevel128 and -apdfencryptionlevelhigh specify 128 bit encryption.
The PDF Encryption Level can be set on the command line with the -apdfencryptionlevel
option, in the PdfEncryptionLevel setting in the [PDFPrep] section of the Print Agent
configuration file, jfmerge.ini, or in the data stream via the SYS dictionary.
To set the PDF Encryption Level value in the Sys directory, use the format:
^define sys:pdfencryptionlevel value
where sys is the dictionary name and pdfencryptionlevel is the option name. value is the
value to be assigned to pdfencryptionlevel and can be one of 40|low or 128|high. You
require a : colon separator between the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
To specify whether security features are activated for the PDF output, start Print Agent with the
-apdflock option.
107
With -apdflockyes, Print Agent activates the available security settings. By default these are:
With -apdflockno, Print Agent does not activate security and any security settings in the above
noted six options are ignored. This is the default.
The Activate PDF Security Features value can be set on the command line with the -apdflock
option, in the Lock setting in the [PDFPrep] section of the Print Agent configuration file,
jfmerge.ini, or in the data stream via the SYS dictionary.
To set the Activate PDF Security Features value in the Sys directory, use the format:
^define sys:pdflock value
where sys is the dictionary name and pdflock is the option name. value is the value to be
assigned to pdflock and can be one of yes or no. You require a : colon separator between
the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
UP
TE
DA
Format
-apdfownerOwnerPassword
To allow access to a PDF documents security settings, start Print Agent with the -apdfowner
option.
When OwnerPassword is specified and a user attempts to change the documents security
settings, a Password Dialog is presented to the user. Passwords are case sensitive. The default
Owner password is an empty string (that is, no password). When the Owner password is an
empty string, access is allowed to the documents security settings. If the Owner password and
the User password (see-apdfuser (Allow Access to PDF Document) on page 109) are the
same, the documents security settings can be accessed if either the Owner or the User
password is supplied to open the document. Also, if the Owner password and the User
password are the same, any security settings applied to the document using -apdflockyes are
ignored.
Print Agent ignores the -apdfowner option if security is not activated. (See -apdflock (Activate
PDF Security Features) on page 107.)
108
The Allow Access to PDF Security Settings value can be set on the command line with the
-apdfowner option, in the Owner setting in the [PDFPrep] section of the Print Agent
configuration file, jfmerge.ini, or in the data stream via the SYS dictionary.
To set the Allow Access to PDF Security Settings value in the Sys directory, use the format:
^define sys:pdfowner value
where sys is the dictionary name and pdfowner is the option name. value is the password
to be assigned to pdfowner. You require a : colon separator between the dictionary name
and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
To allow the printing of a PDF document, start Print Agent with the -apdfprint option.
With -apdfprintyes, the PDF document can be printed. This is the default.
With -apdprintno, the PDF document cannot be printed. Print Agent ignores the -apdprintno
option if security is not activated. (See -apdflock (Activate PDF Security Features) on
page 107.)
The Allow Printing of PDF Document value can be set on the command line with the -apdfprint
option, in the AllowPrint setting in the [PDFPrep] section of the Print Agent configuration file,
jfmerge.ini, or in the data stream via the SYS dictionary.
To set the Allow Printing of PDF Document value in the Sys directory, use the format:
^define sys:pdfprint value
where sys is the dictionary name and pdfprint is the option name. value is the value to
be assigned to pdfprint and can be one of yes or no. You require a : colon separator
between the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
To allow access to a PDF document, start Print Agent with the -apdfuser option.
109
When UserPassword is specified and a user attempts to open the document, a Password
Dialog is presented to the user before the document is opened. Passwords are case sensitive.
The default User password is an empty string (that is, no password). A User password allows
access to a PDF document only. It does not allow access to the documents security settings.
An Owner password (see -apdfowner (Allow Access to PDF Security Settings) on page 108)
is required in order to change the documents security settings.
Print Agent ignores the -apdfuser option if security is not activated. (See -apdflock (Activate
PDF Security Features) on page 107.)
The Allow Access to PDF Document value can be set on the command line with the -apdfuser
option, in the User setting in the [PDFPrep] section of the Print Agent configuration file,
jfmerge.ini, or in the data stream via the SYS dictionary.
To set the Allow Access to PDF Security Settings value in the Sys directory, use the format:
^define sys:pdfuser value
where sys is the dictionary name and pdfuser is the option name. value is the password
to be assigned to pdfuser. You require a : colon separator between the dictionary name and
the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
To control the initial page layout when a PDF file is opened, start Print Agent with the
-apdfLayout option.
With -apdflayoutsinglepage, the PDF file is displayed as single pages.
With -apdflayoutcontinuous, the PDF file is displayed as continuous pages.
With -apdflayoutcontinuous-facing, the PDF page is displayed as a side-by-side continuous
page.
With -apdflayoutdefault, the PDF page is displayed according to the default Page Display
Preferences on the individual users system.
The Initial Page Layout value can be set on the command line with the -apdflayout option, in
the PdfLayout setting in the [PDFPrep] section of the Print Agent configuration file,
jfmerge.ini, or in the data stream via the SYS dictionary.
110
To set the Initial Page Layout value in the Sys directory, use the format:
^define sys:pdfLayout value
where sys is the dictionary name and pdfLayout is the option name. value is the value to
be assigned to pdfLayout and can be one of SinglePage, Continuous,
Continuous-Facing, or Default. You require a : colon separator between the dictionary
name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
For example, for a command line option of -apdflayoutcontinuous, Print Agent writes the
value OneColumn to the PDF catalog.
You can define as many pairs of values for this option as you want. However, the second
member (PdfFileValue) must be a valid Acrobat value.
To specify the page number of the initial page that is displayed when a PDF file is open, start
Print Agent with the -apdfopentopage option. n is the page number of the page to display.
The default is 1.
The Initial Page Number value can be set on the command line with the -apdfopentopage
option, in the PdfOpenToPage setting in the [PDFPrep] section of the Print Agent configuration
file, jfmerge.ini, or in the data stream via the SYS dictionary.
111
To set the Initial Page Number in the Sys directory, use the format:
^define sys:pdfOpenToPage number
where sys is the dictionary name and pdfOpenToPage is the option name. number is the
page number to open. You require a : colon separator between the dictionary name and the
variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
To specify the magnification level the PDF document will display at when opened, start Print
Agent with the -apdfzoom option.
With -apdfzoomfitpage, the entire PDF page is displayed in the Acrobat/Reader window.
With -apdfzoomfitwidth, an area equivalent to the width of the PDF page is displayed in the
Acrobat/Reader window.
With -apdfzoomfitvisible, all text and graphics visible on the page fit the width of the
Acrobat/Reader window.
With -apdfzoomdefault, the PDF page is displayed according to the default Page Display
Preferences on the individual users system.
The Initial Page Magnification value can be set on the command line with the -apdfzoom
option, in the PdfZoom setting in the [PDFPrep] section of the Print Agent configuration file,
jfmerge.ini, or in the data stream via the SYS dictionary.
To set the Initial Page Magnification value in the Sys directory, use the format:
^define sys:pdfZoom value
where sys is the dictionary name and pdfZoom is the option name. value is the value to be
assigned to pdfZoom and can be one of FitPage, FitWidth, FitVisible, or Default.
You require a : colon separator between the dictionary name and the variable name.
For information about the Sys dictionary, see Sys Dictionary on page 62.
112
To use picture formatting, start Print Agent with the -apfon option. This is the default. Print
Agent formats the data for each field according to the picture clause, if any, assigned to the field
by the template designer. If the data does not match the picture formatting, Print Agent places
the data in the field without regard to the picture formatting, and displays an error message in
the log file.
To ignore field picture formatting, start Print Agent with the -apfoff option.
You can also assign picture clauses to a field using the \pic command (see page 242). The -apf
option does not affect the \pic command.
To print only a subset of the pages in a job, start Print Agent with the -apg option. list
consists of up to twenty (20) comma-separated page number ranges. Each page number range
consists of a single number or a pair of numbers separated by a slash.
For example:
-apg7
113
You may specify large page numbers with the -apg option, for example, -apg3/9999. It is NOT
an error if there is not enough data to reach page 9999. In fact, this is the recommended way to
specify that you want to print everything after a certain page.
At the end of the job, Print Agent prints a message in its log file, indicating the number of
surfaces printed. This message takes into account the effect of the -apg option. For example, if
the -apg option causes only one page to print, then the message says that only one surface
printed.
The -apg option has no effect whatsoever on downloading of macros to the printer.
Downloading and printing are separate activities.
To restrict output to either a printer or fax presentment target, start Print Agent with the -apm
option.
With the -apmprint option, Print Agent directs the output to a printer presentment target. If the
transaction file contains a ^fax command (see page 184) or if the command line contains faxing
parameters, Print Agent terminates the job and writes an error message to the log file.
With the -apmfax option, Print Agent directs the output to a fax presentment target. If there is
no faxing information, either in the transaction file with a ^fax command or on the command line
with faxing parameters, Print Agent terminates the job and writes an error message to the log
file.
The -apmboth option is the default. With this option Print Agent uses the contents of the
transaction file to decide whether to direct the output to a printer or fax presentment target.
When the transaction file contains a ^fax command or when the command line contains faxing
parameters, Print Agent directs the output to a fax presentment target. Otherwise, the output is
directed to a printer presentment target.
Note: The -apm option considers the PDF presentment target to be a printer presentment
target.
114
To insert a preamble file into the data stream before the transaction file, start Print Agent with
the -apr option. preamblefile is the preamble file name. The preamble file is an optional file
of commands or data that Print Agent reads before the contents of the data stream.
Note: When you create a preamble file, the last line in the file must be terminated with
<CR/LF> (newline). When the last line is not terminated properly, Print Agent interprets
the first line of the data stream as a continuation of the last line of the preamble file.
UP
TE
DA
Format
-aqrcodeeolcharacters
To specify the character or characters to use for the QR Code barcode end of line (EOL)
condition, start Print Agent with the -aqrcodeeol option.
For example, with -aqrcodeeol\010, the end of line character is the ASCII LineFeed character.
This is the default.
The default value of \010 (ASCII LineFeed) is controlled by the QRCODEEOL setting in the
[Special] section of the Print Agent configuration file, jfmerge.ini.
You can specify a character value with the -aqrcodeeol option, in lieu of the actual character.
This is useful in cases where the character you require is not a standard keyboard character.
For details, see the Appendix Numeric Character Values on page 319.
Note: QR Code barcodes are supported on PCL, PS, PDF, Zebra, TEC, Intemec and
Windows presentment targets.
To control the handling of special characters encountered in field names, start Print Agent with
the -arcyes option. When Print Agent encounters the special characters - (dash - ASCII 0x2D)
and . (period - ASCII 0x2E) in either ^field or ^global commands, it replaces these characters
with the _ (underscore - ASCII 0x5F) character. This is the default.
115
as
^field e_mail_com
To suppress the replacement of special characters, start Print Agent with the -arcno option.
To control the handling of newline characters encountered in global field data, start Print Agent
with the -arg option.
With -argon, for global field data, Print Agent both handles newline characters and word wraps
the data in accordance with the current reformatting option.
With -argoff, the default, Print Agent:
Preserves all newline characters in global field data, regardless of the current reformatting
option.
Word wraps the data, in accordance with the current reformatting option.
For the reformatting options, see -r (Reformat Data) on page 139 and ^reformat (Reformat
Data) on page 220.
When Print Agent completes a task, it creates a response file to record an exit status. By
default, the name of the response file that Print Agent creates is jetform.rsp and it is created in
the same location as the Print Agent executable, by default ...\Adobe\Central\Bin\.
To change the default name and/or the default location of the response file, start Print Agent
with the -arxfilename option. For example:
-arxc:\temp\myrsp.txt
116
Caution: The use of the -arx option is only supported when running Print Agent as a
standalone executable. When running Print Agent under Central, the default name
and location of the response file must be maintained, as this is the information that
Central looks for.
To skip characters at the start of the transaction file, start Print Agent with the -asc option. nn
is the number of characters to skip. This option does not apply to the preamble file.
When the command line includes both the -asc and -asl options, Print Agent processes the -asl
option first, then the -asc option.
To pass a print job requiring a password to a PostScript Level 2 printer, start Print Agent with the
-asj option. password is the password set for the printer. The default is 0 (zero).
Note: When downloading a macro (see page 135) to a PostScript Level 2 printer and a
password is set on the printer, you must provide the password in order to store the
macro.
To skip lines at the start of the transaction file, start Print Agent with the -asl option. nn is the
number of lines to skip. This option does not apply to the preamble file.
117
Central uses this option to tell Print Agent to skip the ^job command in the transaction file. This
option is also useful when there are extraneous lines at the beginning of the transaction file.
Even if the lines are blank, they can cause data to be positioned incorrectly on the template. To
prevent this, start Print Agent with the -asl option. For example:
jfmerge formname datafile -aiijfmerge.ini -asl5
causes Print Agent to skip the ^job command and four additional extraneous lines.
When the command line includes both the -asc and -asl options, Print Agent processes the -asl
option first, then the -asc option.
To specify a particular presentment target to use when printing a template, start Print Agent with
the -asp option. The presentment target must be compiled into the template. Output Designer
5.2 or later provides the ability to compile a template with multiple presentment targets.
Target is the ICS file name, which is the name in [ ] (square brackets) following the Print
Agent presentment target name in the Presentment Target Selection dialog in Output Designer.
To access the Presentment Target Selection dialog, in Output Designer, click File >
Presentment Targets.
For example:
-aspHPLJ5
To select a symbol set or a Unicode transformation format, start Print Agent with the -ass
option. Unicode transformation formats are Unicode 2 based.
118
nn is a set number from the table below, which details the defined symbol sets and Unicode
transformation format. Note that Thai, Hebrew, and Arabic code pages / languages are listed for
documentation completeness; however, the use of Thai, Hebrew, and Arabic with Output
Designer and Central is neither certified nor supported by Adobe.
Set
Description
Roman-8 extended
Dec Supplemental
10
Shift-Jis
20
KSC5601-87
30
Big-Five
35
GB2312-80
36
GBK
37
40
EBCDIC
42
EBCDIC
50
Thai
60
Windows Latin 2
61
Russian
63
Greek
64
Turkish
65
Hebrew
66
Arabic
67
Baltic
86
Russian (DOS)
108
UNICODE_UTF8
For example, to select the GBK symbol set, start Print Agent with this command:
jfmerge -aiijfmerge.ini -ass36
Print Agent attempts to translate the input data symbol set to the symbol set expected by the
printer. Symbol set translations and Unicode format translations can be redefined using the
jetkeys.ini file (see page 304).
119
Note: When processing a JFPREAMBLE document variable, Print Agent will apply the symbol
set identified with the -ass option. If this is not appropriate, specify the symbol set with
the ^symbolset command (see page 222), instead of with the -ass option. In this
manner, the symbol set will be altered after processing of the JFPREAMBLE.
To direct all messages from ^trace (see page 227) or \trace (see page 280) commands into a
separate file, start Print Agent with the -atf option. filename is the name of the file to which
the messages are written.
jfmerge poform poform.dat -atfmytrace.txt
Be default, before a message is written to the trace file, the file is truncated to zero-length.
When filename is prefixed with a + (plus sign), new messages are appended to the file.
jfmerge poform poform.dat -atf+mytrace.txt
The trace facility is most commonly used for debugging. However it can also be used to
generate data files for subsequent processing. For example, a data stream contains data for
multiple invoices. The invoice template uses intelligent pagination so that each invoice grows to
as many pages as required. Print Agent is required to print the message Page n of m at the
bottom of every page of each invoice. This requires two passes over the data stream because
Print Agent cannot know how many pages will be in each invoice until it reaches the end of that
invoice. If there was only one invoice in the print stream, the job could be handled using the
NumberPages variable (see page 121). However, since there are many invoices in the data
stream, a different approach is required.
During the first pass of the data stream, \trace commands cause Print Agent to generate a file
filled with ^define commands. Each command sets a variable to the number of pages in the
corresponding invoice. Print Agent starts the second pass by reading and executing all the
^define commands in the trace file. It is then a simple matter to fill in the Page n of m fields on
each page.
Note: In order to depict the data on the page in the examples that follow, some lines are
broken to fit the space.
The first pass is invoked with its output directed to the null device. On Windows, using the
Windows printer drivers, the command line is:
jfmerge ponofm ponofm.dat -aprpass1.pre -atfpass1.dat
-zqueue1/File=NUL:
120
The group G_Totals corresponds to the subform Totals, which is the last subform laid
down for each invoice.
The page count ($page) is reset to one to prepare for the next invoice.
The resulting pass1.dat file, the output of the first pass, contains:
^define
^define
^define
^define
.
.
.
... and
pagecount0
pagecount1
pagecount2
pagecount3
3
7
3
1
so on
Reads the file created in the first pass (pass1.dat), thereby loading all the invoice page
counts into an array of variables called pagecount1, pagecount2, and so on.
Sets up a group !OnEntry event that is triggered each time a new invoice starts. As before,
docnum is used to count invoices. The event handler fills the global field numpages with
the number of pages for the current invoice. It also resets the page number ($page) to one
for the current invoice.
121
NumberPages Variable
The NumberPages variabale is used to place page numbers, in the Page n of m format, on
each page of a print run. All pages in the output are numbered sequentially, from the first to the
last. This works well if your output contains only one document. However, if your output
contains multiple documents, with each document to be numbered separately, use the -atf
option (see page 119) to achieve the Page n of m result.
When you receive your Central software, the Job Management Database contains the Job
Table entries EXOVST and EXOVDYN. Central uses these entries when you run the Field
Overflow in Multiline Fields sample (see page 15). Both EXOVST and EXOVDYN contain two
job steps, the first step invoking the task PGCNTGET and the second step invoking the task
PGCNTSET.
The PGCNTGET task calls Print Agent to pass the value of the NumberPages variable to
Central. The value is the number of surfaces to be printed, which Print Agent determines by
running the job. However, Print Agent does not print the job at this time; the output is directed to
the null device.
Note: Printing to a null device, as defined in the PGCNTGET task, is only supported for Print
Agent presentment targets. To use the PGCNTGET task and print via a Windows printer
driver, change the printer parameter Program option from -zNUL: to
-zqueuename/File=NUL:.
The PGCNTSET task again calls Print Agent. Central passes the command line option
-advglobal:pagecount=@NumberPages to Print Agent, substituting the value of the
NumberPages variable from the previous job step for the @NumberPages variable. The value
is placed in the Global dictionary, for further processing by Print Agent.
For example, the Field Overflow with a Dynamic Template memorandum prints a total of four
pages. Therefore, when Central calls Print Agent with the PGCNTSET task, it passes Print
Agent the command line option -advglobal:pagecount=4. Print Agent places this value in the
Global dictionary and retrieves it when it encounters the field PAGECOUNT on the
memorandum.
To print from a specific input paper tray, start Print Agent with the -ati option.
traynum is the input tray number. By default, if the template is compiled with version 5.3 or
later of Output Designer, traynum is a Print Agent universal input tray number. This is a
printer-independent identifier. Print Agent translates the Print Agent input tray number into the
number assigned to the printer tray by the printer manufacturer. For example, for HP LaserJet
printers, the multi-purpose tray is physically labelled 1, but to select this tray it is necessary to
122
command the printer to select tray 8 in PCL 5 or tray 3 in PostScript. To select the tray
labelled 1, regardless of whether the template is compiled for PCL 5 or PostScript, use this
option:
jfmerge formfile datafile -aiijfmerge.ini -ati1
Refer to the documentation provided with your printer for the manufacturers tray numbering.
Print Agent understands the following Print Agent tray numbers:
Print Agent Tray Number Manufacturer Printer Tray
0
HP tray 2
HP tray 3
Envelope tray
Auto select
Manual feed
20 through 59
Large capacity trays 1 through 40. For example, Print Agent tray
23 is large capacity tray 4.
100
Middle tray
101
Tractor feed
102
103
PostScript tray 1 through 20. For example, Print Agent tray 217 is
PostScript tray 17.
External trays 1 through 20. For example, Print Agent tray 311 is
external tray 11.
401
Upper tray
402
Lower tray
403
404
Multi-purpose tray
405
Label stock
123
traynum may specify a tray that is not available on the printer. When this happens, Print Agent
selects the next-best tray. The template (compiled with version 5.3 or later of Output Designer)
contains a prioritized list of alternate input trays. For Print Agent presentment targets, the
template also tells Print Agent what input trays are available. For Windows printer drivers, Print
Agent queries the Windows driver to obtain the list of available input trays.
Print Agent checks whether the printer has a small-format input tray available. Finding it is not
available, it looks up the list of alternate input trays in the template. Suppose the list contains, in
order, 401, 402, 20, and 0. This causes Print Agent to try, in turn, the upper tray (401), the lower
tray (402), and the large capacity tray (20). If none of these are available, it falls back to the
current tray (0), that is, it does not issue an input tray selection command to the printer.
The template designer can change the list of alternate trays. The template designer can also
compile the template with a setting that causes Print Agent to treat input tray numbers as printer
tray numbers, that is, pass them through unaltered to the printer. You can override both the
default behavior and the template designers setting using the -atj command line option (see
page 124).
When printing from an older (pre-5.3) template, Print Agent always interprets traynum as a
printer tray number. To change this behavior, you must recompile the template with version 5.3
or later of Output Designer.
Note:
When the template is compiled for a PCL presentment target and the requested tray
contains paper of the size compiled into the template, that input tray will be selected.
However, if the requested tray does not contain paper of the correct size, the printer
will attempt to print from a tray containing paper that matches.
When the template is compiled for a PostScript presentment target, the printer will
attempt to print from the tray referenced in the -ati option.
Regardless of the presentment target, when the manual feed tray contains paper, the
printer will attempt to print from the manual feed tray.
ptrstring is the printer command string for the input paper tray, as set by the printer
manufacturer. It must be preceded by an * (asterisk). It is not interpreted by Print Agent, but
sent directly to the printer. It may not contain newline characters or other characters that are
special to Print Agent. For example, to select a paper tray designated by the printer
manufacturer with a printer command string of 6 setpapertray, use this command:
jfmerge formfile datafile -aiijfmerge.ini -ati"*6 setpapertray"
Windows printer drivers do not support the use of *ptrstring with the -ati option.
124
encoded-ptrstring is the printer command string, but potentially with some or all characters
encoded, as described in the Appendix Numeric Character Values on page 319. It must be
preceded by a + (plus). For example, to select a paper tray designated by the printer
manufacturer with a printer command string of <Esc> (the escape character) followed by
&l4H, use this command:
jfmerge formfile datafile -aiijfmerge.ini -ati"+\027&l4H"
Windows printer drivers do not support the use of +encoded-ptrstring with the -ati option.
To control the interpretation of input tray numbers, start Print Agent with the -atj option.
When printing from a template compiled with version 5.3 or later of Output Designer, Print
Agent by default interprets tray numbers as Print Agent universal tray numbers, rather than
printer-specific tray numbers. Use -atjoff to override this default behavior. The template
designer can also set an option at compile time to tell Print Agent to interpret tray numbers as
printer tray numbers. Use -atjon to override the compile-time option, causing Print Agent to
interpret tray numbers as Print Agent tray numbers.
When printing from a template compiled for a pre-5.3 version of Output Designer, Print Agent
ignores the -atj option and interprets tray numbers as printer tray numbers.
For selecting input paper trays, see -ati (Input Tray) on page 121 and ^trayin (Input Tray) on
page 227.
To direct the printed output to a specific output paper tray, start Print Agent with the -ato option.
traynum is the number of the output tray, as set by the printer manufacturer. For example, to
select an output paper tray designated by the manufacturer as tray 4, use the following
command:
jfmerge formfile datafile -aiijfmerge.ini -ato4
125
ptrstring is the printer command string for the output paper tray, as set by the printer
manufacturer. It must be preceded by an * (asterisk). It is not interpreted by Print Agent, but
sent directly to the printer. It may not contain newline characters or other characters that are
special to Print Agent. For example, to select a paper tray designated by the printer
manufacturer with a printer command string of 4 setpagedevice, use this command:
jfmerge formfile datafile -aiijfmerge.ini -ato"*4 setpagedevice"
encoded-ptrstring is the printer command string, but potentially with some or all characters
encoded, as described in the Appendix Numeric Character Values on page 319. It must be
preceded by a + (plus). For example, to select a paper tray designated by the printer
manufacturer with a printer command string of <Esc> (the escape character) followed by
&l4G, use this command:
jfmerge formfile datafile -aiijfmerge.ini -ato4"+\027&l4G"
Refer to the documentation provided with your printer for the manufacturers tray numbering
and command strings.
The -ato option is not supported for Windows printer drivers.
To specify the name of the translation file for redefining symbol sets, start Print Agent with the
-att option. When you do not specify filename, the default is jetkeys.ini.
Format
N
EW
-auspsimbifscharacters
To specify the character to use for the USPS Intelligent Mail Barcode input field separator, start
Print Agent with the -auspsimbifs option. For example, to specify the | (pipe symbol) as the
input field separator, use the option -auspsimbifs|.
By default, the separator is newline. However, newline and the input field separator specified
with the -auspsimbifs option can be intermixed within a field.
The corresponding configuration file option for -auspsimbifs is USPSIMBIFS in the [Special]
section of the Print Agent configuration file, jfmerge.ini.
126
You can specify a character value with the -auspsimbifs option, in lieu of the actual character.
This is useful in cases where the character you require is not a standard keyboard character.
For details, see the Appendix .Numeric Character Values on page 319
Note: USPS Intelligent Mail Barcodes are supported on PCL, PS, PDF, and Windows
presentment targets.
To convert all incoming data to the Unicode format UTF-8 before processing occurs, start Print
Agent with the -autf8on option. This is the default. With -autf8on, Print Agent resolves any
symbol set issues related to combining data from various sources, such as data for global fields
and data for variables. Mixing symbol sets is not a problem.
With -autf8off, use caution when mixing symbol sets. Print Agent does not keep track of the
symbol set that was in use when a global field was filled. It applies the current symbol set at the
moment it prints the field. Similarly, when substituting a variable, it applies the current symbol
set to the content of the variable. It is up to the user to ensure that the symbol set used when
the data was defined matches the symbol set when the data is used.
Caution: When a file name is referenced inside the data file (for example with ^graph or
^file) and that file name contains extended characters (that is, characters above
ASCII 128), Print Agent will not process the file name correctly with -autf8on.
The -autfss option affects how Print Agent determines which font symbol set to use in printing
characters. Starting Print Agent with the -autfsson option will cause Print Agent to
automatically switch fonts, as described below, in order to print all characters in the data
stream. This is the default. To revert to the previous behavior, start Print Agent with the
-autfssoff option.
Versions of Print Agent previous to 5.4 always converted the data from the incoming data
symbol set, which was specified by the ^symbolset command (see page 222) in a data stream,
to the font symbol set of the field that the data was being merged into. For PCL and PostScript
printers, the default behavior was to convert the data from PC-850 to Roman-8, regardless of
127
whether the characters in the data symbol set existed in the font symbol set. No matter what
symbol set the data being supplied to Print Agent was in, the output was restricted to the
characters in the font symbol set as specified in the template.
With Print Agent version 5.4 and later, the same procedure will happen if the characters in the
data symbol set are printable in the current field font symbol set. If a character is not printable in
the current font symbol set, the font symbol set will be changed to one that is capable of printing
a particular character. If there is no symbol set in the current font capable of printing a specific
character, Print Agent will switch fonts to a font that is capable of printing the character. For
example, if the font symbol set of a field is Windows Latin1 but the data in the incoming data file
contains Windows Latin2 characters that do not exist in Windows Latin1, Print Agent will switch
to using a Windows Latin2 font to print the characters, assuming there is a Windows Latin2 font
available in the template.
Print Agent will examine all fonts defined for the printer in an attempt to output all the characters
defined in the data. In the unlikely event that a character cannot be printed, Print Agent will log
a message to its log file, by default jfserver.log.
The automatic font symbol set switching capability applies to all presentment targets for both
single and double-byte fonts, regardless of whether or not the font is downloadable or
printer-resident.
For templates compiled for Windows drivers, start Print Agent with the -auwp option to control
how font text is sent to the printer. With -auwpon, Print Agent will convert all data to Unicode
before sending it to the printer. There is useful in cases where it is required to print a character
that is not included in one of Central supported symbol sets.
For example, to print the French Franc character (Unicode U+20A3), which does not exist in
any of the symbol sets supported by Print Agent or by most printers, start Print Agent with the
-auwpon option. Print Agent will convert the UTF8 character to the correct Unicode character
and send it to the printer.
Caution: Using the -auwpon option may degrade performance, especially if using large fonts.
To send data to the printer without converting it to Unicode, start Print Agent with the -auwpoff
option. This is the default.
128
Note: The -auwp command line option is not identical to the -autfss command line option.
When using the -auwp option, Print Agent will not switch fonts to print a character. For
example, if your current font is Arial and you have Korean data in your data file, with the
-auwp option Print Agent will just print blank characters. However, with the same
scenario and the -autfss option, Print Agent will switch to a Korean font to print the data.
The -avl option affects leading, or the distance between printed lines of text. When the font size
for a field changes from the default font, the leading may need to change accordingly.
For another method of setting leading, see the "[fixed| variable|fixed variable]" arguments of the
^inline command on page 200.
The arguments for -avl are:
f (Fixed Leading)
The -avlf option, or fixed leading, is the default. Print Agent processes all text using the line
spacing from the field definition, as provided by the template designer, regardless of the font
size used.
v (Variable Leading)
The -avlv option, or variable leading, adjusts all line spacing based on the largest font within a
line of text. If the largest font used is still smaller than the default font for the field, the line
spacing is adjusted accordingly.
129
To specify a volume number for a printer that has more than one hard disk, start Print Agent
with the -avnh option. This option is necessary when formatting the hard disk, downloading
macros to it, and using macros stored on it. It does not affect macros stored in ordinary RAM.
n is the volume number. The default volume number is zero. The range for the volume number
is zero through nine, inclusive. You may specify both -avnh and -avnr (see page 129) on the
same command line; Print Agent uses whichever (if either) is appropriate to the job.
To specify a volume number for a printer that has nonvolatile (flash) memory, start Print Agent
with the -avnr option. This option is necessary when formatting the nonvolatile memory,
downloading macros to it, and using macros stored on it. It does not affect macros stored in
ordinary RAM.
n is the volume number. The default volume number is zero. The range for the volume number
is zero through nine, inclusive. You may specify both -avnh (see page 129) and -avnr on the
same command line; Print Agent uses whichever (if either) is appropriate to the job.
The TEC label printer is a special case, but only when reformatting its nonvolatile memory. (See
-afmf (Format Nonvolatile Memory) on page 82.) In this case -avnr specifies an area of the
memory card to reformat: two means the PC save area, three means the writable character
area, and all other values of zero through nine mean the whole card.
By default, Print Agent performs variable substitution, but in rare cases this may be
undesirable. You may enable variable substitution by starting Print Agent with the -avson
option. Otherwise, start Print Agent with the -avsoff option.
For another method of setting variable substitution, see the [novarsub|varsub] arguments of
the ^inline command on page 200.
For the substitution variables, see page 281.
130
UP
TE
DA
Format
-axml{yes|no|strict|medium|lax}
To control the automatic detection of XML format in the main data file, start Print Agent with the
-axml option.
With -axmlyes, Print Agent treats the file as XML format.
With -axmlno, Print Agent treats the file as field-nominated format.
With -axmlstrict, Print Agent treats the file as XML format if and only if the first five bytes after
the byte-order mark are <?xml, where the letters x, m, and l are case-insensitive. The
byte-order mark is optional and is a feature of UTF-8 encoding.
With -axmlmedium, Print Agent treats the file as XML format if and only if it contains at least
one instance of <? in the first 32 bytes and there is nothing before the <? other than white
space and/or a UTF-8 byte order mark. This still cannot guarantee recognition of all valid XML,
because it is not mandatory for XML to start with a processing directive, but it does detect the
great majority of conventionally formatted XML files without too much risk of false positives.
This option is useful if your XML data file starts with an XML job card but does not include an
<?xml...?> processing instruction.
With -axmllax, Print Agent treats the file as XML format if and only if it contains at least one <
character in the first 32 bytes and there is nothing before the < other than white space and/or
a UTF-8 byte order mark. This detects all valid XML. However it is vulnerable to false positives.
It is safe only if all of the field-nominated data files are known to start with ^ or job. This
option is useful when running Print Agent directly from the command line with XML data files
that do not contain job cards.
The default behavior for this option is -axmlstrict, which reproduces the behavior of Print Agent
5.5 and earlier. The -axml option is silently ignored if the value is null or is a value other than
those listed above.
Note: The -axml is silently ignored if -d (use comma-delimited format) is specified. In other
words, Print Agent has to be in field-nominated mode to process XML data files.
XML detection, and all processing of XML data files, ignores the -asl (skip lines) and
-asc (skip characters) options.
There is an option called ProcessAsXML in the [Options] section of the Print Agent
configuration file, jfmerge.ini. This option takes the same values as the -axml command line
option, but ProcessAsXML sets the default behavior for all data files, not only for the main data
file. Hence ProcessAsXML sets the default behavior for the main data file, for the preamble file
if there is one, and for any files opened using the ^file command. For the main data file the
131
command line option, if supplied, overrides the corresponding configuration file option.
However if the command line option has the value of the null string (that is, if it is supplied as
-axml), it is considered not to have been supplied.
The ^file command has an option similar to the -axml command line option. This makes it
possible to override the default XML recognition rule for files included this way. For details
about including the axml option in a ^file command, see ^file (Include File in Data) on
page 189.
The -axml option does not affect the processing of a preamble file specified with the -apr
command line option or with the PreambleFile option in jfmerge.ini. Preamble files are always
processed using the default XML recognition rule specified by the ProcessAsXML option in
jfmerge.ini.
To process a JFPREAMBLE document variable associated with a ^form command, start Print
Agent with the -axpfon option. This is the default. This option is another means of associating
preamble information with the transaction.
For templates created with Output Designer, the template designer creates a document
variable, with a Custom name of JFPREAMBLE. Its associated Custom value can include any
commands or data. When Print Agent encounters a ^form command with the option -axpfon, it
looks in the template for the JFPREAMBLE document variable. It stores the document variable
and its value in the DocVar Dictionary (see page 58). Print Agent then processes the dictionary
entry as data. When it finishes, Print Agent resumes processing with the line after the ^form
command.
When you specify the -axpfon option on the command line, processing applies to all ^form
commands, not just the first. To have the -axpfon option apply to only one ^form command,
include it with the command, instead of on the command line. To ignore the JFPREAMBLE
document variable, start Print Agent with the -axpfoff option.
To process a JFPREAMBLE document variable at start-up, start Print Agent with the -axpson
option. This is the default. This option is another means of associating preamble information
with the transaction.
132
For templates created with Output Designer, the template designer creates a document
variable, with a Custom name of JFPREAMBLE. Its associated Custom value can include any
commands or data. When Print Agent encounters the -axpson option on the command line, it
immediately opens the template and retrieves the JFPREAMBLE document variable. It stores
the document variable and its value in the DocVar Dictionary (see page 58). Print Agent then
processes the dictionary entry as data. When it finishes, Print Agent resumes processing with
the first line of the data stream.
Note: When you use the -axpson option, you must supply the template name on the
command line. When you include the template name in the transaction file with a ^form
command, use the -axpf option to process a JFPREAMBLE document variable.
When you start Print Agent with both the -axpson and the -aprpreamblefile options, Print
Agent processes the -axpson option first. To ignore the JFPREAMBLE document variable, start
Print Agent with the -axpsoff option.
133
To change the hex indicator character used with a Zebra printer, start Print Agent with the -azc
option. When printing to a Zebra printer, the hex indicator character must not occur in the input
data stream.
The default value at installation is set to _ (underscore). This value is controlled by the
ZebraHexControlChar setting in the [Options] section of the Print Agent configuration file,
jfmerge.ini.
-c (Number of Copies)
Format
-cnn
To specify the number of printed copies of a template, start Print Agent with the -c option. nn is
the number of copies, which must be an integer. The maximum number of copies is 99,999,999,
subject to the limitations of your printer. Refer to your printer documentation for limitations on
the maximum number of copies you can print.
For example, to merge the data in the file costs.dat with the template report.mdf and print five
copies, type this command:
jfmerge report.mdf costs.dat -aiijfmerge.ini -c5
Print Agent does not collate the output. For example, if report.mdf is a two page template and
Print Agent prints five copies, you receive five copies of page 1 and then five copies of page 2.
When you do not specify a number of copies, Print Agent prints the number of copies compiled
in the template in Output Designer.
This option is supported only for Print Agent presentment targets and only for printed copies.
To override any template name entered earlier on the command line, start Print Agent with the
-f option.
mdfname is the template name. It may be any of a fully qualified file name, a fully qualified URL
beginning with http:, or a file or resource name without a path. If mdfname is not fully
qualified, Print Agent will attempt to open it as a file in the current directory. If this attempt fails
and the -afp template path option (see page 82) has been supplied, Print Agent will try again
using the template path.
134
mdfname may also be a place holder when a ^form command (see page 191) occurs early in
the data stream.
To change the initial value of the record length of a physical line in the data stream, start Print
Agent with the -i option. n is the record length initial value, and can be any number up to and
including the maximum positive value for an integer on the platform. For most machines, this is
2 to the power of 31.
The default record length initial value is 6144 bytes. The record length upper limit is 19996
bytes.
For example, to change the initial value of the record length for the file costs.dat to 8600 bytes,
type this command to merge the data in costs.dat with the template:
jfmerge report.mdf costs.dat -aiijfmerge.ini -i8600
-j (Suppress Banner)
Format
-j
When you start Print Agent on text-oriented platforms, a banner displays the version of Print
Agent you are running. When you do not wish to see this banner, start Print Agent with the -j
option.
For example, to merge the data in costs.dat with the template report.mdf without displaying
the banner, type this command:
jfmerge report.mdf costs.dat -aiijfmerge.ini -j
135
To specify that the template may already be downloaded as a macro in the printer, start Print
Agent with the -l option. Note that this is the letter el, not the number one. Print Agent
merges the data with the template in the macro number specified by the -m option. This allows
for much faster printing, as Print Agent does not send the template to the printer at the
beginning of the print job.
For example, to merge the data in the file costs.dat with a template named prices.mdf stored
as permanent macro number 12, type this command:
jfmerge prices.mdf costs.dat -aiijfmerge.ini -l -m12p
You must download the macro before you can print using the -l option. Use the -m option
described below to download the template to the printer. Using the -l option affects all templates
in the data stream. You must download all referenced templates to the printer as macros.
Download a template to the printer with a macro number different from the macro number
assigned when the template was compiled.
nn is the number of the macro. It can have a maximum of five digits and be between 0 and
32767. To download a template to the printer as a specific macro number, replace nn with the
desired number. When you do not enter a value for nn, or when you enter a value of -1, the
macro number defaults to the number compiled into the template in Output Designer. This is the
default.
When you want to store a template as a permanent macro, you must use a macro number
greater than one. If you do not supply a macro type, a macro number of one is taken as a
temporary macro, and a macro number greater than one is taken as a permanent macro. A
macro number less than -1 tells Print Agent not to use macros at all, for any printer type.
For example, to download a template named lease.mdf to the printer as macro number 132,
type this command:
jfmerge lease.mdf -aiijfmerge.ini -m132
The -m option also prints a blank template. To download the template without printing a copy,
include the -q option (see page 139).
jfmerge lease.mdf -aiijfmerge.ini -m132 -q
136
To print a template that is already downloaded to the printer as a macro, specify the macro
number, append the p (Permanent) argument, and include the -l option (see page 134).
jfmerge lease.mdf -aiijfmerge.ini -m132p -l
When the template is a multipage template, Print Agent downloads the template into
consecutive macro numbers. For example, when you download a six-page template named
lease.mdf as macro number 14:
jfmerge lease.mdf -aiijfmerge.ini -m14
page 1 of the template is macro 14, page 2 is macro 15, and so on. This overwrites any macros
with these macro numbers. When you download a multipage template as macro 1 or as a
temporary macro, Print Agent clears all pages of the template from the printer memory when
printing finishes.
Your printer memory capacity determines the maximum number of macros that can reside in
your printer at any time. Refer to your printer documentation for limitations on resident macros.
-m Arguments
The arguments for the -m option tell Print Agent how and where to store printer macros. Print
Agent maintains this information for some types of macros in a Macro Status Table file for each
printer.
If the printer is powered off, all downloaded templates are lost, leaving the Macro Status Table
out of sync. You can download the permanent template macros to one or more printers and
re-synchronize the Macro Status Table files for each printer by choosing the Printer Reload
command from the Control menu in Central Control.
For the Printer Reload command, see the guide, Central Control.
137
This table describes how Print Agent interprets the -m option, with the inclusion of its
arguments, and with and without the inclusion of the -l option. It also lists the supported printers
for each argument.
-m Argument
Without -l option
With -l option
p (Permanent)
The inclusion or not of the -l option does not affect the downloading of
temporary macros.
For PCL 5, PCL 6, PostScript Level 2, and some label printers, downloads
the macro to the printer as a temporary macro.
For PCL 5 and PCL 6 printers, the macro is deleted at the end of the print
job. For PostScript Level 2 and label printers, the macro remains in the
printer until replaced by another macro with the same number, or until the
printer is manually reset.
This macro type is supported for PCL 5 and some label printers.
r (Nonvolatile
Memory Macro)
-m Argument
Without -l option
138
With -l option
This macro type is supported for some PCL 5 and some label printers.
Print Agent does not print the template at the same time it is downloading it
into nonvolatile memory.
Note: Once the macro is downloaded to nonvolatile memory, it can be
invoked as a permanent macro with the p argument; the printer
searches both RAM and nonvolatile memory for the macro. This
can be convenient if you have some printers with nonvolatile
memory, and some without.
h (Macro in Hard
Disk Drive)
To specify the Intelligent Pagination event trace level, start Print Agent with the -n option. nn
can be any number within the range 0 to 100. When you do not enter a value for nn, the value
is set to 0. The default is 100. Print Agent sends the output to the log file
The possible values for the -n option are:.
Value
Description
Between 0 and 39
Returns all event trace messages, including the macro content of all
event macros found. In addition, each line of the data stream is
echoed to the log file.
Between 40 and 49
Returns all event trace messages, with the exception of the macro
content and the contents of the data stream.
139
-p (Printer Offset)
Format
-p[c|m|i]x,y
To offset the data on the page, start Print Agent with the -p option. Use c to indicate
centimeters as units of measure, m to indicate millimeters, or i to indicate inches. If you do
not specify a unit of measure, the default is inches.
x is the horizontal offset and y is the vertical offset. x and y may be decimals for offsets of
less than an even number of units. This enables you to arrange the data on a pre-printed
template correctly.
For example, to move the data to the right 5 inches and down 12.5 inches, start Print Agent with
this command:
jfmerge formname datafile -aiijfmerge.ini -pi5,12.5
When you want a vertical offset only, that is moved down 12.5 centimeters, start Print Agent
with this command:
jfmerge formname datafile -aiijfmerge.ini -pc0,12.5
-q (Quiet Download)
Format
-q
To download the template as a macro without printing it, start Print Agent with the -q option.
For example, to download a template named lease.mdf into the printer using the macro
number compiled into the template, use this command:
jfmerge lease.mdf -aiijfmerge.ini -q
Note: If you include the transaction file name with the command, Print Agent will print the
template and data.
-r (Reformat Data)
Format
-r{yes|no|fold|off|clip|trunc}
140
To control the handling of newline characters when processing multi-line fields, start Print Agent
with the -r option. The default is off.
You can achieve the same result by including the ^reformat command (see page 220) in the
data stream. However, the ^reformat command overrides the -r option on the command line.
Print Agent recognizes two newline characters in the data stream:
The ~ (tilde), which is the Print Agent alternate newline character to the <CR/LF> carriage
return/line feed sequence.
The examples that follow use the ~ alternate newline character, although the data stream
representations make it appear otherwise. In order to depict the data on the page, the lines
were broken to fit the space. Only the ~ character represents actual new lines.
The arguments for -r are:
yes
When -r is yes:
Print Agent discards all newline characters in the data with these exceptions:
When the first character in a line is a space, Print Agent keeps the newline character at
the end of the previous line and the space.
When two or more newline characters immediately follow each other, Print Agent keeps
them all.
Print Agent word wraps the data within the field boundaries.
When there is more data than a field can hold, Print Agent overflows the data to the next field
on the template, and the next, until the data finishes. When the fields on the template cannot
contain all the data, Print Agent overflows the data to the next page. When there is data
specifically designated for a field that receives overflow data, Print Agent overprints the first
data with the second.
141
This example shows how Print Agent handles data when the -r argument is yes:
This is the blank template showing the
position and size of fields.
142
This with
field
field_2.
data
theis
second.
new line characters in
data are discarded except
the exceptions in field_3
All
the
for
and
field_4.
This
field is field_3.
If the first character in a
line is a space, the Print
Agent keeps the new line
character at the end of the
previous
This
field
line
is and
field_4.
the space.
If two or more new line
characters immediately follow
each other, then the Print
143
no
When -r is no, in fill justified fields Print Agent:
Truncates the data at the end of the last word that fits in the field, when there is more data
than the field can hold.
Extends the data outside the left and right boundaries of the field, when there is more data
than the field can hold.
This example shows how Print Agent handles data when the argument for the -r option is no:
This is the blank template showing the
position and size of fields.
144
fold
When -r is fold, Print Agent:
When there is more data for a field than the field can hold:
For fields with a height of one line, overflows data outside the field boundaries.
For fields with a height of more than one line, truncates data at the end of the last word
that fits in the field.
145
This example shows how Print Agent handles data when the argument for the -r option is fold:
This is the blank template showing the
position and size of fields.
146
off
When -r is off, in fill justified fields Print Agent:
When the first character in a line is a space, Print Agent keeps the newline character at
the end of the previous line and the space.
When two or more newline characters immediately follow each other, Print Agent keeps
them all.
Truncates the data at the end of the last word that fits in the field, when there is more data
than the field can hold.
Extends the data outside the boundaries of the field, when there is more data than the field
can hold.
Does not keep vertical (top, middle and bottom) placement of the data, but begins printing
data at the top of the field.
147
This example shows how Print Agent handles data when the argument for the -r option is off:
This is the blank template showing the
position and size of fields.
148
clip
When -r is clip, Print Agent:
When the first character in a line is a space, keeps the newline character at the end of the
previous line and the space.
When two or more newline characters immediately follow each other, keeps them all.
Truncates the data at the end of the last word that fits in the field, when there is more data
than the field can hold.
149
This example shows how Print Agent handles data when the argument for the -r option is clip:
This is the blank template showing the
position and size of fields.
150
trunc
When -r is trunc, Print Agent:
Keeps vertical (top, middle, and bottom) and horizontal (left, right and center) placement of
data.
Truncates data at the end of the last character that fits in the field, when there is more data
than the field can hold.
151
This example shows how Print Agent handles data when the argument for the -r option is
trunc:
This is the blank template showing the
position and size of fields.
152
To override the starting page number for $PAGE fields, start Print Agent with the -s option. nn
is the starting page number. The default is 1.
For example, to set the starting page number to 17 for a template named estimate.mdf and
merge it with a transaction file named costs.dat, use this command:
jfmerge estimate.mdf costs.dat -aiijfmerge.ini -s17
$PAGE is an Output Designer special field name that is filled automatically at print time.
-v (Message Display)
Format
-v[nn]
153
As Print Agent processes a transaction file, it writes status and information messages to the log
file. It can also include trace messages in the log file, produced as a result of a ^trace (see
page 227) or \trace (see page 280) command in the data stream. To set the level of messages
written to the log file, start Print Agent with one of the -v options.
Option
Description
-v0
Writes all messages, including trace, informational, warning, error and severe
messages. This is the default.
-v10
-v20
-v30
-v40
Note: Trace messages, produced as a result of a ^trace or \trace command, can also be
directed to a file other than the log file. For details, see -atf (Trace File Name) on
page 119.
-z (Direct Output)
Format
-zxxx
- or -zdirpath,u[.ext]
- or -zqueue/q
- or -zport
- or -zqueuename
- or -z\\servername\queuename
- or -z"queuename/File=filename"
or -z"http://ip_address/ipp/q"
154
or -z$windows
To specify the output location, start Print Agent with the -z option.
Not all -z arguments are available for use with all supported platforms or with all presentment
targets. This table outlines the valid platforms and presentment targets for each.
-z Option
Platforms
Presentment Target
-zxxx
Print Agent
-zdirpath,u[.ext]
Print Agent
-zqueue/q
Print Agent
-zport
Print Agent
-zqueuename
Windows
-z\\servername\queuename
(with UNC queue name)
Windows
-z\\servername\queuename (with
UNC share name of the queue)
-z"queuename/File=filename"
Windows
-z"http://ip_address/ipp/q"
Print Agent
-z$windows
Windows
The default for the -z option is taken from the template (specified at compile time if the template
is created with Output Designer).
-zxxx
xxx specifies an output location, which can be a device or a disk file name.
For example, to merge a template named shop.mdf with a transaction file named needed.dat
and send the output to a file named output.prn in the current directory, start Print Agent with
this command:
jfmerge shop.mdf needed.dat -aiijfmerge.ini -zoutput.prn
The output file name can contain spaces. If it does, it must be enclosed in (quotation marks).
For example
jfmerge shop.mdf needed.dat -aiijfmerge.ini -z"My output.prn"
-zdirpath,u[.ext]
Use this argument with the -z option to direct output to a directory. This is used, in particular,
with fax packages that use a collector directory. The ,u argument allows for the creation of a
unique file name, to avoid overwriting a file which may be in the directory.
155
Note: For some fax packages, the use of the ,u argument is mandatory.
dirpath specifies the name of a directory in which to create a file, and ,u is a keyword
indicating that a unique file name is to be generated. The .ext is an optional argument to
specify an extension, when you require a specific extension. The default extension is .tmp,
except for certain fax packages such as TOPCALL, where it is .fx.
-zqueue/q
queue is the name of a queue and /q is a keyword indicating that you want to direct the
output to the queue. Use the /q argument when you want to use the operating system spooler
facility to print a job in a queue, rather than treating the queue as a file.
or ...
-z"http://172.16.5.83/ipp/q"
This option only works with templates compiled for Print Agent presentment targets.
-zport
port causes the output to print to the first printer attached to the named port.
For example,
-zlpt1:
prints to a local printer port using the first printer in the [devices] section that uses lpt1:. The :
(colon) is required; in the Job Management Database, ensure that the default printer includes a
colon after the lpt1.
-zqueuename
queuename causes the output to print to the first port attached to the named printer name.
For example,
-z"LaserJet 4L"
156
-z\\servername\queuename
\\servername\queuename prints to the device, specified using Universal Naming
Convention (UNC). queuename can be either the UNC queue name or the UNC share name
of the queue.
For example,
-z"\\central1\LaserJet 5si MX"
-zqueuename/File=filename
This format of the -z option tells Print Agent to save the output to a file rather than printing it.
queuename specifies the name of a queue. Print Agent will use the driver associated with the
queue to generate the output.
filename identifies the file where Print Agent will write the output.
generates output in the file moreoutput.prn using the driver associated with the queue,
HP LaserJet 4Si.
-z"http://ip_address/ipp/q"
"http://ip_address/ipp/q" prints directly to the device specified by the Internet Protocol
(IP) address ip_address.
157
For example:
-z"http://123.231.32.2/ipp/q"
-z"http://myprinter/ipp/q"
Caution: You may encounter difficulties when printing to an IP address, depending on the
speed of your communication link. Print Agent prints directly to the IP address; the
job is not placed in a queue. Therefore, Print Agent will not process a subsequent
job until the print job has been transmitted to the remote IP address.
-z$windows
Use this argument with the -z option to direct output to your default printer.
OutputFileName Parameter
Whenever Print Agent output is directed to a file or device, it automatically places the name of
the file or device into a Central substitution variable called @OutputFileName. This is
particularly useful in subsequent job steps, after Print Agent is invoked with the ,u argument.
For an example of this processing, see the job PREVIEW that ships with the Job Management
Database. This job consists of two steps, the first to invoke Print Agent to direct the output to a
temporary file, and the second to invoke Preview Agent to route the file to a users workstation
for previewing.
To direct Print Agent to read its command line options from a file, start Print Agent with the
@parmfile option. parmfile is a text file containing the options for starting Print Agent. When
you do not specify a path for the parameter file, Print Agent searches the current path.
Create the parameter file with any text editor that produces a plain text file. Separate the
options with spaces, or place the options on separate lines. When one of the options includes
(quotation marks), the entire option must be on one line.
You can place any command line options in the parameter file, including the names of the
template and transaction files.
158
For example, when a parameter file named input.txt contains these entries:
bank.mdf branch.dat -aiijfmerge.ini -c3 -s25
-agv"BRANCH=Ash Place"
Use the @parmfile option when your command line length exceeds the maximum command
line length set by the operating system. For example, in Microsoft Windows, the maximum
command line length is 120 characters.
XML OPTIONS
There are a number of options that determine the way in which Print Agent processes XML
data. These XML options use the same format as the Processing options (see page 65).
For a description of how XML data is translated, refer to the guide, Integrating XML with
Central.
You can choose any of the following XML options:
To specify the processing of attributes for data group elements, start Print Agent with the
-axattributes option.
With -axattributes=ignore, Print Agent ignores all attributes for data group elements. This is
the default.
With -axattributes=preserve, Print Agent maps all attributes for data group elements to data
values, resulting in ^field commands. It ignores all attributes for data values.
For example, in this XML data fragment, the element <book> represents a data group that has
the attribute status with a value of stocked:
<book status="stocked">
<ISBN>15536455</ISBN>
<title>Introduction to XML</title>
</book>
159
Print Agent omits the attribute status and the value stocked from the translation.
Using the -axattributes=preserve option results in:
^group G_book
^field status
stocked
^field ISBN
15536455
^field title
Introduction to XML
Print Agent translates the attribute status into a ^field command with a value of stocked.
You can change the default for this option by editing the Attributes=ignore setting in the
[XMLOptions] section of the Print Agent configuration file, jfmerge.ini.
To specify a stylesheet to use when processing data, start Print Agent with the -axaxsl option.
stylesheet_uri is the URI of the XSLT stylesheet.
By default, Print Agent does not apply an XSLT stylesheet. When you specify an XSLT
stylesheet, Print Agent calls an XSLT processor to translate the source XML data file into
another XML data file. Print Agent then processes the resulting XML data file.
For example, with -axaxsl=http://www.adobe.com/data/mystylesheet.xsl, Print Agent
applies the stylesheet mystylesheet.xsl.
160
Russian (ISO-8859-5)
Roman 8
Greek (ISO-8859-7)
PC-850
Hebrew (ISO-8859-8)
Latin 1 (ISO-8859-1)
Turkish (ISO-8859-9)
Latin 2 (ISO-8859-2)
Russian (DOS)
Baltic (ISO-8859-4)
During processing, the XML data file is converted into a field-nominated data file. To specify the
code page to use when processing the field-nominated data file, start Print Agent with the
-axcodepage option.
codepage_name is the name of one of the supported code pages. The default code page is
UTF-8.
The supported code pages are:
Code Page Name
Output ^symbolset
UTF-8
UTF8
ISO-8859-1
WINLATIN1
ISO-8859-2
Latin2
Shift-JIS
SHIFT-JIS
KSC-5601
HANGEUL
Big-Five
BIGFIVE
GB2312
GB2312
For example, when you do not specify a code page name, Print Agent processes this XML data
fragment ...
<order>
<book>
<ISBN>15536455</ISBN>
<title>Introduction to XML</title>
<quantity>1</quantity>
<unitprice>25.00</unitprice>
</book>
</order>
... as:
^symbolset UTF8
^group G_order
^group G_book
161
^field ISBN
15536455
^field title
Introduction to XML
^field quantity
1
^field unitprice
25.00
With -axcodepage=ISO-8859-1, Print Agent processes the XML data fragment with the
^symbolset value from the -axcodepage option:
^symbolset WINLATIN1
^group G_order
^group G_book
^field ISBN
15536455
^field title
Introduction to XML
^field quantity
1
^field unitprice
25.00
To change the group prefix for a ^group command that represents the end of each data group,
start Print Agent with the -axendgroupprefix option.
The default value at installation is set to G_END_ (G underscore END underscore). This value
is controlled by the EndGroupPrefix=G_END_ setting in the [XMLOptions] section of the Print
Agent configuration file, jfmerge.ini.
To identify portions of the XML data to exclude from processing, start Print Agent with the
-axexclude option.
uri is a Uniform Resource Identifier (URI) that refers to a namespace. Print Agent ignores all
elements belonging to the specified URIs.
162
For example, this XML data fragment contains a number of namespaces, each prefaced by the
namespace declaration attribute xmlns=.
<biztalk xmlns="urn:microsoft:biztalk">
<head>
<info/>
</head>
<body xmlns="urn:microsoft:body-biztalk">
<po xmlns="mypo">
<date xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"
xfa:match="many">2000-11-10</date>
<shipTo>
<name>Pat White</name>
<address/>
</shipTo>
</po>
<po xmlns="mypo">
<date xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/"
xfa:match="many">2000-11-10</date>
<shipTo>
<name>Chris White</name>
<address/>
</shipTo>
</po>
</body>
</biztalk>
Print Agent ignores the elements <biztalk>, <head>, and <info> that belong to the namespace
urn:microsoft:biztalk, and the element <body> that belongs to the namespace
urn:microsoft:body-biztalk. It also ignores the namespace declaration attributes xmlns and
the XFA-Data attributes that belong to the namespace
http://www.xfa.org/schema/xfa-data/1.0/. It starts processing the XML data at the first
occurrence of the element <po>.
163
To specify the handling of multiple level data groups, start Print Agent with the -axflatten option.
This is useful when the structure of the data does not match the structure of an existing
template.
With -axflatten=no, -axflatten=0, or -axflatten=off, Print Agent treats all data groups as
subforms and prefaces them with a ^group command. This is the default behavior.
With -axflatten=yes, -axflatten=1, or -axflatten=on, Print Agent treats only top level data
groups as subforms and prefaces them with a ^group command. It ignores all lower level data
groups and translates their data values to ^field commands, contained by the top level ^group
command.
For example, in this XML data fragment, the element <book> represents a top level data group
and the element <author> represents a lower level data group:
<book>
<ISBN>15536455</ISBN>
<title>Introduction to XML</title>
<author>
<firstname>Pat</firstname>
<lastname>White</lastname>
</author>
</book>
Print Agent translates only the top level data group <book> to a ^group command. It ignores
the lower level data group <author> and translates its data values to ^field commands
contained by the top level data group <book>.
164
When Print Agent processes an XML data file, it first loads the data into the XFA-Data
Document Object Model (XFA -Data DOM), then translates it into Central field-nominated
format. For large XML data files that contain many records, Print Agent provides the capability
to incrementally load the XML data into memory on a record-by-record basis.
To specify how Print Agent loads XML data when converting it to field-nominated format, start
Print Agent with the -axincrementalload option.
With -axincrementalload=yes, -axincrementalload=1, or -axincrementalload=on, Print
Agent will load the XML data one record at a time. This is the default behavior.
With -axincrementalload=no, -axincrementalload=0, or -axincrementalload=off, Print
Agent will load the entire XML data file before converting it to field-nominated format.
When using Print Agent and dynamic templates, depending on the template design, it may be
necessary to process all the data values for a data group before processing a child data group.
To specify the processing order for data values and data groups, start Print Agent with the
-axorder option.
With -axorder=document, Print Agent outputs the data values and data groups in the same
order as in the XML data. This is the default.
With -axorder=datavaluesfirst, for each parent data group, Print Agent outputs the data
values first, then the child data groups.
For example, this XML data fragment contains the element <author>, which represents a child
data group of the data group <bookitem>:
<order>
<bookitem>
<ISBN>15536455</ISBN>
<author>
<firstname>Pat</firstname>
<lastname>White</lastname>
</author>
<title>Introduction to XML</title>
<quantity>1</quantity>
<unitprice>25.00</unitprice>
</bookitem>
<musicitem>
<cdid>4344-31020-2</cdid>
<title>Big Calm</title>
<quantity>1</quantity>
<unitprice>19.00</unitprice>
</musicitem>
</order>
Notice how the data value elements <title>, <quantity>, and <unitprice> belong to the data
group element <bookitem>.
Using the -axorder=document option results:
^symbolset UTF8
^group G_order
^group G_bookitem
^field ISBN
15536455
^group G_author
^field firstname
Pat
^field lastname
White
^field title
Introduction to XML
^field quantity
1
^field unitprice
25.00
^group G_musicitem
^field cdid
4344-31020-2
^field title
Big Calm
^field quantity
1
^field unitprice
19.00
In the example above, the translation results do not match the template. The fields title,
quantity, and unitprice do not belong to the subform author. These fields belong to the
subform bookitem.
To have Print Agent associate the fields title, quantity, and unitprice with the subform
bookitem, use the -axorder=datavaluesfirst option:
^symbolset UTF8
^group G_order
^group G_bookitem
^field ISBN
15536455
165
^field title
Introduction to XML
^field quantity
1
^field unitprice
25.00
^group G_author
^field firstname
Pat
^field lastname
White
^group G_musicitem
^field cdid
4344-31020-2
^field title
Big Calm
^field quantity
1
^field unitprice
19.00
The fields title, quantity, and unitprice appear below the subform bookitem. The data
structure now matches the structure of the template.
Using the -axorder=datavaluesfirst option results in:
^group G_order
^group G_bookitem
^field ISBN
15536455
^field title
Introduction to XML
^field quantity
1
^field unitprice
25.00
^group G_author
^field firstname
Pat
^field lastname
White
^group G_musicitem
^field cdid
4344-31020-2
^field title
Big Calm
^field quantity
1
^field unitprice
19.00
The child data group <author> appears after the data values for its parent data group
<bookitem>.
166
167
To specify the data group elements that represent records, start Print Agent with the -axrecord
option. Print Agent will process the data contained within the designated records.
record-name is the tag name of an element. Print Agent maps each data group element at the
same level in the hierarchy of the specified record-name as a separate record. Data groups
with names that match record-name will translate to top-level ^group commands in the data
file. Print Agent ignores:
record-number is an integer that indicates the level in the hierarchy down from the start
element. The start element is located at a node level of 1. Print Agent maps each data group
element at the record-number level in the hierarchy as a separate record. Data groups that
match record-number will translate to top level ^group commands in the data. Print Agent
ignores all higher-level nodes.
168
</item>
</order>
When the XML data makes use of different element types for similar groupings of data, the
ability to express data records via a record number is useful. This example demonstrates the
result of including record-number in the -axrecord option:
<order>
<bookitem>
<ISBN>15536455</ISBN>
<title>Introduction to XML</title>
<quantity>1</quantity>
<unitprice>25.00</unitprice>
</bookitem>
<musicitem>
<cdid>4344-31020-2</cdid>
<title>Big Calm</title>
<quantity>1</quantity>
<unitprice>19.00</unitprice>
</musicitem>
</order>
169
^field unitprice
25.00
^group G_musicitem
^field cdid
4344-31020-2
^field title
Big Calm
^field quantity
1
^field unitprice
19.00
To change the group prefix for a ^group command that appears at the beginning of each data
group, start Print Agent with the -axstartgroupprefix option.
The default value at installation is set to G_ (G underscore). This value is controlled by the
StartGroupPrefix=G_ setting in the [XMLOptions] section of the Print Agent configuration file,
jfmerge.ini.
To identify the portion of the XML data to process, start Print Agent with the -axstartnode
option. This lets you constrain the processing to a fragment of the data.
xfasom(xfasom-expression) is an XFA-Scripting Object Model (XFA-SOM) Expression,
specifying the start (top-level) element of the XML data. The expression must be a
fully-qualified path of element types (tag names), starting with the root of the XML data and
referring to a single element. The expression must be surrounded with (quotation marks).
Print Agent will ignore all elements outside this element. The default start element is the
outermost node.
In this XML data fragment, the top level element is <order>, under which there are two <item>
elements, each containing a <book> element.
<order>
<number>1</number>
<shipto>
<reference><customer>c001</customer></reference>
</shipto>
170
<item>
<book>
<ISBN>15536455</ISBN>
<title>Introduction to XML</title>
<quantity>1</quantity>
<unitprice>25.00</unitprice>
</book>
</item>
<item>
<book>
<ISBN>15536456</ISBN>
<title>XML Power</title>
<quantity>2</quantity>
<unitprice>30.00</unitprice>
</book>
</item>
</order>
All elements outside the <book> element of the second occurrence of the <item> element are
ignored.
To specify the insertion of a ^group command at the end of each data group, start Print Agent
with the -axuseendgroup option. The creation of a ^group command at the end of a data
group enables Print Agent to recognize when a data group ends and identify the next data
group in the data file.
With -axuseendgroup=yes, -axuseendgroup=1, or -axuseendgroup=on, Print Agent
generates a ^group command at the beginning of each data group with the default start group
prefix G_, and a ^group command at the end of each data group, with the default end group
prefix G_END_.
171
To specify the name of the template that Central uses to process the data, start Print Agent with
the -axuseformcommand option.
172
Print Agent translates the top level data group <order> to a ^form command.
Command Reference
This chapter describes the four groups of commands available for Print Agent:
Within each command group, the commands appear in alphabetical order. Print Agent is
case-insensitive, unless otherwise stated in the command description.
The command format is:
command options arguments
where command is the name of the Print Agent command, options are mandatory or
non-mandatory conditions that refine the command, and arguments are values that you
provide for the option.
Options without brackets or in brace brackets are mandatory. If the options in brace brackets
are separated by vertical lines, such as
{item1|item2|item3}
you may use only one of the options within the brace brackets at any one time.
Options in square brackets are optional. If the options in square brackets are separated by
vertical lines, such as
[item1|item2|item3]
you may use only one of the options within the square brackets at any one time.
Command Reference
174
When Print Agent encounters a line beginning with a Dynamic Merge command prefix
character but does not recognize the command, it issues a message to the log file but
continues processing. It closes the currently active field, if any. Then it discards all text on the
remainder of the line and on subsequent lines until it encounters another line beginning with the
Dynamic Merge command prefix character.
Note: This information is provided solely to help you debug your data stream. Do not rely on
Print Agent to not recognize a particular command. Print Agent currently recognizes
some commands that are not documented, and Adobe reserves the right to add any
other commands, documented or undocumented, in future.
To include a non-printing comment in the data stream, use the ^comment command. Print
Agent does not print a line beginning with ^comment. text can be any number of lines long,
provided each line starts with the ^comment command.
For example:
field VENDOR_CODE
1001
^field VENDOR_NAME
A1 Business Products
^comment
IMPORTANT
^comment
When issuing purchase orders,
^comment
please ensure that you are using
^comment
the latest version of the vendor
^comment
address file.
^field VENDADDR1
234 Second St.
^field VENDADDR2
Anytown, ST
^field VENDADDR3
USA 12345-6789
results in:
1001
A1 Business Products
234 Second St.
Anytown, ST
USA 12345-6789
Command Reference
175
To use multiple lines for the definition of a fixed format record, use the ^continue command. A
^record command must precede the first ^continue command for the record structure.
For example, defining this record layout for a purchase order:
^record PO_DETAIL
^continue ITEM04 01
^continue QTY04 05
^continue DESC14 09
If your record must span more than one page in the template, indicate this with a ^continue
and a ^page command.
For example:
^record PO_DETAIL
^continue ^page 1
^continue ITEM04 01
^continue QTY04 05
^continue DESC14 09
^continue ^page 2
^continue SUB_TOTAL14 01
^continue DISCOUNT14 15
^continue TOTAL14 29
The fields ITEM, QTY and DESC appear on page 1 of the template and the fields SUB_TOTAL,
DISCOUNT and TOTAL appear on page 2 of the template. Define the records in order by page.
For example, you cannot define some fields from page 1, then some fields from page 2, then
more fields from page 1.
There may be portions of the data you want Print Agent to ignore. This happens when you use
the same data stream to print different templates. Print Agent ignores the data for the field
name FILLER.
For example, to ignore the data in the fifth and sixth characters in the record, use this definition:
^record PO_DETAIL
^continue ITEM04 01
^continue FILLER02 05
^continue QUANTITY 04 07
^continue DESCRIPTION14 11
^continue UNITS04 25
^continue UNIT_PRICE 07 29
^continue TOTAL14 36
Command Reference
176
To specify the number of copies of the template that Print Agent outputs, insert a ^copies
command in the data stream. nn is the number of copies of the completed template to print,
and must be an integer. The maximum number of copies is 99,999,999, subject to the
limitations of your printer. Refer to your printer documentation for limitations on the maximum
number of copies you can print.
^copies Considerations
When you use the ^copies command, keep these considerations in mind:
This command is supported only for Print Agent presentment targets and only for print
engines that support multiple copy printing.
The ^copies command must appear in the data stream before the template is opened. It
then applies to that template and any subsequent templates in the same data stream. If Print
Agent opens a template before it encounters the ^copies command, the number of copies
specified in the ^copies command will not apply to the template.
Conditions other than the execution of a ^form command can cause Print Agent to open the
template. For a list of these conditions, see either ^form (Open Template) on page 191, or
\form (Open Template) on page 260.
The printed output is not collated. For example, if the template has two pages and Print
Agent prints five copies, you receive five copies of page 1 and then five copies of page 2. If
you do not specify a number of copies, Print Agent prints the number of copies compiled in
the template in Output Designer.
To define currency specifiers, use the ^currency command. This command applies only to
fields with a numeric picture format, either complied into the template in Output Designer or
added using the \pic command (see page 242).
Command Reference
177
symbol is the currency symbol. The default is a $ (dollar sign). To change the currency
symbol to another character, for example, (pound sterling), use this command:
^currency symbol=
comma is the thousands separator. The default is a , (comma). To change the thousands
separator to another character, for example, . (period), use this command:
^currency comma=.
decimal is the decimal separator. The default is a . (period). To change the decimal
separator to another character, for example, , (comma), use this command:
^currency decimal=&
parenthesis is the pair of characters used as currency parentheses, indicating negative
values. The default is ( ) (left and right parentheses). To change the currency parentheses to
another pair of characters, for example, { } (left and right brace brackets), use this command:
^currency parenthesis={}
left|right is the location of the currency symbol. The default is left. To change the location
of the currency symbol to the right of the currency string, use this command:
^currency location=right
credit is the credit symbol, indicating a credit balance. The maximum size is four characters.
The default is CR. To change the credit symbol to other characters, for example, PLUS, use
this command:
^currency credit=PLUS
debit is the debit symbol, indicating a debit balance. The maximum size is four characters.
The default is DB. To change the debit symbol to other characters, for example, LESS, use
this command:
^currency debit=LESS
incomma|DEFAULT is the thousands separator for incoming data. The DEFAULT option sets
the incoming thousands separator to revert to using the comma value. At least one option must
be supplied. To change the thousands separator for incoming data to another character, for
example, . (period), use this command:
^currency incomma=.
indecimal|DEFAULT is the decimal separator for incoming data. At least one option must be
supplied. The DEFAULT option sets the incoming decimal separator to revert to using the
decimal value. To change the decimal separator for incoming data to another character, for
example, , (comma), use this command:
^currency indecimal=,
Command Reference
178
You have a requirement to specify different currency symbols for specific fields on your
template.
For example:
^currency symbol=DM comma=. decimal=, location=right
^field TOTAL_GERMAN
1234.45
^currency symbol=$ comma=, decimal=. location=left
^field TOTAL_ENGLISH
1234.56
results in:
1.234,56DM
$1,234.56
The incoming data stream is generated with different currency separators than those defined
for the numeric picture clauses in the fields on your template.
For example, consider that you have these settings, typical for a German environment:
thousands separator (comma)
. (period)
, (comma)
DM
However, the transaction file contains English North American style numeric data. A value of
1234.56 (with a picture clause of $$$,$$$,$$9.99) will print as:
123.456,00DM
, (comma)
. (period)
Command Reference
179
To change the active record definition or to restore fixed record format after a ^field command,
insert a ^data command in the data stream. recname is the name assigned to a record
structure in the data stream. The specified record structure, defined by a ^record command,
must appear in the data stream before a ^data command that references it.
When you do not specify a recname, the active record definition defaults to the most recent
^record processed, either as a definition or as data.
For example, to use the record name PO_DETAIL defined in a ^record command, insert this
command in the data stream:
^record PO_DETAIL
^continue ITEM04 01
^continue QUANTITY 04 05
^continue DESCRIPTION 14 09
^continue UNITS04 23
^continue UNIT_PRICE07 27
^continue TOTAL_PRICE11 34
^data PO_DETAIL
101D 10Paper Clips
BOX
343D 10Foldback ClipsBOX
1.25
.80
12.50
8.00
To enclose a section of the data stream containing data associated with a particular subform,
use the ^datagroup begin and ^datagroup end (see page 180) commands. Print Agent
performs new-subform processing when it encounters ^datagroup begin, provided the
previous section was associated with a different subform (or no subform).
^datagroup commands are always used in pairs, as in:
^datagroup begin subformname
.
.
.
^datagroup end [subformname]
Command Reference
180
This command can only be used in conjunction with the ^datagroup begin command. For
details, see ^datagroup begin (Begin Data Group) on page 179.
The ^define command assigns a value to a dictionary variable. These variables remain in
memory until the end of the Print Agent session or until Print Agent encounters the ^undefine
command (see page 231). Print Agent stores dictionary variables separately from global
variables, to avoid a conflict between a global field and a dictionary variable of the same name.
resolve is a literal that tells Print Agent to substitute a macro at the time the variable is
assigned.
The resolve option in the ^define command allows for variable substitution at the time the
variable is defined, rather than when the variable is actually used. For example, the resolve
option enables you to store the current page number into a variable that you can use later in a
document.
An example of using the resolve option with the ^define command is:
^define name Pat Brown
^define text1 Dear @:name, payment in the amount of........
^define resolve text2 Dear @:name, thank you for your
order
^define name Chris Green
^field PAYMENT
@:text1
^field ORDER
@:text2
which results in the text for fields PAYMENT and ORDER reading respectively:
Dear Chris Green, payment in the amount of.....
Dear Pat Brown, thank you for your order.....
Command Reference
181
At the time the variable @:text1 is defined, the value assigned to the variable @:name is Pat
Brown. However, when the @:text1 variable is actually used, the value assigned to the
variable @:name changes to Chris Green, and this is the name that appears in the result.
At the time the variable @:text2 is defined, the value assigned to the variable @:name is Pat
Brown. Because the resolve option is included, the value is substituted at that time, even
though the value assigned to @:name changes to Chris Green by the time the @:text2
variable is used.
dictionary-name: is the name of one of the dictionaries (see page 57) where Print Agent
stores variables, and is one of:
Global
User
Group
If you include a dictionary name, you must include the : (colon) after the dictionary name. In
the absence of a dictionary name, or if you include a colon without a dictionary name, the
default dictionary is User.
variable-name is the name of the variable. value is the value of the variable.
Use the @ (at sign) and provide the name of the variable and an optional dictionary name.
An example of storing and referencing a variable in the User dictionary is:
^define name Pat Brown.
Dear @:name.,
Thank you for your order..........
Use the ^define command with the Group dictionary to define group event and field event
handlers for intelligent pagination (see page 306). The variable-name defines the
dictionary group name and an associated event handler. The value consists of one or
more Intelligent Pagination commands. When the specified event occurs or the group is
explicitly called, Print Agent inserts the Intelligent Pagination commands into the data stream
for execution by the command processor.
Note that the Intelligent Pagination commands for ^define may use more than one line in the
data stream, for example:
^define group:ITEM!FldUsed \fieldPOSITION4
\groupPODETAIL.
Any data following a ^define command is treated by Print Agent as part of the ^define
command, until the next Dynamic Merge command prefix character is encountered. This
means that the \groupPODETAIL command in the example is not executed right away, but
instead is saved in the FldUsed event handler for the ITEM field.
Command Reference
182
The string of Intelligent Pagination commands following a ^define command executes when
the event handler is called; Print Agent treats the string as though it was dispersed
throughout the data stream. Therefore, if the string is not delimited, portions of the data
stream may be interpreted as part of the last Intelligent Pagination command. Always
terminate a string of Intelligent Pagination commands with a . (period).
See also:
-adv (Define Dictionary Variable) on page 79, for another method of defining dictionary
variables.
Page 316 for replacing lines of input data using !Replace! and the ^define command.
To set the value of a dictionary variable, using the current value of other variables referenced in
value, include ^defineresolve in the data stream. This is a synonym for ^define resolve.
For details about the duplexing arguments, see -adu (Duplex Printing) on page 76.
To specify two-sided printing, use the ^duplex xxxx command in the data stream. xxxx can be
one of:
off
on
left
long
top
short
*ptrstring
+encoded-ptrstring
For details about the duplexing arguments, see -adu (Duplex Printing) on page 76.
The ^duplex command is useful when you want to bind output in data binders.
Command Reference
183
Print Agent uses the duplex option compiled into the template by default. When you change the
duplex option, the new option takes effect after the current page ejects.
To send a formfeed to the printer, insert a ^eject command in the data stream. Print Agent
continues printing with the first field of the next page.
There are three options for the ^eject command:
trayin
Format
^eject trayin {traynum|*ptrstring|+encoded-ptrstring}
To print from a specific input paper tray, use the trayin option. Note that changing paper trays
while printing in duplex ejects the current page; data originally destined to print on the reverse
of this page now prints on a physically new sheet.
For example, to select input paper tray number 4, insert this command in the data stream:
^eject trayin 4
For a complete description of the trayin option, see ^trayin (Input Tray) on page 227.
trayout
Format
^eject trayout {traynum|*ptrstring|+encoded-ptrstring}
To direct the printed output to a specific output paper tray, use the trayout option. Note that
changing paper trays while printing in duplex ejects the current page; data originally destined to
print on the reverse of this page now prints on a physically new sheet.
For example, to select paper tray number 4, insert this command in the data stream:
^eject trayout 4
Command Reference
184
duplex
Format
^eject duplex
{off|on|left|long|top|short|*ptrstring|+encoded-ptrstring}
To handle two-sided printing after a page eject, use the duplex option.
For example, to eject a page and change the printing to duplex along the left edge, insert this
command in the data stream:
^eject duplex left
For a complete description of the duplexing arguments, see -adu (Duplex Printing) on
page 76.
To send a template as a fax using one of the Central supported fax packages, insert a ^fax
command in the data stream.
keyword can be one or more of the following. Use only the keywords supported by your
particular fax package.
Keyword
Description
COVER_PAGE_TEXT
FROM_COMPANY
FROM_FAX_NUM
FROM_NAME
FROM_VOICE_NUM
JOB_ID
NEXT
Used for fax packages, such as Fax Sr. and RightFAX, that require
a keyword to separate multiple entries.
NOTIFY
Keyword
Command Reference
185
Description
PHONE_BOOK_G
PHONE_BOOK_P
PRIORITY
RETRY
SUBJECT
TO_ALT_NUM
The number of the alternate fax machine to receive the fax, in the
event that transmission to the TO_FAX_NUM fails.
TO_COMPANY
TO_FAX_CC_NUM
The number of the fax machine receiving a carbon copy of the fax.
TO_FAX_NUM
TO_NAME
TO_VOICE_NUM
Sends a fax to the number associated with the identifier tbrown in the global phone book.
Tells the fax program to attempt to send the fax four times before terminating the operation.
Tells the fax program to return a failure notification to the e-mail address, cwhite.
Indicates that the subject of the fax is Contract for Computer Workstations.
Note: When a value includes spaces or non-alphanumeric characters, enclose the value
in (quotation marks).
Command Reference
186
Faxing Considerations
When you use the ^fax command, keep these considerations in mind:
You may include any number of ^fax commands in the data stream; however, they must
immediately follow the ^job command and they may not be interspersed with other
commands or data. Once Print Agent processes a command other than the ^fax command,
it ignores all subsequent ^fax commands.
For example, in this data stream:
^job jobname
^fax TO_FAX_NUM "1-123-456-7890"
^form formname
^fax TO_ALT_NUM "1-987-654-3210"
You can only direct the printed output to a fax driver. For details, see -apm (Print Fax Mode)
on page 113.
You can use the ,u argument with the -z option to direct fax output to a fax package that
has a collector directory. For details, see -z (Direct Output) on page 153.
Print Agent stores the options for the ^fax command in the Fax dictionary. For details, see
Fax Dictionary on page 58.
Note: When a value includes spaces or non-alphanumeric characters, enclose the value in
(quotation marks).
Specify as many -adv options as are necessary to properly output each fax.
Command Reference
187
Print Agent has two requirements for sending faxes using this approach:
You must specify the number of faxes that you want to send. Use the keyword
NumCommands as the first -adv option. For example, to specify that there will be
commands to output two faxes:
-advfax:NumCommands=2
Note: The value that you specify for NumCommands determines the number of faxes that
Print Agent will send. If you specify fewer that the number of fax telephone numbers
you provide, only the number specified will be sent. Print Agent will ignore the others.
For each fax device, you must specify the keyword TO_FAX_NUM_n and the telephone
number.
You can provide the -adv options to Print Agent in a variety of ways:
From the command line, using -adv command line options, or in a parameter file specified
by @parmfile
In the JMD, by specifying the -adv options in the program options on the Task Table
The following example shows the command line options in a parameter file that will send a fax
to two fax numbers.
-advfax:NumCommands=2
-advfax:TO_FAX_NUM_1="1-234-555-6789"
-advfax:FROM_COMPANY_1="Any Company Inc."
-advfax:FROM_NAME_1="Finance Department"
-advfax:RETRY_1=3
-advfax:TO_FAX_NUM_2="1-234-565-3456"
-advfax:TO_ALT_NUM_2="1-234-565-2379"
-advfax:FROM_COMPANY_2="Any Company Inc."
-advfax:FROM_NAME_2="Finance Department"
-advfax:RETRY_2=2
This example shows how the -adv options would appear on the command line. In this example,
although the command line appears to overflow onto more than one line, it is all one long line.
jfmerge formname datafilename -advfax:NumCommands=2
-advfax:TO_FAX_NUM_1="1-234-555-6789" -advfax:FROM_COMPANY_1="Any
Company Inc." -advfax:FROM_NAME_1="Finance Department"
-advfax:RETRY_1=3 -advfax:TO_FAX_NUM_2="1-234-565-3456"
-advfax:TO_ALT_NUM_2="1-234-565-2379"
-advfax:FROM_COMPANY_2="Any Company Inc." -advfax:FROM_NAME_2="Finance
Department" -advfax:RETRY_2=2 ...
Command Reference
188
This example shows how the command line options would appear in a preamble:
^define
^define
^define
^define
^define
fax:NumCommands=2
fax:TO_FAX_NUM_1="1-234-555-6789"
fax:FROM_COMPANY_1="Any Company Inc."
fax:FROM_NAME_1="Finance Department"
fax:RETRY_1=3
^define
^define
^define
^define
^define
fax:TO_FAX_NUM_2="1-234-565-3456"
fax:TO_ALT_NUM_2="1-234-565-2379"
fax:FROM_COMPANY_2="Any Company Inc."
fax:FROM_NAME_2="Finance Department"
fax:RETRY_2=2
To fill a specific field, insert a ^field command in the data stream. fieldname is the name
assigned to the field in Output Designer.
For example, to fill a field named USERNAME, use this command:
^field USERNAME
data
For templates designed with version 5.2.6 or later of Output Designer, a field can be defined as
a graphic field in the template. The text placed in such a field is interpreted by Print Agent in the
same way as the parameters for a ^graph command (see page 194). The image is rotated in
accordance with the field rotation setting, and then scaled to fit into the field boundaries. The
resolution parameter, if supplied, is ignored. For example, to fill a field named
COMPANY_LOGO with the graphics file, abc.jpg, with a gamma value of 0.75, use this
command:
^field COMPANY_LOGO
abc.jpg gamma 0.75
Note: You can provide a full path specification. However, if the path name contains spaces,
use the -alp command line option to identify the path and provide the name of the
graphics file as the data for the ^field command.
When you do not specify a field name, Print Agent moves to the next field on the template. Print
Agent processes the fields on the page in the tabbing sequence defined in Output Designer.
The default tabbing sequence in Output Designer is top to bottom, left to right on the page using
the top left-hand corner of the fields. You can also go to the next field by entering a ` (back
quotation mark) in the data.
Command Reference
189
Make the sequence of the data independent of the order of the fields on the page.
To change the way Print Agent handles data for fields, use the -afx option (see page 84). For
printing template pages without fields, see -aap (Print All Pages) on page 66.
To include a file in the data stream, insert a ^file command in the data stream. This is similar to
an include file in a programming language.
Use the ^file command to:
Include a standard record description or global field data at the beginning of a transaction file
containing fixed format records.
Direct the input data stream to a dictionary variable as though it was a file.
The file may contain any information Print Agent can accept, including another ^file command.
You can nest up to one hundred levels of files, plus the main data file. However, in practice, the
operating system settings may limit the number of open files to be less than one hundred.
Note: The ^file command supports file names with embedded blanks (spaces). However, file
names with embedded blanks must be enclosed in (quotation marks).
The axml parameter, if supplied, controls auto-detection of an XML data file. If the axml
parameter is not supplied, then the ProcessAsXML option in the Pring Agent configuration file,
jfmerge.ini, controls auto-detection of XML.
Command Reference
190
The skiplines and skipchars parameters, if supplied, cause Print Agent to skip the
specified number of lines and characters, respectively, in the file. If you include both the
skiplines and skipchars parameters, Print Agent processes the skiplines parameter
first, then the skipchars parameter. This is similar to the -asc and -asl command line
options, which apply only to the main data file.
The skiplines and skipchars parameters have no effect when the file is opened as XML,
in the same way that the -asc and -asl command line options have no effect when the main
data file is opened as XML. However, if the file is opened as field-nominated, then the
skiplines and skipchars parameters apply as usual.
For example, the file info.dat may contain XML or field-nominated data and commands. If the
first non-whitespace character in the file is < then it is known to be XML, so it can be identified
as XML using the lax XML detection rule. However if info.dat contains field-nominated data
and commands, then the first three lines of the file must be discarded. To accomplish this, insert
this command sequence in the data stream:
^subform address
^file info.dat axmllax skiplines3
If the file is detected as an XML data file, the skiplines3 parameter is ignored and the entire
file is processed. If the file is not detected as an XML file, the file, minus its first three lines, is
processed.
To continue with the previous example, if the field ADDRESS is a global field, then specify the
^file command in the data stream and identify the global field in the file. In this case, the data
stream would contain the command:
^file info.dat
and the file info.dat would specify the field and its data:
^global address
123 Main Street
AnyCity, AnyCountry
The skiplines and skipchars parameters, if supplied, cause Print Agent to skip the
specified number of lines and characters, respectively, in the file. If you include both the
skiplines and skipchars parameters, Print Agent processes the skiplines parameter
first, then the skipchars parameter. This is similar to the -asc and -asl command line
options, which apply only to the main data file.
Command Reference
191
Using the ^file command with the dictionary keyword is useful for variables (such as
document variables) which contain multiple ^ commands.
For example, the document variable mypreamble contains:
^global manager
Chris White
^global host
@manager.
Note: Print Agent makes a duplicate of the variable and reads subsequent input from the
duplicate. Therefore, if subsequent processing changes the value of the variable, there
is no effect on the input data stream.
To open a template (form), insert a ^form command in the data stream. This command
instructs Print Agent to close the currently open template and to open the template, MDFname.
For example, to open a template named newform.mdf, use this command:
^form newform.mdf
MDFname is the file name or URL for a template. When you specify a file name you may include
the full path specification. If you do not include the path and Print Agent was started with the
-afpformpath option (see page 82), it uses the formpath to assemble the complete file name or
URL. Print Agent also appends an .mdf extension to the name if no extension is given.
If the resulting full name starts with http:, Print Agent downloads the file from an HTTP server
using the full name as the URL. Otherwise, it opens the file within the file system.
Normally when the ^form command is specified in the data stream, Print Agent ignores any
template name on the command line. This means that you can start Print Agent with a dummy
file name if the data stream contains a ^form command. However, whether the template name
from the command line is actually ignored depends on the contents of your data stream. Certain
conditions cause Print Agent to immediately open the template. If Print Agent encounters one of
these conditions in the data stream before it encounters the ^form command, it will try to open
the template from the command line. If that happens and the command line contains a dummy
file name, your job will fail.
Command Reference
192
When Print Agent encounters one of the conditions that cause it to immediately open a
template, it sends a reset sequence to the printer, and positions at the initial page. The default
initial page is page 1, but this can be changed with the -aip option.
The conditions that cause Print Agent to immediately open a template are:
Starting in quiet download format (no preamble or data file and -q)
^form
^subform
^field
^graph
^position
^page
^eject
^macro
^passthru
^tab
Note: Although -axpson causes Print Agent to open the template when it starts, once it reads
and stores the preamble it closes the file again. If the open fails or there is no preamble,
it quietly ignores the -axpson.
When Print Agent reads a ^form command in the data stream and it is the first template
opened for that job, it makes page one of the template active. When opening subsequent
templates, Print Agent does end-of-page processing and sends a formfeed and soft reset to the
printer. The printed result is similar to that obtained when using the ^page command. The
difference is that all possible pages must be compiled into the template when using ^page. In
some cases you may wish to compile individual pages as separate templates and use the
^form command to reference them.
Use care when using the ^form command with multipart templates. Print Agent can only cope
with one template during a multipart print execution. For each part in a multipart template, Print
Agent repositions in the data stream to the start of the file. If you use a ^form command after
Print Agent has already opened the template, it forces Print Agent to reopen the template again.
Opening the template again may cause Print Agent to lose track of where it is in processing the
multipart template.
Command Reference
193
^form options override equivalent options set on the command line, for the duration of the
template. Adding an option to the ^form command only affects the template specified by the
^form command. When you do not add a particular option to the ^form command, Print Agent
uses the equivalent option on the command line.
The options for the ^form command can be one or more of the following:
For example, to print all pages of a template and use picture formatting, include the -aapon and
-apfon options respectively with the ^form command:
^form newform.mdf -aapon -apfon
To insert the same data into fields of the same name on many template pages or templates,
insert a ^global command in the data stream. data can be one or more lines of text. data
can also be a graphic file name, if the field is defined as a graphic field in Output Designer.
For example, to insert the name Chris White into every field named MANAGER on the
template, insert this command into the data stream:
^global manager
Chris White
Command Reference
194
To insert the text Directs the operation of the Finance Department, including the supervision of
four subordinates. into every field named DUTIES on the template, insert this command into
the data stream:
^global duties
Directs the operation of the Finance Department, including the
supervision of four subordinates.
To insert the graphic file, abc.tif into every field named COMPANY_LOGO on the template,
insert this command into the data stream:
^global COMPANY_LOGO
abc.tif
When you are using fixed record format, placing an * (asterisk) at the beginning of global field
names in the record definition has the same effect. For details, see Global Field Processing
on page 40.
For example, to define a record called PROCUREMENT with a global field named MANAGER,
insert one of the following in the data stream:
^record PROCUREMENT *manager 25
- or ^record PROCUREMENT
^continue *manager 25
You can also define global variables in the Global dictionary (see page 59) using the ^define
command (see page 180).
To print a logo or raster graphic starting at the current position on the page, insert a ^graph
command in the data stream.
For example, to print a graphic called logo.pcx with a resolution of 600 dpi and a gamma value
of 2.2, use this command:
^graph logo.pcx resolution 600 gamma 2.2
filename is the name of the graphic file. Print Agent searches the template for a graphic file
included in the template with the given name. If it does not find the graphic file in the template, it
looks in the file system. When looking in the file system, if filename does not include the full
path, it uses the path specification from the -alp option (see page 91).
Command Reference
195
type is one of the supported graphic types listed in the table below. If type is not supplied,
Print Agent infers it from the extension of filename. type is useful when filename refers
to a temporary file. For example:
^graph \tmp\ABAE1231.tmp type pcx
Supported Formats
bmp
not applicable
eps
not applicable
Default Resolution
Note: EPS graphics are supported only for templates compiled using a PostScript
presentment target and printed to a PostScript printer. EPS graphics are not
supported for templates compiled using a Windows printer driver, even if the
templates are printed using a PostScript printer.
gif
jpg
lgo
24-bit color
1 bit monochrome
96 dpi
72 dpi
300 dpi
Command Reference
Type
Supported Formats
pcx
1 bit monochrome
png
75 dpi
tif
1 bit monochrome
not applicable
- or -
8 bit gray-scale
gr3
Type 1 - no compression
Group 4 2D compression
196
Default Resolution
not applicable
resolution value indicates the resolution in dots per inch of the graphic file. This can be
any positive number or the word default.
For templates designed with version 5.2.6 or later of Output Designer, a field can be defined as
a graphic field in the template. When placing an image in a graphic field, Print Agent rotates the
image in accordance with the fields rotation setting and then scales the image to fit within the
field boundaries. resolution value, if supplied, is ignored.
When Print Agent places an image into a non-graphic field, it uses resolution value to
control the scaling of the image from its original resolution to the printers resolution. You can
use resolution value to force the image to be scaled differently. For example, if the image
was scanned at 144 dots per inch but you specify a resolution of 72 dots per inch, the image will
print at twice life-size.
If you supply a value of 0 or default for resolution value and the field is a non-graphic
field, Print Agent examines the image file. If the image file specifies the resolution, Print Agent
uses the value from the file. Otherwise Print Agent defaults to a value from the table above. In
the table, not applicable indicates that the resolution is always taken from the image file.
However, if you set the value of DefaultBitmapResolution in the Print Agent configuration file,
jfmerge.ini, to Yes, Print Agent will use 300 dots per inch as the default resolution for all
image formats. This provides backwards compatibility with data streams created for earlier
versions of Print Agent.
The gamma value indicates the degree of light intensity to assign to a color graphic. The
practical values are between 0 and 4. A value of 1 does not change the light intensity of the
graphic. A value less than 1 decreases the light intensity; a value greater than 1 increases the
light intensity. Note that the effect of a gamma value assigned with the ^graph command can
be impacted by other considerations, such as the gamma built into the graphic, or the gamma
of your printer.
Command Reference
197
Graphic Placement
The ^graph command does not begin a new field and does not respond to -afx (see page 84)
or to other options and commands that affect the placing of data into fields. If text has already
been placed into the current field, ^graph places the image below the text. You may precede
^graph with ^position (see page 207) to control the position of the image.
In templates created with version 5.2.6 or later of Output Designer, a field can be defined as a
graphic field. You can place an image into a graphic field using the ^field command (see
page 188). An image placed in this manner cannot be accompanied by text and cannot be
repositioned. However, the ^field command does respond in the normal way to -afx.
Label Printers
For label printers, the ^graph command will accept images in 1, 4, 8 and 24 bit format.
However, whether images provided in 4, 8 and 24 bit format will appear on the output depends
on the capabilities of the printer.
Color or gray-scale images are supported only if compiled into the template. For all color
images printed with the ^graph command, the quality of the printed image is dependent on the
capabilities of your printer.
The ^graph command is fully supported for Tec and Intermec label printers. For Datamax and
Zebra label printers, the graphic will print only if already downloaded to the printer or if compiled
into the template.
Command Reference
198
-orwith a groupname and eventname that are defined in the Group dictionary, for example:
^group PODETAIL!FldUsed
Execute the !OnExit event for the current group, if one exists.
Execute the !OnEntry event for the group PODETAIL, if one exists.
Execute any actions defined for the group and event, if specified.
Command Reference
199
If the current group is PODETAIL, Print Agent will only execute any actions defined for the
group and event.
With no groupname, but with an eventname that is defined in the Group dictionary, for
example:
^group !Output_Special_Footer
Print Agent will execute any actions defined for the event. The current group remains
unchanged.
If Print Agent cannot find an entry in the Group dictionary for a specified group and/or event, it
will ignore the ^group command.
When Print Agent starts processing a transaction file, it is initially in a default group called
JFDEFGROUP. It remains in this group until the activation of a user-defined group, specified
with a ^group or \group command. JFDEFGROUP is useful where an event is triggered before
the activation of a user-defined group. In this case, Print Agent calls the group event handlers
from JFDEFGROUP to process the event. JFDEFGROUP supports all group event handlers
except !OnEntry.
At the end of the transaction file, Print Agent triggers the !OnExit event for the current group. It
will also trigger a JfEndData event, if one is defined.
{on|off}
Format
^inline {on|off}
This command activates processing of Inline Text Control commands. Without this command,
Print Agent processes Inline Text Control commands as data and prints them literally, rather
than executing them. You can enable Inline Text Control processing with ^inline on and set it
off with ^inline off.
By default, Print Agent processes Inline Text Control commands.
For another method of activating Inline Text Control commands, see -aitc (Set Inline Text
Control) on page 88.
Command Reference
200
[fixed|variable|fixed variable]
Format
^inline {on|off} [fixed|variable|fixed variable]
Leading is the space between printed lines of text. When the font size for a field changes from
the default font, the leading may need to change accordingly.
fixed is the default leading option. Normally, all text processed by Print Agent uses the line
spacing from the field definition, as provided by the template designer. Print Agent processes all
data in a fixed line spacing regardless of the font size used.
Inline Text Control commands enable you to select fonts that are larger or smaller than the base
font defined for the field by the template designer. These fonts may be incompatible with the
fields line spacing and fixed leading results in large gaps between lines of small text, or
overlapping of large text.
variable adjusts all line spacing based on the largest font within a line of text.
fixed variable adjusts the line spacing only if the font used within a line of text is larger than
the default font for the field. Using smaller fonts does not adjust the line spacing.
[novarsub|varsub]
Format
^inline {on|off} [varsub|novarsub]
Normally, Print Agent does a pre-pass on the data and processes variable substitution
commands (see page 281) first, before it processes Inline Text Control commands. novarsub
suspends variable substitution processing, except for the automatic filling of global fields that
appear on a template. varsub restores variable substitution processing.
Command Reference
201
[freset|nofreset]
Format
^inline {on|off} [freset|nofreset]
When Print Agent encounters a ^field command, it sets all field attributes to those of the new
field. Field attributes include font, indentation, tab settings, and sub/superscripting. The
freset option is the default and causes a ^field command to reset the current attributes.
Including the nofreset option means Print Agent does not reset field attributes when it
encounters a ^field command. The exception to this is the first field encountered by Print
Agent. The font of that field establishes the initial font.
To print a graphic image contained in the data stream, use the ^inlinegraphbegin and
^inlinegraphend commands. The image is printed starting at the current location on the page.
Parameters for ^inlinegraphbegin can be in any order.
global must be supplied if the current field is a global field. It causes Print Agent to set aside
the graphic for later use when it is ready to fill global fields.
encoding-type can be either hex (for hexadecimal) or b64 (for base-64). The default is
b64. This parameter tells Print Agent how to decode encoded-graphic-image. The image
cannot be placed into the data stream un-encoded.
type is one of the standard file name extensions which would tell Print Agent how to interpret
the graphic data, if it was an external file. type can be tif, gr3, lgo, pcx, bmp, jpg, or
png. The default is tif. For the restrictions that apply to the supported graphic types, see
^graph (Print Logo or Raster Image) on page 194.
For PostScript Level 2 and PCL 6 printers, the graphic is treated as if scanned at 300 dpi.
If the value of DefaultBitmapResolution is set to NO or not present, the resolution from the
graphic is used when processing the graphic, unless overridden by the resolution value
on the ^inlinegraphbegin command.
Command Reference
202
The gamma value indicates the degree of light intensity to assign to a color graphic. The
practical values are between 0 and 4. A value of 1 does not change the light intensity of the
graphic. A value less than 1 decreases the light intensity; a value greater than 1 increases the
light intensity. Note that the effect of a gamma value assigned with the ^inlinegraphbegin
command can be impacted by other considerations, such as the gamma built into the graphic,
or the gamma of your printer.
encoded-graphic-image is either a series of hexadecimal numbers or a series of characters
in base-64.
In hexadecimal encoding, each byte of image data is represented by two hexadecimal digits.
The hexadecimal digits may be any of the characters 0 through 9, A through F, or a
through f. Print Agent discards all other characters.
In base-64 encoding, groups of three bytes are encoded as sets of four characters. The
standard for base-64 encoding is laid out in RFC1521, section 5.2, which is available online
from the Internet Engineering Task Force at http://www.ietf.org. Print Agent discards all
characters that are not part of the base-64 character set.
Whichever encoding scheme you choose, the encoded image data can occupy one long line or
be broken up freely into multiple lines. The usual input line length restriction governed by the -i
command line option (see page 134) does not apply to encoded image data. Furthermore, a
base-64 encoded image is not required to conform to the line-length limit specified in RFC1521.
However, both the ^inlinegraphbegin statement, including its options, and the
^inlinegraphend statement, must occupy lines by themselves.
The ^inlinegraphbegin command serves the same purpose as the ^graph command (see
page 194), but frees you from the need to maintain a separate file containing the graphic image.
Caution: Print Agent will not process ^inlinegraphbegin and ^inlinegraphbegin commands
when the value of path names in the TMP variable contains ~ (tilde) characters and
the value of the alternate newline character is also set to be a tilde character
character. There are a number of workarounds for this situation:
Redefine your TMP environment variable to avoid long filename paths. For
example, you could define your TMP environment variable as C:\temp.
If your TMP environment variable must include tilde characters, set the alternate
newline character to be something other than the tilde character, such as, for
example, the null character.
Graphic Placement
The ^inlinegraphbegin command does not begin a new field and does not respond to -afx
(see page 84) or to other options and commands that affect the placing of data into fields. If text
has already been placed into the current field, ^inlinegraphbegin places the image below the
text. You may precede ^inlinegraphbegin with ^position (see page 207) to control the
position of the image.
Command Reference
203
In templates created with version 5.2.6 or later of Output Designer, a field can be defined as a
graphic field. You can place an image into a graphic field using the ^field command (see
page 188), followed by a ^inlinegraphbegin command. An image placed in this manner
cannot be accompanied by text and cannot be repositioned. However, the ^field command
does respond in the normal way to -afx.
Use this command with fixed record format to determine the type of record from the data. The
^key command appears with a record structure defined by the ^record command. To define a
key value for a record, use the ^key command with a keyname, and at least one value
identifier. When Print Agent processes a record in the data stream, it compares the value with
the contents of the field named keyname and determines the type of record to use. The ^key
command must be within the record structure, and the value must be different for each record
type.
When ^key commands exist for more than one record structure, and the ^key commands
appear in different byte positions in the record structures, there is the possibility that more than
one ^key specification may apply. Print Agent uses the first record definition that matches on
key value.
For example, to have Print Agent choose between record definitions for a purchase order
header and detail, a data stream could contain these commands:
^record PO_HEADER
^continue REQ_TYPE02
^continue PO_DATE08
^continue REQNO07
^continue VENDOR_CODE04
^key REQ_TYPE 01 03
^record PO_DETAIL
^continue DETAIL_TYPE02
^continue ITEM04
^continue QUANTITY04
^continue DESCRIPTION14
^continue UNITS04
^continue UNIT_PRICE07
^key DETAIL_TYPE02
Command Reference
204
For this example, the ^key command tells Print Agent that the keyed field is REQ_TYPE, which
is the first two bytes of the data record. Print Agent checks the value of the first two bytes of the
data record. When the value is 01 or 03, Print Agent processes the record as a purchase order
header record. When the value is 02, Print Agent processes the record as a purchase order
detail.
Print Agent checks the record structures until it makes a match for the key value. When no
record structure matches the key value, Print Agent processes the data record according to the
last record structure used.
To insert a printer macro at the current position, insert a ^macro command in the data stream.
nn is the number of the macro to insert.
For example, to print macro number 42 at the current position, insert this command in the data
stream:
^macro 42
You must download the macro to the printer before you execute this command. For details, see
-m (Download Macro to Printer) on page 135. The ^macro command is valid for PCL 5 and
PostScript Level 2 printers.
When the template designer creates the macro as a page in an Output Designer template, the
page must be compiled as a subform. For a multipage template, the first page is downloaded as
the specified macro number, the second page as the macro number plus one, the third page as
the macro number plus two, and so on. Ensure that the ^macro command references the
specific macro number for the subform page.
To change the new field character (see page 322), insert a ^newfield command in the data
stream. The default new field character is a ` (back quotation mark). When Print Agent
encounters this character in the data stream, it ends the current field and advances to the next
field on the template.
For example, to change the new field character to % (percent sign), insert this command in
the data stream:
^newfield %
Command Reference
205
For another method of changing the new field character, see -anf (New Field Character) on
page 96.
UP
TE
DA
Format
^page {name|num} [options]
To move to a new page in the template (form), use the ^page command. {name|num} is the
page to activate, and can be either a name or a number. When you do not specify
{name|num}, Print Agent ejects the current page and activates the next page in the template.
When there is only one page in the template, Print Agent ejects the current page and
reactivates the current page.
When you use the ^page command after you activate inline text control processing, you must
specify {name|num}, or Print Agent ignores the ^page command.
For example, to activate page dependents of the current template, insert this command in the
data stream:
^page dependents
To end the current template and start a new copy of the currently active template, specify
{name|num} where {name|num} is either number 1 or the name of your first page. Note that
even though your pages may have names instead of numbers, Print Agent still retains the
numerical count of the pages in the template. Therefore, even if the first page is named
dependents, you can still specify page 1 to start a new copy of the currently active template.
Note: The ^page command will not work with multipart templates. The ^eject command
should be used with multipart templates instead of ^page.
The options for the ^page command are:
trayin
Format
^page {name|num} trayin {traynum|*ptrstring|+encoded-prtstring}
To print from a specific input paper tray, use the trayin option. Note that changing paper trays
while printing in duplex ejects the current page; data originally destined to print on the reverse
of this page now prints on a physically new sheet.
For example, to select input paper tray number 4, insert this command in the data stream:
^page 7 trayin 4
Command Reference
206
For a complete description of the trayin option, see ^trayin (Input Tray) on page 227.
trayout
Format
^page {name|num} trayout {traynum|*ptrstring|+encoded-prtstring}
To direct the printed output to a specific output paper tray, use the trayout option. Note that
changing paper trays while printing in duplex ejects the current page; data originally destined to
print on the reverse of this page now prints on a physically new sheet.
For example, to select an output paper tray designated by the printer manufacturer as paper
tray number 4 with a printer command string of <ESC> (the ASCII escape character) followed by
&l4G, you can use either of the following trayout options:
^page dependents trayout 4
^page dependents trayout *=\027&l4G
duplex
Format
^page {name|num} duplex {off|on|left|long|top|short|*ptrstring|+encoded-ptrstring}
For a complete description of the duplexing arguments, see -adu (Duplex Printing) on
page 76.
- or ^passthru
data
...
^command
To send data directly to the output destination, use the ^passthru command. When you specify
Command Reference
207
filename after the command, Print Agent passes all information in filename as binary data
to the output.
When you do not specify filename, Print Agent sends all data in the transaction file to the
printer until it encounters the next command. Without filename, Print Agent strips all carriage
returns from the data in the transaction file.
To restore the most recently saved symbol set, include a ^popsymbolset command in the data
stream. You save the symbol set with the ^pushsymbolset command (see page 218).
Including the all option restores the symbol set in effect prior to any ^pushsymbolset
commands.
To change the placement of the next subform, next macro, logo or passthru data, or to return to
a saved position on the page after one of the above, use the ^position command.
Caution: You can use the ^position command to move to a position that exists outside the
printable area of a page. For example, ^position absolute 0.00 3.50 in.
This may be useful when positioning other objects, so that you have a fixed
reference point for a subsequent command. However, it you place an object outside
the printable area of a page, that object may not print properly. Moreover, Print
Agent will not display a warning if you attempt to print an object that exists outside
the printable area of a page.
Use caution when using the ^position command. Print Agent does not display any warnings if
you attempt to print an object off the printable area of the page.
Command Reference
208
Portrait orientation
up
left
right
down
Landscape orientation
up
left
down
right
At times it may be difficult to determine your current position on the page for placing the next
object. In those instances, lay down a dummy field with the ^field command and position from
that field.
Command Reference
209
The ^position command supports a number of options. Where the options use graphical
examples to demonstrate the result, these purchase order subform pages are used:
Page 1
Any Company Inc.
PURCHASE ORDER
Date
Requisition Number
Vendor
Vendor Code
Ship To
Item
Qty
Description
Units
Unit Price
Total Price
Page 2
This subform page contains the detail line
headings.
Command Reference
210
Page 3
This subform page contains detail lines and a
field for setting the pen position.
[]
Subtotal
Tax - 7.25%
Total
Page 4
This subform page contains the totals
information.
Command Reference
211
Page 5
[]
[absolute]
Format
^position [absolute] x y [units]
To place an object at a specific location on the page, use the absolute option. x is the number
of units from the left edge of the physical page. y is the number of units down from the top of
the physical page.
units can be one of:
Dots
cm (centimeters)
in (inches)
The default unit is dots. The size of a dot varies and depends on your printer configuration file.
Command Reference
212
For example, to position a subform on a template page at the location 1 inch from the left edge
of the page and 5.5 inches from the top of the page, insert these commands in the data stream:
^position absolute 1 5.5 in
^subform 2
Date
Requisition Number
Vendor
Vendor Code
Ship To
Qty
Description
Units
Unit Price
Total Price
When only numeric information or numeric information with units follows the ^position
command, Print Agent defaults to absolute positioning. Another way of expressing the example
is:
^position 1 5.5 in
^subform 2
Command Reference
213
up|down
Format
^position up|down y [units]
To position an object at a location up or down from the last object placed on the page, use the
up or down option. y is the number of units up or down to move.
units can be one of:
Dots
cm (centimeters)
Lines
in (inches)
The default unit is dots. The size of a dot varies, based on your printer configuration file. A line
is the line spacing defined for the current font in the current field.
For example, to position a subform to a location 150 dots down from the current position, insert
these commands in the data stream:
^position down 150
^subform 3
Date
Requisition Number
Vendor
Vendor Code
Ship To
(150)
Qty
Description
Units
Unit Price
Total Price
Command Reference
214
relative
Format
^position relative x y [units]
To place an object a specific distance from the current position, use the relative option. x is
the number of units right from the current position. y is the number of units down from the
current position.
Both x and y can be negative numbers. When x is negative, motion is to the left. When y
is negative, motion is up the page.
units can be one of:
Dots
cm (centimeters)
in (inches)
The default unit is dots. The size of a dot varies and depends on your printer configuration file.
For example, to position a subform to a location 3.125 inches left from the current point and .5
inches down from the current point, insert these commands in the data stream:
^position relative -3.125 .5 in
^subform 4
Item
Qty
Description
Units
Unit Price
Total Price
(0,0)
[]
(-3.123,.5)
Subtotal
Tax - 7.25%
Total
Command Reference
215
left|right
Format
^position left|right x [units]
To place an object at a location left or right on the page, use the left or right option. x is the
number of units left or right to move.
units can be one of:
Dots
cm (centimeters)
in (inches)
The default unit is dots. The size of a dot varies based on your printer configuration file.
For example, to move to a point 3.5 inches right of the current position, insert this command in
the data stream:
^position right 3.5 in
restore
Format
^position restore save_id
To return to a specific location on the page, use the restore option. You must use the save
option before issuing the restore option. save_id is the name of the previously saved
location; it cannot contain spaces, and is case-insensitive.
For example, to return to a saved location named JUMP_SPOT, insert this command in the
data stream:
^position restore jump_spot
save
Format
^position save save_id
To save the current location on the page, use the save option. save_id is the name of the
location to save; it cannot contain spaces, and is case-insensitive.
For example, to save the current location as JUMP_SPOT, insert this command in the data
stream:
^position save jump_spot
Command Reference
216
x
Format
^prefix x
To change the prefix character that specifies Dynamic Merge commands, use the x option. x is
the designation for the new character. The default prefix character (see page 322) is ^ (caret).
For example, to change the prefix character to # (number sign), insert this command in the
data stream:
^prefix #
To change this prefix character on the command line, see -apcc (Dynamic Merge Command
Prefix Character) on page 98.
Note: When the Print Agent is processing a form that includes an internal preamble, it does
not recognize an attempt made in the data file to change the default Dynamic Merge
Command prefix character (from ^ (caret) to some other character).
To resolve this issue, append a ^prefix command to the preamble. For example,
^prefix #, to change the prefix character to the number sign. Appending the ^prefix
command to the preamble allows the change in prefix character to take place before the
data file is read, but after the preamble has been processed.
Command Reference
217
dictvar x
Format
^prefix dictvar x
To change the prefix character that acts as a dictionary name separator, use the dictvar x
option. x is the designation for the new character. The default prefix character (see page 322)
is : (colon).
For example, to change the prefix character to # (number sign), insert this command in the
data stream:
^prefix dictvar #
To change this prefix character on the command line, see -apcd (Dictionary Name Separator
Prefix Character) on page 99.
inline x
Format
^prefix inline x
To change the prefix character that specifies Inline Text Control commands, use the inline x
option. x is the designation for the new character. The default prefix character (see page 323)
is \ (backslash).
For example, to change the prefix character to # (number sign), insert this command in the
data stream:
^prefix inline #
To change this prefix character on the command line, see -apci (Inline Text Control Command
Prefix Character) on page 100.
Command Reference
218
The -apci command line option or the ^prefix inline command can only be used to change the
default inline text control prefix character to another character in the following cases:
When an internal preamble that was not auto-generated by Output Designer is being used.
If you must pass the reserved inline text control prefix character in the data file with a dynamic
form that contains an internal auto-generated preamble, the only other way to make this work
would be to change the reserved character in the data file to some other character and then
change it back again once the inline commands have been executed. This can be done by
using Transformation Agent to change the reserved character and then using the JetKeys.ini
file to remap the character back to the reserved character before the data is written to the
output file.
varsub x
Format
^prefix varsub x
To change the prefix character that specifies a substitution variable created with a ^global or
^define command, use the varsub x option. x is the designation for the new character. The
default prefix character (see page 323) is an @ (at sign).
For example, to change the prefix character to # (number sign), insert this command in the
data stream:
^prefix varsub #
To change this prefix character on the command line, see -apcv (Variable Substitution Prefix
Character) on page 101.
Caution: If you are using dynamic templates created in version 5.2 or later of Output
Designer, we do not recommend that you change the variable substitution prefix
character. The preamble generated automatically by these products contains
references to many variables that are specified using the @ (at).
To save the current symbol set, include a ^pushsymbolset command in the data stream. This
is an easy way of saving the current symbol set prior to a symbol set change, so that you can
reinstate the original symbol set with a ^popsymbolset command (see page 207).
Command Reference
219
To define a fixed format record for fixed record processing, use the ^record command.
recname is the name of the record. fieldname is the field name defined in the template.
length is the length of the field in bytes.
position is the position of the data for the field in the record. Print Agent counts the first
character in the record as position 1, the second character as position 2, and so on. When you
do not specify position, Print Agent uses the length to determine the position in the
record.
For example, you could define this record layout for a purchase order detail line:
^record PO_DETAIL ITEM 04 01 QTY 04 05 DESC 14 09
For the first line of data, 0001 is the data for the ITEM field, 2 is the data for the QTY field, and
PENS, BLACK is the data for the DESC field of the first record. 0002 and 0003 are the data for
the ITEM fields in subsequent records, 100 and 12 are the data for the QTY fields, and FILE
FOLDERS and PENCILS are the data for the DESC fields.
To specify a field is a global field, place an * (asterisk) at the beginning of the field name.
For example, to treat the field ITEM in the following record structure as a global field, insert
these commands in the data stream:
^record PO_DETAIL
^continue *ITEM04 01
^continue UNIT_PRICE07 05
^continue TOTAL_PRICE11 12
Command Reference
220
To set the processing of newline characters in multiline fields, insert a ^reformat xxxx
command in the data stream. xxxx can be one of:
yes
no
fold
off
clip
trunc
For a complete description of the reformat options, see -r (Reformat Data) on page 139.
When you do not specify a value, ^reformat defaults to off.
The ^reformat command in the data stream overrides the -r option on the command line.
To have Print Agent invoke an operating system command while processing a transaction file,
include a ^shell command in the data stream.
For example, to extract a logo file from a zipped file on a Windows 2000 system, include these
commands in the data stream:
^shell c:\pk\pkunzip c:\logos\logos.zip mylogo.tif c:\logos
^graph mylogo.tif
^shell c:\winnt\system32\cmd.exe /c del c:\logos\mylogo.tif
When Print Agent encounters ^shell, it spawns the given command and waits until it finishes
running. If the command exits with an error status (or if the spawn fails), Print Agent prints an
error message but continues processing. If the spawned command hangs, Print Agent hangs.
The use of the ^shell command is governed by a setting called SecurityLevel in the [JetForm]
section of the Print Agent configuration file, jfmerge.ini. The value of SecurityLevel is an
integer. One (1), the default, deactivates ^shell. If ^shell is deactivated and Print Agent
encounters a ^shell command, it produces a security warning message, discards the ^shell
command, and continues processing.
For a list of the other facilities governed by the SecurityLevel setting, see Security
Considerations on page 62.
Command Reference
221
To place a subform page at the current position on the template page, insert a ^subform
command in the data stream.
For dynamic templates created with version 5.2 or later of Output Designer, use subformname
to identify the subform page name in the template.
For dynamic templates created with Output Designer 5.1 or earlier, use nn to identify the
subform page number in the template. In this case, the page must be compiled as a subform.
MDFname is the file name or URL for a template. When you specify a file name you may include
the full path specification. If you do not include the path and Print Agent was started with the
-afpformpath option (see page 82), it uses the formpath to assemble the complete file name or
URL. Print Agent also appends an .mdf extension to the name if no extension is given.
If the resulting full name starts with http:, Print Agent downloads the file from an HTTP server
using the full name as the URL. Otherwise, it opens the file within the file system.
MDFname is optional. When you do not specify MDFname, Print Agent takes the subform from
the current template.
For example:
^subform 2 newform.mdf
^subform 2
^subform dependents
When Print Agent places a subform, it does not execute a formfeed. It places the selected
subform relative to the current position. To change the current position, use the ^position or
^field command, explained earlier in this chapter.
Command Reference
222
- or ^symbolset unicode
^symbolset symset
To select a symbol set, include a ^symbolset command in the data stream. symset may be
one of:
A Windows ANSI or DOS OEM code page number supported by Print Agent (listed below).
Prefix the code page with ACP_ for ANSI code pages or OEMCP_ for OEM (DOS) code
pages.
A user-specified symbol set number. A numerical value in the range 200 through 254
inclusive is interpreted as a user-defined symbol set. Translations for this symbol set to any
other symbol set can be achieved with the jetkeys.ini file.
Print Agent attempts to translate the input data symbol set to the symbol set expected by the
printer. Translations can be redefined using the jetkeys.ini file (see page 304).
The defined symbol sets are listed below. Note that Thai, Hebrew, and Arabic code pages /
languages are listed for documentation completeness; however, the use of Thai, Hebrew, and
Arabic with Output Designer and Central is neither certified nor supported by Adobe.
Symbol Set
Set #
Set Name
Code Page
Number
Code Page
Type
Roman-8
ROMAN-8
not applicable
not applicable
PC-850
850
OEM
WINLATIN1
1252
ANSI
DEC Supplemental
DEC
not applicable
not applicable
Shift-Jis
10
SHIFT-JIS
932
ANSI
KSC5601-87
20
HANGEUL
949
ANSI
Big-Five
30
BIGFIVE
ANSI
GB2312-80
35
GB2312
936
ANSI
GBK
36
GBK
ANSI
37
MS-BIGFIVE
950
ANSI
Command Reference
223
Symbol Set
Set #
Set Name
Code Page
Number
Code Page
Type
EBCDIC
40
EBCDIC
not applicable
not applicable
EBCDIC
42
EBCDIC
not applicable
not applicable
Thai
50
Thai
874
ANSI
Windows Latin 2
60
WINLATIN2
1250
ANSI
Russian
61
Russian
1251
ANSI
Greek
63
Greek
1253
ANSI
Turkish
64
Turkish
1254
ANSI
Hebrew
65
Hebrew
1255
ANSI
Arabic
66
Arabic
1256
ANSI
Baltic
67
Baltic
1257
ANSI
Russian (DOS)
86
RUSSIAN_OEM
866
OEM
Some Microsoft Windows code pages correspond to more than one Asian symbol set, with
varying degrees of compatibility. For example, Traditional Chinese Microsoft Windows uses
code page 950, which is directly compatible with the Print Agent symbol set ACP_950; it is also
partially compatible with Big-Five. This partial compatibility is because the Microsoft code page
950 contains extensions to the character set that do not exist in Big-Five. A similar compatibility
issue applies to the GB2312-80, GBK and code page 936.
Symbol set numbers 10, 20, 30, 35, 36 and 37 require support for double byte character sets
(DBCS) in the output device or viewer.
The following shows examples of using the ^symbolset command:
To select the ANSI SHIFT-JIS code page, include this command in the data stream:
^symbolset ACP_932
To select the Windows ANSI symbol set, use any one of:
^symbolset WINLATIN1
^symbolset 5
^symbolset ACP_1252
To select the IBM PC-850 DOS symbol set, use any one of:
^symbolset 2
^symbolset PC-850
^symbolset OEMCP_850
Command Reference
224
^symbolset unicode
To select a Unicode transformation format, include a ^symbolset command in the data stream.
Unicode transformation formats are Unicode 2 based. unicode is the supported Unicode
format:
Unicode Format
Set #
Set Name
UNICODE_UTF8
108
UTF8
For example, to specify the UNICODE_UTF8 format, include one of these commands in the
data stream:
^symbolset 108
^symbolset UTF8
Print Agent attempts to translate the input data format to the format expected by the printer.
Translations can be redefined or added using the jetkeys.ini file (see page 304). Print Agent
includes translation tables for translations between Unicode and:
Symbol Set
Set #
Roman-8
PC-850
DEC Supplemental
Shift-Jis
10
KSC5601-87
20
Big-Five
30
GB2312-80
35
ANSI CP 950
37
Windows Latin 2
60
Russian
61
Greek
63
Turkish
64
Baltic
67
Caution: When Print Agent is started with the -autf8on option (see page 126), mixing symbol
sets is not a problem. However, when started with the -autf8off option, be careful
when mixing symbol sets. In this case, Print Agent does not keep track of the
symbol set that was in use when a global field was filled. It applies the current
symbol set at the moment it prints the field. Similarly, when substituting a variable, it
applies the current symbol set to the content of the variable.
Command Reference
225
To set or clear horizontal tab stops, use the ^tab command. Tabs are processed only when field
justification is left, that is left top, left middle or left bottom. For other field justifications, spaces
replace tabs.
A ^tab command must precede any text for a field:
^field memo
^tab -.5
text
text
text
[default]
Format
^tab [default] n[n] [units]
To specify the position of horizontal tab stops, use the [default] option. n identifies the
positions of the tabs stops in the specified units.
units can be one of:
Dots
cm (centimeter)
in (inch)
The default unit is dots. The size of a dot varies based on your printer configuration file. The
measurements are always relative to the current field position.
Tab stops can be set either in the current field, or if the command includes the default
keyword, the settings become the default tab settings for the current Print Agent session. In this
way, you can provide default settings with the ability to easily override them within the context of
a field. Settings placed within the current field automatically clear when Print Agent exits the
field.
For example, to set tab stops at 1, 3 and 5 inches, place this command in the data stream:
^tab default 1 3 5 in
Command Reference
226
sets tab stops at a repeating interval every quarter inch. Note that you cannot mix positive and
negative tab values.
[default] clear
Format
^tab [default] clear
To clear tab stops, use the [default] clear option. When the command specifies the default
keyword, Print Agent removes all tab settings for the current session and reinstates the default
tab stops, which are tabs every 0.5 inches.
^tab default clear
When the command does not specify the default keyword, only tab settings defined in the
current field are removed, and any default tab settings for the field are reinstated.
^tab clear
To change the alternate newline character (see page 324), that is, the character used to end a
line in a multiline field or to end a single line field, insert a ^terminator command in the data
stream. The default alternate newline character is a ~ (tilde) character.
For example, to change the alternate newline character to # (number sign) character, use this
command:
^terminator #
For another method of changing the alternate newline character, see -anl (Alternate Newline
Character) on page 97.
Command Reference
227
To pass text to the log file, insert a ^trace command in the data stream. Print Agent sends the
output directly to the log file; it does not print. text can be any word or phrase.
You use the ^trace command for debugging.
For example:
^trace This text appears in the log file.
Note: To direct the output from the ^trace command to a file other than the log file, start Print
Agent with the -atf command line option (see page 119).
A ^trace command will write trace messages to the log file or to a specified file only if
you start Print Agent with the -v0 command line option (see page 152).
To print from a specific input paper tray, insert a ^trayin command in the data stream. Note that
changing paper trays while printing in duplex ejects the current page; data originally destined to
print on the reverse of this page now prints on a physically new sheet.
For surface specific processing, see \checksurface (Duplex Mode and Surface) on page 257
and $duplexsurface (Duplex Mode and Surface) on page 284.
traynum is the input tray number. By default, if the template is compiled with version 5.3 or
later of Output Designer, traynum is a Print Agent universal input tray number. This is a
printer-independent identifier. Print Agent translates the Print Agent input tray number into the
number assigned to the printer tray by the printer manufacturer. For example, for HP LaserJet
printers, the multi-purpose tray is physically labelled 1, but to select this tray it is necessary to
command the printer to select tray 8 in PCL 5 or tray 3 in PostScript. To select the tray
labelled Tray 1, regardless of whether the template is compiled for PCL 5 or PostScript,
include the following command in your data stream:
^trayin 1
Refer to the documentation provided with your printer for the manufacturers paper tray
numbering.
Command Reference
228
HP tray 2
HP tray 3
Envelope tray
Auto select
Manual feed
20 through 59
Large capacity trays 1 through 40. For example, Print Agent tray
23 is large capacity tray 4.
100
Middle tray
101
Tractor feed
102
103
PostScript tray 1 through 20. For example, Print Agent tray 217 is
PostScript tray 17.
External trays 1 through 20. For example, Print Agent tray 311 is
external tray 11.
401
Upper tray
402
Lower tray
403
404
Multi-purpose tray
405
Label stock
traynum may specify a tray that is not available on the printer. When this happens, Print Agent
selects the next-best tray. The template (compiled with version 5.3 or later of Output Designer)
contains a prioritized list of alternate input trays. For Print Agent presentment targets, the
template also tells Print Agent what input trays are available. For Windows printer drivers, Print
Agent queries the Windows driver to obtain the list of available input trays.
Command Reference
229
Print Agent checks whether the printer has a small-format input tray available. Finding it is not
available, it looks up the list of alternate input trays in the template. Suppose the list contains, in
order, 401, 402, 20, and 0. This causes Print Agent to try, in turn, the upper tray (401), the lower
tray (402), and the large capacity tray (20). If none of these are available, it falls back to the
current tray (0), that is, it does not issue an input tray selection command to the printer.
The template designer can change the list of alternate trays. The template designer can also
compile the template with a setting that causes Print Agent to treat input tray numbers as printer
tray numbers, that is, pass them through unaltered to the printer. You can override both the
default behavior and the template designers setting using the -atj command line option (see
page 124).
When printing from an older (pre-5.3) template, Print Agent always interprets traynum as a
printer tray number. To change this behavior, you must recompile the template with version 5.3
or later of Output Designer.
Note:
When the template is compiled for a PCL presentment target and the requested tray
contains paper of the size compiled into the template, that input tray will be selected.
However, if the requested tray does not contain paper of the correct size, the printer
will attempt to print from a tray containing paper that matches.
When the template is compiled for a PostScript presentment target, the printer will
attempt to print from the tray referenced in the ^trayin command.
Regardless of the presentment target, when the manual feed tray contains paper, the
printer will attempt to print from the manual feed tray.
ptrstring is the printer command string for the input paper tray, as set by the printer
manufacturer. It must be preceded by an * (asterisk). It is not interpreted by Print Agent, but
sent directly to the printer. It may not contain newline characters or other characters that are
special to Print Agent. For example, to select a paper tray designated by the printer
manufacturer with a printer command string of 6 setpapertray, use this command:
^trayin *6 setpapertray
Windows printer drivers do not support the use of *ptrstring with ^trayin.
encoded-ptrstring is the printer command string, but potentially with some or all characters
encoded, as described in the Appendix Numeric Character Values on page 319. It must be
preceded by a + (plus). For example, to select a paper tray designated by the printer
manufacturer with a printer command string of <Esc> (the escape character) followed by
&l4H, use this command:
^trayin +\027&l4H
Windows printer drivers do not support the use of +encoded-ptrstring with ^trayin.
Command Reference
230
To direct the printed output to a specific output paper tray, insert a ^trayout command in the
data stream. Note that changing paper trays while printing in duplex ejects the current page;
data originally destined to print on the reverse of this page now prints on a physically new
sheet.
For surface specific processing, see \checksurface (Duplex Mode and Surface) on page 257
and $duplexsurface (Duplex Mode and Surface) on page 284.
traynum is the number of the output tray, as set by the printer manufacturer. For example, to
select an output paper tray designated by the manufacturer as tray 4, use the following
command:
^trayout 4
Refer to the documentation provided with your printer for the manufacturers paper tray
numbering.
ptrstring is the printer command string for the output paper tray, as set by the printer
manufacturer. It must be preceded by an * (asterisk). It is not interpreted by Print Agent, but
sent directly to the printer. It may not contain newline characters or other characters that are
special to Print Agent. For example, to select a paper tray designated by the printer
manufacturer with a printer command string of 4 setpagedevice, use this command:
^trayout *4 setpagedevice
encoded-ptrstring is the printer command string, but potentially with some or all characters
encoded, as described in the Appendix Numeric Character Values on page 319. It must be
preceded by a + (plus). For example, to select a paper tray designated by the printer
manufacturer with a printer command string of <Esc> (the escape character) followed by
&l4G, use this command:
^trayout +\027&l4G
Command Reference
231
The ^undefine command clears a defined variable. When a dictionary name appears without a
variable name, the ^undefine command clears the entire dictionary. When a variable name
appears without a dictionary name, the ^undefine command clears the variable from the User
dictionary. When the ^undefine command is supplied without parameters, all variables are
cleared from the User dictionary.
For example:
^undefine manager
- or ^undefine
To change the current page number for $PAGE fields, use the ^$page command in the data
stream. nn is the page number to change to.
$PAGE is an Output Designer special field name that Print Agent fills automatically during
processing.
Command Reference
232
When a numeric field has a picture clause assigned in Output Designer, using Inline Text
Control commands in the data stream will not alter the appearance of the field in the output.
You must activate the processing of Inline Text Control commands for Print Agent to process
the commands. You can activate Inline Text Control processing in two ways:
Within the data stream or a preamble file by using the ^inline {on|off} command
Syntax
A \ (backslash) character prefixes Inline Text Control commands. This prefix is the command
character that enables Print Agent to distinguish a command from data.
You can set the prefix character to any other single character. Regardless of the character set
as the prefix, there are occasions for using this character as data instead of at the beginning of
an Inline Text Control command. Print Agent interprets two prefix characters together as a
single character of data, and not as the start of an Inline Text Control command.
For example, to print the current Inline Text Control prefix character as part of the data, use:
The current Inline Text Control prefix character is \\.
To change the prefix character, see inline x on page 217 and -apci (Inline Text Control
Command Prefix Character) on page 100.
Inline Text Control commands appear directly inside (inline) the data for a field. To enable Print
Agent to distinguish between data and commands, you must delimit the command with one of
the following:
Space
Period
Command Reference
233
The use of a . (period) is the recommended method of delimiting Inline Text Control
commands. A space or newline will delimit the Inline Text Control command but the space or
newline character will also be retained.
This example shows text improperly delimited:
You \bmust\b0 \ulwdelimit
\b\ul.Inline\b0\ul0 Text
\b.Control commands\b0.
Print Agent reads the command in front of the word must as \bmust, and not as a
command to bold the word must. Because there is no delimiter after the \b and no
command \bmust, Print Agent ignores the command.
Print Agent reads the command to underline the word delimit as \ulwdelimit and because
there is no delimiter after \ulw, ignores the command.
Print Agent uses the space between the command \ul0 and the word Text to delimit the
\ul0 command. Be aware that if you use a space to delimit a command, Print Agent prints
the space. One space will both delimit and print.
Print Agent uses the period after the \b0 command following the word commands to
delimit the command. When you use a period to delimit a command and also want to leave a
period at the end of the word, you require two periods.
Command Reference
234
The following syntax rules apply when using Inline Text Control commands:
is specified as:
\fieldITEM
Square brackets in the command format indicate the text is optional. When the user provides
no optional text, Print Agent uses the default option for that command.
For example, the command:
\dn[points]
is specified as:
\dn3
- or \dn
is specified as:
\fn"Times New Roman"
Separate multiple options with a comma. There is no comma between the command and the
first option.
For example, the command:
\positionoptions
is specified as:
\positionabsolute,"8.5",15,cm
A comma shown within the square bracket in the command format indicates a comma must
separate the arguments.
For example, the command:
\page{name|num}[,options]
is specified as:
\page3,duplex,long
Command Reference
235
To set bold on for the currently selected font, use the \b command. All text appears in bold until
you issue the command \b0. to set bold off.
For templates compiled with Output Designer versions earlier than 5.3, this command works
only if the template contains an instance of the currently selected font with the bold attribute.
For templates compiled with Output Designer version 5.3 or later, this restriction no longer
applies.
For example:
This \b.word\b0. appears in a bold type.
results in:
This word appears in a bold type.
To select a color by index number, use the \c command. n is the index number of a color in the
Output Designer palette. Use the Report with Fields command in version 5.1 or later of Output
Designer for a list of the color index numbers for a template.
In the example,
You owe us \c2.$2,000.00 \c1.by the end of the month.
You owe us appears in the field color set in Output Designer, $2,000.00 appears in red, and
by the end of the month. appears in black.
You can also show the example as:
You owe us \c2.$2,000.00 \cndefault.by the end of the month.
The selected color remains in effect until you change it with either a \c or \cn command, or until
Print Agent activates another field and the field attribute default remains unchanged. Print
Agent resets all field attributes to those of the new field when it encounters a ^field command.
Including either the -afroff option (see page 84) on the command line or the ^inline option
nofreset (see page 201) in the data stream causes Print Agent to ignore the resetting of field
attributes when it encounters a ^field command.
The command \cndefault causes the color to default to the field color set in Output Designer.
Command Reference
236
This file is located in the \Config folder in the directory where Output Designer is installed.
- or \cndefault
To select a color by name, use the \cn command. name is the name of a color in the Output
Designer palette. Use the Report with Fields command in version 5.1 or later of Output
Designer for a list of the palette colors for a template. The option default restores the color of
the data back to the field color set in Output Designer.
In the example,
You owe us \cnred.$2,000.00 \cndefault.by the end of the month.
You owe us appears in the field color set in Output Designer, $2,000.00 appears in red, and
by the end of the month. appears in the field color set in Output Designer.
The selected color remains in effect until you change it with either a \c or \cn command, or until
Print Agent activates another field and the field attribute default remains unchanged. Print
Agent resets all field attributes to those of the new field when it encounters a ^field command.
Including either the -afroff option (see page 84) on the command line or the ^inline option
nofreset (see page 201) in the data stream causes Print Agent to ignore the resetting of field
attributes when it encounters a ^field command.
This file is located in the \Config folder in the directory where Output Designer is installed.
Command Reference
237
To lower or subscript text relative to the baseline, use the \dn command. The baseline is an
imaginary horizontal line directly beneath the line of text. points is the number of points to
lower the text, relative to the baseline. The default is 3 points. This command does not affect
the size of the current font, only its position on the line. All text appears lowered until you issue
the command \dn0. to return to the baseline.
For example:
This \dn.word\dn0. shifts down by 3 points and \dn6.these words\dn0.
shift down by 6 points.
results in:
This word shifts down by 3 points and
shift down by 6 points.
these words
To select a font by index number from the internal font list contained within the template, use the
\f command. Use the Report with Fields command in version 5.1 or later of Output Designer
for a list of the font index numbers for a template.
Print Agent selects a font in its default point size, as determined by the template designer at
template creation time. Font 0 (zero) equates to the NOPRINT font. Specifying font 0 does not
print the subsequent data; instead, Print Agent leaves a blank space equal to the length of the
data. The NOPRINT font is a twelve point/ten pitch font.
For example:
\f1.These words are in font 1 and \f0.these words are in font 0 and\f1.
these words are in font 1 again.
results in:
These words are in font 1 and
are in font 1 again.
these words
When you change fonts within text, the attributes for the font are set off. Attributes include
subscript, superscript, bold, italics and underline.
Command Reference
238
To select a font by name from the internal font list contained within the template, use the \fn
command. font-name must match, except for case, a font name compiled into the template.
Enclose the font name in quotation marks in cases where the font name contains spaces or
non-alphanumeric characters.
For example:
\fn"Times New Roman".This sentence is in the Times New Roman typeface.
results in:
This sentence is in the Times New Roman typeface.
The selected font remains in effect until you change it with either a \f or a \fn command, or until
Print Agent activates another field and the field attribute default remains unchanged. Print
Agent resets all field attributes to those of the new field when it encounters a ^field command.
Including either the -afroff option (see page 84) on the command line or the ^inline option
nofreset (see page 201) in the data stream causes Print Agent to ignore the resetting of field
attributes when it encounters a ^field command.
When you change fonts within text, the style attributes for the font are disabled. Style attributes
include subscript, superscript, bold, italics and underline.
To reset all field attributes to those of the new field, use the \freset command. This means that
when Print Agent encounters a ^field command and moves into the new field, it drops the field
attributes of the previous field and adopts the field attributes of the new field. This is the default.
Field attributes include font, indentation, tab settings, and sub/superscripting.
For retaining the field attributes of the previous field, see \nofreset (Retain Field Attributes) on
page 241.
For another method of defining field reset values, see the [freset|nofreset] options of the
command, ^inline (Activate Inline Text Control Processing) on page 199. When a field
contains conflicting field reset values, that is, defined with both the \freset command and with
the nofreset option of the ^inline command, the \freset command takes precedence.
Command Reference
239
To change the point size of the current typeface, use the \fs command. You express the font
size in decipoints. The decipoints unit enables you to select a size in tenths of a point as a
whole number. For example, 10.5 point becomes 105 decipoints.
For templates compiled with Output Designer versions earlier than 5.3, this command works
only if the template contains an instance of the point size for the desired typeface. For
templates compiled with Output Designer version 5.3 or later, this restriction no longer applies
for scalable fonts. For non-scaleable fonts the restriction still applies - the template must contain
an instance of the point size for the desired typeface.
For example:
This \fs160.word\fs95. appears in 16 point type which is 160 decipoints,
and the balance of the sentence appears in 9.5 point type which is 95
decipoints.
results in:
This word appears in 16 point type, which is 160 decipoints, and the
balance of the sentence appears in 9.5 point type which is 95 decipoints.
To set italics for the currently selected font, use the \i command. All text appears in italics until
you issue the command \i0. to set italics off.
For templates compiled with Output Designer versions earlier than 5.3, this command works
only if the template contains an instance of the desired font with the italics attribute. For
templates compiled with Output Designer version 5.3 or later, this restriction no longer applies.
For example:
This \i.word\i0. appears in italics.
results in:
This word appears in italics.
Command Reference
240
To indent the left margin to the next tab stop, use the \li command. Repeat the command to
indent multiple tab stops. All text appears left indented until you issue the command \li0. to set
indenting off. When indenting is set off, succeeding text appears at the fields left margin.
For example:
\li.These lines appear indented until you disable indenting by issuing
\li0. the command to set indenting off.
results in:
These lines appear indented until you
disable indenting by issuing
the command to set indenting off.
When you specify the command within the text, Print Agent supports hanging indents.
For example:
The left margin \li.indents at the command and, until you disable
indenting by issuing the command to set indenting off, Print Agent
\li0.supports hanging indents.
results in:
The left margin
indents at the command and, until you
disable indenting by issuing the command
that sets indenting off, Print Agent
supports hanging indents.
To insert a newline character in the data stream, use the \n command. The text breaks at the \n
command and text following the command starts printing on a new line.
For example:
Use this command to insert a \n.new line.
results in:
Use this command to insert a
new line.
Command Reference
241
To retain the field attributes of the previous field, use the \nofreset command. This means that
when Print Agent encounters a ^field command and moves into the new field, it applies the
field attributes of the previous field to the new field. Field attributes include font, indentation, tab
settings, and sub/superscripting.
The exception to \nofreset processing is the first field encountered by Print Agent. The font of
that field establishes the initial font.
For resetting the field attributes to those of the new field, see \freset (Reset Field Attributes)
on page 238.
For another method of defining field reset values, see the [freset|nofreset] options of the
command, ^inline (Activate Inline Text Control Processing) on page 199. When a field
contains conflicting field reset values, that is, defined with both the \nofreset command and
with the freset option of the ^inline command, the \nofreset command takes precedence.
To set style attributes off, use the \normal command. Style attributes include subscript,
superscript, bold, italics and underline.
For example:
\b\ul.This is bold and underlined,\normal and this is not.
results in:
This is bold and underlined, and this is not.
To suspend the processing of Inline Text Control commands, use the \off command. Processing
remains suspended until Print Agent encounters a \on command.
Command Reference
242
To resume the processing of Inline Text Control commands, use the \on command. This
command resumes processing previously suspended with the \off command, but only if either
^inline on or -aitcon is already in effect. When either ^inline on or -aitcon is not in effect, Print
Agent does not recognize the \on command, but interprets it as data and prints it literally.
- or \pic "daten",data
To implement picture formatting for a data string, use the \pic command. This command places
the formatted result back into the data stream.
Caution: The \pic command is intended to apply picture formatting to a particular data string,
which may possibly exist within a larger data string. You can also apply picture
formatting at the field level, by including a picture clause in the template at design
time. Use caution when mixing both \pic commands and picture clauses. When a
template field contains a picture clause and a \pic command is also provided in the
data stream, unpredictable results may occur.
\pic[format-specifier][[currency-ind]]picture-specifier,data
format-specifier is optional, and can be one of:
Specifier
Description
datejf
date
datexpg
datejx
timejf
Command Reference
Specifier
Description
time
timexpg
timejx
num
numeric format
243
The date and time specifiers are provided for compatibility with older versions of Print Agent.
It is recommended that you use datejf and timejf instead. If you use date, you must ensure
that the picture specifier does not start with a digit. Otherwise Print Agent interprets the specifier
as including the digit, that is, as a daten specifier.
[currency-ind] is optional and is a string enclosed in [ ] (square brackets). The string is
from the Print Agent configuration file, and is the text following Currency_ in the currency
section name. For example, to use the currency section from the configuration file with the
name:
[Currency_FFR]
the currency indicator element for the \pic command is [FFR]. The currency indicator element
must be coded at the beginning of the picture clause, following the format specifier. For
example,
\pic"num[FFR]zz,zz9.99","1234.56"
When Print Agent is processing a data file and encounters a picture clause, it uses the currency
indicator element to look up values in the referenced currency section in its configuration file. If
the referenced currency section does not exist, or if the \pic command does not contain a
currency indicator element, Print Agent formats the data using the default currency characters
from its configuration file [Special] section.
picture-specifier can be:
One or more of the allowable picture specifiers in the Date and Time Picture Specifiers
table on page 245.
One or more of the allowable picture specifiers in the Numeric Picture Specifiers table on
page 248.
One or more of the allowable picture specifiers in the Text Picture Specifiers table on
page 250.
Command Reference
244
data is the data to be formatted using the picture clause. When the format-specifier is a
time, data must be a 24-hour time expressed as hhmmss (for example 174502). When the
format-specifier is a date, data must be an eight-digit date expressed as mmddyyyy (for
example 02272000) or a six-digit date expressed as mmddyy (for example 022700).
Six-digit dates supply only the last two digits of the year, so the century is ambiguous. When
Print Agent is interpreting a six-digit date, it uses the -acs option (see page 69) to decide what
century the date refers to. For example, by default 022700 is interpreted as February 27th,
1900 but with -acs20 it is interpreted as February 27th, 2000. However this only works when
the format-specifier tells it to interpret data as a date. Also, -acs has no effect upon the
number of digits with which the year is printed - this is determined solely by the picture clause.
We strongly recommend that you use eight-digit dates whenever possible.
When you want characters that Print Agent normally views as picture specifiers to print literally,
precede each character with a \ (backslash).
For example Print Agent prints:
MM
In this example, the backslash protects the data from being interpreted as part of the picture
clause. When Print Agent encounters the backslash, it discards it and prints the data following
as provided.
\picdaten,data
daten is an allowable date format from the Date Format table on page 247.
data is the data that Print Agent formats and must appear in the data stream in one of the
allowable input formats - mmddyy or mmddyyyy.
Note: daten can be specified for a field in Output Designer. For details, see the Output
Designer Help topic Add the system date to a template design. Enter the picture
clause in the Picture attribute in the Format Field dialog box. For details, see the Output
Designer Help topic Picture clauses.
The \pic command works regardless of whether you set picture formatting on with the -apfon
command line option (see page 111).
Command Reference
245
XPG
Date and Time
Formats
Description
DD
%d
DDD
%a
DDDD
%A
MM
%m
MMM
%b
MMMM
%B
YY
%y
YYYY
%Y
hh
%I
HH
%H
mm
%M
minutes
ss
%S
seconds
XM
%p
the am or pm designator
WKS
%U
WKM
%W
JJJ
%j
TZ
%Z
MM/DD/YY hh:mm: XM
%c
MM/DD/YY
%x
US-English date
hh:mm: XM
%X
US-English time
no equivalent Print
Agent format
%w
%%
Note: When using the above date specifiers, Print Agent produces English month names
regardless of your systems locale setting. For non-English or bilingual applications, see
Date Formats on page 247.
Command Reference
246
This is an example of a Print Agent date and time format in the data stream:
Invoice Date: \pic"datejfDDDD MMMM DD, YYYY",122900.
This is an example of a XPG date and time format in the data stream:
Invoice Date: \pic"datexpg%A %B %d, %Y",122900.
This is an example of a combined Print Agent/XPG date and time format in the data stream:
Invoice Date: \pic"datejx%A MMMM DD, %Y",122900.
In each of these examples, Print Agent accepts data as 122900. Print Agent also accepts
the substitution variable @$date0 (see page 283), which returns the date in the same format.
For example:
Invoice Date: \pic"dateDDDD MMMM DD, YYYY",@$date0.
You can also add the substitution variable @$timen (see page 289) to the above example, so
that the result includes the current time, as well as the current date. For example:
Invoice Date: \pic"dateDDDD MMMM DD, YYYY",@$date0., \pic"datehh:mm XM",@$time7.
results in:
Invoice Date: Friday December 29, 2000, 09:55 AM
Use caution with the \pic command. Print Agent interprets the command exactly as provided.
When you want spaces in your date and time pictures, ensure that you include them.
For example, if a Print Agent date and time format in the data stream appears:
Invoice Date: \pic"datejfDDDDMMMMDD,YYYY",122900.
Command Reference
247
Date Formats
This table shows the allowable date formats when using daten:
Date Format
Output Format
Example
date0
mmddyy
122900
date1
yymmdd
001229
date2
mm/dd/yy
12/29/00
date3
mm-dd-yy
12-29-00
date4
date5
date6
dd Mmm yy
29 Dec 00
date7
dd Mmm yyyy
29 Dec 2000
date8
dd/mm/yy
29/12/00
date9
dd-mm-yy
29-12-00
date10
dc 29, 2000
date11
date12
dd mmmm yy
29 dc 00
date13
dd mmmm yyyy
29 dc 2000
date14
dd m..m yyyy
29 dcembre 2000
date15
yy/mm/dd
00/12/29
date16
mm.dd.yy
12.29.00
date17
dd.mm.yy
29.12.00
date18
yy.mm.dd
00.12.29
date19
dd.mm.yyyy
29.12.2000
date20
mm/dd/yyyy
12/29/2000
date21
yyyy-mm-dd
2000-12-29
date22
mmddyyyy
12292000
date23
mmddyy
122900
date27
dd/mm/yyyy
29/12/2000
The values for date4 to date7 inclusive use Language 1 and the values for date10 to date14
inclusive use Language 2. The Language values are taken from the [MonthNames] section of
the Print Agent configuration file, jfmerge.ini. Your systems locale setting has no effect on
Language values.
Command Reference
248
Description
()
CR
DB
where leading zeros before the decimal point are suppressed. A zero value prints nothing at all.
$,$$9.99
where leading zeros are suppressed and with the currency symbol preceding the value. The
9.99 prints at least one digit with 2 decimal places, even if zero.
$,$$9.99-
which prints as above, except negative numbers print with the - (minus sign) character on the
right instead of the left.
($,$$9.99)
Command Reference
249
Note: Inline Text Control commands can be terminated by a . (period). When the data for a
picture clause contains a period, be sure to place quotation marks around the data. For
example:
\pic"num99,999.99","23441.00".
results in
23,441.00
Quotation marks are required even when the period is introduced by a variable
substitution or calculation. For example,
^define global:total 53134.97
...\picnum"99,999.99","@total ".
results in
53,134.97
As explained in the Date and Time Picture Specifiers, use caution with the \pic command. Print
Agent interprets the command exactly as provided. With numeric pictures, Print Agent treats a
blank between the format specifier and the picture clause as a 9, causing a leading zero to
appear in the space. Print Agent treats an invalid character as a 9. If the data has more digits
to the right of the decimal point than the picture clause specifies, the least significant digits are
rounded to the precision of the picture clause. However, if the data has more digits to the left of
the decimal point than the picture clause specifies, an overflow occurs. Print Agent places the
most significant digits of the data immediately to the left of the digits accounted for by the
picture clause. For example,
\pic"num9,999.99","1234567.899"
results in:
1234,567.90
As well, there is a floating point limit that will vary depending on your platform. This floating
point limit may result in rounding up or down, depending on how many digits you are passing to
the picture clause.
Command Reference
250
Description
any character
which displays an alphanumeric field of four places, converting the first character to uppercase.
Note: Text conversion to upper or lower case characters can handle accented characters.
However, the printer symbol set must be Roman-8 and the UTF8 text conversion option
must be false (-autf8off). Otherwise, the data must be restricted to printable ASCII.
Take care when creating a text picture for a field. If the picture specifies fewer characters than
are present in the data, the trailing characters from the data are thrown away. For example,
inside a field that has not been defined in Output Designer as a numeric field,
\pic"9,999.99","1234567.899"
results in
1,234.56
This also illustrates the difference between numeric and text picture specifiers. To a text picture
specifier, the data is a string of individual characters (which may be digits), not a number.
Command Reference
251
The picture clause will not be processed. It will fail because it tries to format the inline
command.
However, the picture clause will be processed if it is defined using the \pic command:
^define group:ITEM_Cost!Format
\pic"numZZZ,ZZ9.99","@_$_.".\defineresolveglobal:Total_Amount,"@(@global:
Total_Amount. +@_$_.).".
Advanced Functions
You can use the \pic command with variable substitution and other Inline Text Control
commands. When you do, you must precede all Inline Text Control commands, except \pic,
with two backslashes instead of one. As explained earlier, a backslash within a picture clause
has the effect of protecting the character following it. Print Agent discards this backslash as it
processes the data. When you provide two backslashes, Print Agent discards the first
backslash and then recognizes the second backslash as the prefix character for an Inline Text
Control command.
For example:
^DEFINE datefmt "datejf\\push\\fs160DDDD, MMMM DD, YYYY\\pop"
Due Date:\pic@user:datefmt.,12292000.
No extensions will be granted.
results in:
Due Date: Friday, December
No extensions will be granted.
29, 2000
Command Reference
252
To change the current font and attributes to the default font set for the field by the template
designer, use the \plain command.
For example:
\fn"Times New Roman".This sentence is in Times New Roman typeface
and\plain. this is not.
results in:
This sentence is in the Times New Roman typeface and this is not.
To restore the most recently saved font, use the \pop command. You save the font with the
\push command. Including the all option restores all saved fonts in effect prior to any \push
commands.
For example:
This is Times New Roman and \push\fnArial\fs110.this is Airal\pop. and
this is Times New Roman again.
results in:
This is Times New Roman and this is Arial and this is Times New Roman again.
To save the current typeface, style (including underline), and baseline offset, use the \push
command. This is an easy way of saving the current font prior to a font change so that you can
reinstate the original font with a \pop command.
Command Reference
253
For example:
This is Times New Roman and \push\fnArial\fs100.this is Arial, 10 point
and \fs140.this is Arial, 14 point \pop. and this is Times New Roman
again.
results in:
This is Times New Roman and this is Arial, 10 point and this
New Roman again.
To set strikethrough on for the currently selected font, use the \strike command. All text
appears with strikethrough characters until you issue the command \strike0. to set
strikethrough off.
For example:
\strike.This text includes strikethrough characters,\strike0. and this
text does not.
results in:
This text includes strikethrough characters, and this text does not.
To move to the next tab stop, use the \t command. Repeat the command to move multiple tab
stops. This is an alternative to embedding an ASCII decimal 9 (tab) in the data stream to
signify a move to the next tab stop.
For example:
Item\t.Quantity\t\t.Units
1001\t.
12\t\t.EACH
results in:
Item
1001
Quantity
12
Units
EACH
For setting tab stops, see ^tab (Set or Clear Horizontal Tab Stops) on page 225.
Command Reference
254
To insert a Unicode code point into the data stream, use the \u+ command. This is useful for
including a character in the data that is not available on the keyboard.
codepoint is the hexadecimal number used to represent a character. A complete listing of
Unicode code points is available from the Unicode Web site at www.unicode.org.
For example:
The Euro sign, \u+20AC, is the currency sign for the European Monetary
Union.
results in:
The Euro sign, , is the currency sign for the European Monetary Union.
Note: With -autf8on, all incoming data is converted to the Unicode format UTF-8 before
processing occurs. This is the default. When running Print Agent with -autf8off and
using the \u+ option, the code point must fall within the current field symbol set.
To unindent the left margin to the previous tab stop, use the \ui command. Repeat the
command to unindent multiple tab stops.
For example:
All lines following the indent
\li\li\li.command indent three tab stops. To \ui\ui.unindent two tab
stops, use the unindent command.
results in:
All lines following the indent
command indent three tab stops. To
unindent two tab stops, use the unindent command.
Command Reference
255
To set underlining on for the currently selected font, use the \ul command. To set underlining
off, use the \ul0. command. The w option enables word underlining. The db option enables
double underlining.
For example:
\ul.This text shows single underlining,\ul0. \uldb.this text shows
double underlining\ul0. and \ulw.this text shows word underlining\ul0..
results in:
This text shows single underlining, this text shows double underlining
and this text shows word underlining.
To raise text relative to the baseline, use the \up command. The baseline is an imaginary
horizontal line directly beneath the line of text. points is the number of points to raise the text,
relative to the baseline. The default is 3 points. This command does not affect the size of the
current font, only its position on the line. All text appears raised until you issue the \up0.
command to return the text to the baseline.
For example:
This \up.word\up0. shifts up by 3 points and \up6.these words\up0. shift
up by 6 points.
Command Reference
256
The . (period) at the end of the command string delimits the last command in the string.
Individual commands within the string, such as \page2 are delimited by the next Intelligent
Pagination command, in this case with \fieldPOSITION2.
Print Agent interprets Intelligent Pagination commands that are inline to the ^define commands
as though they are embedded within the data stream, even though the ^define commands
normally appear at the top of the data stream. When an event triggers the execution of a field or
group event handler, the Intelligent Pagination commands execute at that point in the data
stream where Print Agent is currently processing.
Some of the Intelligent Pagination commands, when not delimited at the end of the ^define
command string, interpret data from the data stream as part of the command, effectively
causing Print Agent to drop that data from the printed output. In addition, other delimiters, such
as a space, cause Print Agent to use the space as a delimiter and also print the space. This
may not produce the desired output. Therefore, we recommend that you delimit each ^define
command string that uses Intelligent Pagination commands with a . (period).
Command Reference
257
To check which surface of a page is currently printing, use the \checksurface command.
\checksurface detects the current print surface and causes a group event handler to activate.
Depending upon the actual surface, the event handler is one of:
Event Handler
Execution Circumstance
DuplexFront
(see page 309)
Executes when Print Agent is operating in duplex mode and the current
print surface is a page front.
!DuplexBack
(see page 309)
Executes when Print Agent is operating in duplex mode and the current
print surface is a page back.
!Simplex
(see page 312)
A typical use for \checksurface is to force the printer to switch to a new front page when
printing in duplex mode, by conditionally inserting a blank surface on the back of the current
page. For example:
^define group:SECTION \checksurface\page1\fieldPOS
^define group:SECTION!DuplexFront \page3
Here the group SECTION uses the \checksurface command to determine the current duplex
surface. The event handler for the !DuplexFront event activates when the current print surface
is a front page. The event handler inserts page 3 from the current template as a filler surface on
the back before moving to page 1 on the next front surface. As a result, the new page 1 will be
on a duplex front surface, regardless of whether the previous page was a front or a back
surface. The filler surface may be entirely blank, contain static text, such as This page
intentionally left blank, or contain fields which are filled by global definitions active at the time
\checksurface is used. It may also contain a dummy field that can trigger a !FieldNotAvail
event specific to the insertion. In any case, Intelligent Pagination commands directly
referencing fields on that page should not be depended on, because the page is only
conditionally inserted.
For another method of performing surface specific processing, see $duplexsurface (Duplex
Mode and Surface) on page 284.
Command Reference
258
Use \defineresolve to assign a value to a dictionary variable. Variable substitution occurs even
as the variable is being defined, let alone when it is being used.
dictionary-name: is the name of one of the Print Agent dictionaries. You must include the :
(colon) after the dictionary name. Likewise, if you supply a colon, you must supply a dictionary
name. When you do not specify a dictionary, the default is the User dictionary.
variable-name is the variable name.
value is the value to assign to the variable. Typically, value references substitution variables
such as calculation expressions (see page 292). If value contains spaces, decimal points, or
if it requires more than one line, enclose it in (quotation marks). When value contains a
decimal point that is not enclosed in quotation marks, the decimal point will be treated as a
delimiter, rather than as a decimal point.
Note: If value just contains (quotation marks) but with no actual value contained within
the quotation marks, the first quotation mark is treated as an escape character and the
literal is then stored as the value.
Use a . (period) to delimit this command.
When Print Agent processes the expression for an event handler that contains both inline text
commands and calculation expressions, all of the substitution for the calculation expressions is
evaluated before any of the inline commands are processed. For example:
\defineresolveglobal:Amount,@(@Amount.+1).\defineresolveglobal:Tax,@(@
Amount.*2).
If on entry Amount is 7, then @Amount in both expressions will resolve to 7. The value stored for
Amount is 8 and the value stored for Tax is 14.
To perform sequential execution of the calculation expressions, you can define separate event
handlers. For example:
^define group:!IncrementAmount
\defineresolveglobal:Amount,@(@Amount.+1).
^define group:!CalculateTax \defineresolveglobal:Tax,@(@Amount.*2).
Print Agent executes the group event handlers sequentially. Once again, with the value of
Amount at 7 on entry, the result is that the value for Amount is 8 and the value for Tax is 16.
Command Reference
259
Note: Because the event handlers for !IncrementAmount and !CalculateTax do not have a
group or field name prefix, Print Agent does not trigger a change of group. Using this
syntax with the event handler is an effective way of executing calculations at the
appropriate time without altering the current group setting.
See ^group (Execute Specified Group) on page 198 or \group (Execute Specified
Group) on page 266.
Further to the previous example, the result is different if the actions for an event handler are:
@group!IncrementAmount.@group!CalculateTax.
Print Agent resolves the calculation expressions using the following interim steps:
Print Agent first resolves @group!CalculateTax.
@group:!IncrementAmount.\defineresolveglobal:Tax,@(@Amount.*2).
@group:!IncrementAmount.\defineresolveglobal:Tax,@(7*2).
@group:!IncrementAmount.\defineresolveglobal:Tax,14
The result is that the value for Amount is 8 and the value for Tax is 14.
To set the pen position to a specific field, insert a \field command in the data stream.
fieldname is the name assigned to the field at template design time.
For example, to move to a field named USERNAME, use this command:
\fieldUSERNAME
For templates designed with version 5.2.6 or later of Output Designer, a field can be defined as
a graphic field in the template. The text placed in such a field is interpreted by Print Agent in the
same way as the parameters for a ^graph command (see page 194). The image is rotated in
accordance with the field rotation setting, and then scaled to fit into the field boundaries. The
resolution parameter, if supplied, is ignored. For example, to fill a field named
COMPANY_LOGO with the graphics file, abc.jpg, with a gamma value of 0.75, use this
command:
\fieldCOMPANY_LOGO
abc.jpg gamma 0.75
Command Reference
260
Note: You can provide a full path specification. However, if the path name contains spaces,
use the -alp command line option (see page 91) to identify the path and provide the
name of the graphics file with the \field command.
When you do not specify a field name, Print Agent moves to the next field on the template. Print
Agent processes the fields in tabbing sequence as defined in Output Designer. The default
tabbing sequence is left to right, top to bottom using the top left corner of the field.
When you include a \field command before each data record, you can:
Make the sequence of the data independent of the order of the fields on the page.
Set the pen position for laying down a subform or a logo on a page.
To change the way Print Agent handles data for fields, use the -afx command line option (see
page 84).
To open a template (form), insert a \form command into the data stream. This command
instructs Print Agent to close the currently open template and to open the template, MDFname.
In cases where the file name or option contains spaces or non-alphanumeric characters, it is
necessary to enclose the file name or option in quotation marks.
For example, to change to a template named newform.mdf, use this command:
\form"newform.mdf"
MDFname is the file name or URL for a template. When you specify a file name you may include
the full path specification. If you do not include the path and Print Agent was started with the
-afpformpath option (see page 82), it uses the formpath to assemble the complete file name or
URL. Print Agent also appends an .mdf extension to the name if no extension is given.
If the resulting full name starts with http:, Print Agent downloads the file from an HTTP server
using the full name as the URL. Otherwise, it opens the file within the file system.
Normally when the \form command is specified in the data stream, Print Agent ignores any
template name on the command line. This means that you can start Print Agent with a dummy
file name if the data stream contains a \form command. However, whether the template name
from the command line is actually ignored depends on the contents of your data stream. Certain
conditions cause Print Agent to immediately open the template. If Print Agent encounters one of
Command Reference
261
these conditions in the data stream before it encounters the \form command, it will try to open
the template from the command line. If that happens and the command line contains a dummy
file name, your job will fail.
When Print Agent encounters one of the conditions that cause it to immediately open a
template, it sends a reset sequence to the printer, and positions at the initial page. The default
initial page is page 1, but this can be changed with the -aip option.
The conditions that cause Print Agent to immediately open a template are:
Starting in quiet download format (no preamble or data file and -q)
^form
^subform
^field
^graph
^position
^page
^eject
^macro
^passthru
^tab
Note: Although -axpson causes Print Agent to open the template when it starts, once it reads
and stores the preamble it closes the file again. If the open fails or there is no preamble,
it quietly ignores the -axpson.
When Print Agent reads a \form command in the data stream and it is the first template opened
for that job, it makes page one of the template active. When opening subsequent templates,
Print Agent does end-of-page processing and sends a formfeed and soft reset to the printer.
The printed result is similar to that obtained when using the \page command. The difference is
that all possible pages must be compiled into the template when using \page. In some cases
you may wish to compile individual pages as separate templates and use the \form command
to reference them.
Use care when using the \form command with multipart templates. Print Agent can only cope
with one template during a multipart print execution. For each part in a multipart template, Print
Agent repositions in the data stream to the start of the file. If you use a \form command after
Command Reference
262
Print Agent has already opened the template, it forces Print Agent to open the template again.
Opening the template again may cause Print Agent to lose track of where it is in processing the
multipart template.
Caution: You cannot execute a preamble using a \form command. A typical preamble makes
use of Dynamic Merge commands (^define, ^group, etc) and you cannot execute
Dynamic Merge commands in inline mode. You can use a \form command within a
preamble, but if the form being loaded contains an internal preamble any Dynamic
Merge commands in that preamble will not be executed.
\form options override equivalent options set on the command line, for the duration of the
template. Adding an option to the \form command only affects the template specified by the
\form command. When you do not add an option to the \form command, Print Agent uses the
equivalent option from the command line.
The options for the \form command can be one or more of the following:
For example, to print all pages of a template and use picture formatting, include the -aapon and
-apfon options respectively with the \form command:
\form"newform.mdf","-aapon","-apfon"
Command Reference
263
To print a logo or raster graphic starting at the current position on the page, insert a \graph
command in the data stream.
For example, to print a graphic called logo.pcx with a resolution of 600 dpi and a gamma value
of 2.2, use this command:
\graph"logo.pcx","resolution 600","gamma 2.2"
filename is the name of the graphic file. Print Agent searches the template for a graphic file
included in the template with the given name. If it does not find the graphic file in the template, it
looks in the file system. When looking in the file system, if filename does not include the full
path, it uses the path specification from the -alp option.
type is one of the supported graphic types listed in the table below. If type is not supplied,
Print Agent infers it from the extension of filename. type is useful when filename refers
to a temporary file. For example:
graph"\tmp\ABAE1231.tmp","type pcx"
Supported Formats
bmp
not applicable
eps
not applicable
Default Resolution
Note: EPS graphics are supported only for templates compiled using a PostScript
presentment target and printed to a PostScript printer. EPS graphics are not
supported for templates compiled using a Windows printer driver, even if the
templates are printed using a PostScript printer.
gif
jpg
lgo
24-bit color
1 bit monochrome
96 dpi
72 dpi
300 dpi
Command Reference
Type
Supported Formats
pcx
1 bit monochrome
png
75 dpi
tif
1 bit monochrome
not applicable
- or -
8 bit gray-scale
gr3
Type 1 - no compression
Group 4 2D compression
264
Default Resolution
not applicable
resolution value indicates the resolution in dots per inch of the graphic file. This can be
any positive number or the word default.
For templates designed with version 5.2.6 or later of Output Designer, a field can be defined as
a graphic field in the template. When placing an image in a graphic field, Print Agent rotates the
image in accordance with the fields rotation setting and then scales the image to fit within the
field boundaries. resolution value, if supplied, is ignored.
When Print Agent places an image into a non-graphic field, it uses resolution value to
control the scaling of the image from its original resolution to the printers resolution. You can
use resolution value to force the image to be scaled differently. For example, if the image
was scanned at 144 dots per inch but you specify a resolution of 72 dots per inch, the image will
print at twice life-size.
If you supply a value of 0 or default for resolution value and the field is a non-graphic
field, Print Agent examines the image file. If the image file specifies the resolution, Print Agent
uses the value from the file. Otherwise Print Agent defaults to a value from the table above. In
the table, not applicable indicates that the resolution is always taken from the image file.
However, if you set the value of DefaultBitmapResolution in the Print Agent configuration file,
jfmerge.ini, to Yes, Print Agent will use 300 dots per inch as the default resolution for all
image formats. This provides backwards compatibility with data streams created for earlier
versions of Print Agent.
The gamma value indicates the degree of light intensity to assign to a color graphic. The
practical values are between 0 and 4. A value of 1 does not change the light intensity of the
graphic. A value less than 1 decreases the light intensity; a value greater than 1 increases the
light intensity. Note that the effect of a gamma value assigned with the \graph command can
be impacted by other considerations, such as the gamma built into the graphic, or the gamma
of your printer.
Command Reference
265
Graphic Placement
The \graph command does not begin a new field and does not respond to -afx (see page 84) or
to other options and commands that affect the placing of data into fields. If text has already
been placed into the current field, \graph places the image below the text. You may precede
\graph with \position (see page 268) to control the position of the image.
In templates created with version 5.2.6 or later of Output Designer, a field can be defined as a
graphic field. You can place an image into a graphic field using the \field command (see
page 259). An image placed in this manner cannot be accompanied by text and cannot be
repositioned. However, the \field command does respond in the normal way to -afx.
Label Printers
For label printers, the \graph command will accept images in 1, 4, 8 and 24 bit format.
However, whether the images provided in 4, 8 and 24 bit format will appear on the output
depends on the capabilities of the printer.
Color or gray-scale images are supported only if compiled into the template. For all color
images printed with the \graph command, the quality of the printed image is dependent on the
capabilities of your printer.
The \graph command is fully supported for Tec and Intermec label printers. For Datamax and
Zebra label printers, the graphic will print only if already downloaded to the printer or if compiled
into the template.
Command Reference
266
To call a group, use the \group command. groupname is the name assigned to a value or
values and placed in the Group dictionary, using the ^define command (see page 180).
eventname is either one of the supported group or field events, or a unique name. For a
description of the supported group or field events, see Intelligent Pagination on page 306.
-orwith a groupname and eventname that are defined in the Group dictionary, for example:
\groupPODETAIL!FldUsed
Execute the !OnExit event for the current group, if one exists.
Execute the !OnEntry event for the group PODETAIL, if one exists.
Execute any actions defined for the specified group and event.
If the current group is PODETAIL, Print Agent will only execute any actions defined for the
group and event.
With no groupname, but with an eventname that is defined in the Group dictionary, for
example:
\group!Output_Special_Footer
Print Agent will execute any actions defined for the event. The current group remains
unchanged.
Command Reference
267
If Print Agent cannot find an entry in the Group dictionary for a specified group and/or event, it
will ignore the \group command.
When Print Agent starts processing a transaction file, it is initially in a default group called
JFDEFGROUP. It remains in this group until the activation of a user-defined group, specified
with a ^group or \group command. JFDEFGROUP is useful where an event is triggered before
the activation of a user-defined group. In this case, Print Agent calls the group event handlers
from JFDEFGROUP to process the event. JFDEFGROUP supports all group event handlers
except !OnEntry.
At the end of the transaction file, Print Agent triggers the !OnExit event for the current group. It
will also trigger a JfEndData event, if one is defined.
To move to a new page in the template (form), use the \page command. {name|num} is the
page to activate, and can be either a name or a number. When you do not specify
{name|num}, Print Agent ignores the command.
For example, to activate page dependents of the current template, use this command:
\pagedependents
To end the current template and start a new copy of the currently active template, specify
{name|num} where {name|num} is either the number 1 or the name of your first page. Note
that even though your pages may have names instead of numbers, Print Agent still retains the
numerical count of the pages in the template. Therefore, even if the first page is named
dependents, you can still specify page 1 to start a new copy of the currently active template.
The options for the \page command are:
trayin
Format
\page{name|num}[,trayin{traynum|*ptrstring|+encoded-ptrstring}]
To print from a specific input paper tray, use the trayin option. Note that changing paper trays
while printing in duplex ejects the current page; data originally destined to print on the reverse
of this page now prints on a physically new sheet.
For example, to select input paper tray number 4, insert this command in the data stream:
\page7,"trayin 4"
Command Reference
268
For a complete description of the trayin option, see ^trayin (Input Tray) on page 227.
trayout
Format
\page{name|num}[,trayout{traynum|*ptrstring|+encoded-ptrstring}]
To direct the printed output to a specific output paper tray, use the trayout option. Note that
changing paper trays while printing in duplex ejects the current page; data originally destined to
print on the reverse of this page now prints on a physically new sheet.
For example, to select output paper tray number 4, insert this command in the data stream:
\pagedependents,"trayout 4"
duplex
Format
\page{name|num}[,duplex {off|on|left|long|top|short|*ptrstring|+encoded-ptrstring}]
For a complete description of the duplexing arguments, see -adu (Duplex Printing) on
page 76.
To change the placement of the next subform, next macro, logo or passthru data, or to return to
a saved position on the page after one of the above, use the \position command.
Caution: You can use the \position command to move to a position that exists outside the
printable area of a page. For example,
\positionabsolute,"0.00","3.50",cm. This may be useful when positioning
Command Reference
269
other objects, so that you have a fixed reference point for a subsequent command.
However, it you place an object outside the printable area of a page, that object may
not print properly. Moreover, Print Agent will not display a warning if you attempt to
print an object that exists outside the printable area of a page.
All \position commands refer to directions relative to the current template:
Portrait orientation
up
left
right
down
Landscape orientation
up
left
down
right
Command Reference
270
At times it may be difficult to determine your current position on the page for placing the next
object. In those instances, lay down a dummy field with the ^field command and position from
that field.
The \position command takes a number of options. Where the options use graphical
examples to demonstrate the result, these purchase order subform pages are used:
Page 1
Any Company Inc.
PURCHASE ORDER
Date
Vendor
Requisition Number
Vendor Code
Ship To
Item
Qty
Description
Units
Unit Price
Command Reference
271
Page 2
Total Price
Page 3
This subform page contains detail lines and a
field for setting the pen position.
[]
Subtotal
Tax - 7.25%
Total
Command Reference
Page 4
This subform page contains the totals
information.
Page 5
[]
272
Command Reference
273
[absolute]
Format
\position[absolute],x,y[,units]
To place an object at a specific location on the page, use the \positionabsolute option. x is
the number of units from the left edge of the physical page. y is the number of units down from
the top of the physical page.
units can be one of:
Dots
cm (centimeter)
in (inch)
The default unit is dots. The size of a dot varies based on your printer configuration file.
For example, to position a subform on a template page at the location 1 inch from the left edge
of the page and 5.5 inches from the top of the page, use these commands:
\positionabsolute,1,"5.5",in
\subform2
Command Reference
Date
Requisition Number
Vendor
Vendor Code
Ship To
Qty
Description
Units
Unit Price
Total Price
When only numerics or numerics with units follows the \position command, Print Agent
defaults to absolute positioning. Another way of expressing this example is:
\position1,"5.5",in
\subform2
up|down
Format
\positionup|down,y[,units]
To set an object at a location up or down from the last object placed on the page, use a
\positionup,y or \positiondown,y option. y is the number of units up or down to move.
units can be one of:
Dots
cm (centimeters)
Lines
in (inches)
274
Command Reference
275
The default unit is dots. The size of a dot varies based on your printer configuration file. A line is
the line spacing defined for the current font in the current field.
For example, to position a subform to a location 150 dots down from the current position, use
these commands:
\positiondown,150
\subform3
Date
Requisition Number
Vendor
Vendor Code
Ship To
Qty
Description
Units
Unit Price
Total Price
(150)
relative
Format
\positionrelative,x,y[,units]
To place an object a specific distance from the current position, use a \positionrelative
command. x is the number of units right from the current point. y is the number of units down
from the current point.
Both x and y can be negative numbers. When x is negative, motion is to the left. When y
is negative, motion is up the page.
Command Reference
276
Dots
cm (centimeters)
in (inches)
The default unit is dots. The size of a dot varies based on your printer configuration file.
For example, to position a subform to a location 3.125 inches left from the current point and .5
inches down from the current point, use these commands:
\positionrelative,"-3.125",".5",in
\subform4
Item
Qty
Description
Units
Unit Price
Total Price
(0,0)
[]
(-3.123,.5)
Subtotal
Tax - 7.25%
Total
Command Reference
277
left|right
Format
\positionleft|right,x[,units]
Dots
cm (centimeters)
in (inches)
The default unit is dots. The size of a dot varies based on your printer configuration file.
For example, to move to a point 3.5 inches right of the current position, use this command:
\positionright,"3.5",in
restore
Format
\positionrestore,save_id
To return to a specific location on the page, use a \positionrestore command. You must use a
\positionsave command for the \positionrestore command to work. save_id is the name of
the previously saved location; it can not contain spaces, and is case-insensitive.
For example, to return to a saved location named JUMP_SPOT, use this command:
\positionrestore,"jump_spot"
save
Format
\positionsave,save_id
To save the current location on the page, use a \positionsave command. save_id is the
name of the location to save; it cannot contain spaces, and is case-insensitive.
For example, to save the current location as JUMP_SPOT, use this:
\positionsave,"jump_spot"
Command Reference
278
To reserve the specified amount of vertical space for printing a subform or group, use the
\reserve command. Print Agent adds the specified size to the current vertical position. When
there is enough space in the printable area on the page, then the group or subform prints. When
there is not enough space in the printable area on the page, then Print Agent looks for an
!OnBOF event handler (see page 311). You require an !OnBOF event handler when you use a
\reserve command. The !OnBOF should include an action to move the current pen position
with either a \page or \position command.
The options for the \reserve command are:
n
Format
\reserven[,units]
The n option adds a specific amount of vertical space to the current pen position. n is a
number of units to reserve.
units can be one of:
Dots
cm (centimeters)
in (inches)
The default unit is dots. The size of a dot varies based on your printer configuration file.
For example, to specify the group or subform requires two and a half inches, use this
command:
\reserve"2.5",in
Ensure that the amount of space reserved for the group or subform is sufficient to include any
additional white space required at the bottom of the page.
Command Reference
279
subform
Format
\reservesubform,page
The subform option determines the amount of vertical space required to print the subform
from the specified page. subform is a literal. page is the page number for the subform in the
current template.
For example, for Print Agent to determine the amount of vertical space required by the subform
from page 3 of the template, use this command:
\reservesubform,3
To place a subform page at the current pen position on the page, use the \subform command.
This command is valid for PCL and PostScript Level 2 printers.
For dynamic templates created with version 5.2 or later of Output Designer, use subformname
to identify the subform page name in the template.
For dynamic templates created with Output Designer 5.1 or earlier, use nn to identify the
subform page number in the template. In this case, the page must be compiled as a subform.
MDFname is the file name or URL for a template. When you specify a file name you may include
the full path specification. If you do not include the path and Print Agent was started with the
-afpformpath option (see page 82), it uses the formpath to assemble the complete file name or
URL. Print Agent also appends an .mdf extension to the name if no extension is given.
If the resulting full name starts with http:, Print Agent downloads the file from an HTTP server
using the full name as the URL. Otherwise, it opens the file within the file system.
MDFname is optional. When you do not specify MDFname, Print Agent takes the subform from
the current template.
For example:
\subformdependent,"newform.mdf"
\subformdependent
\subform2
When Print Agent places a subform, it does not execute a formfeed. It places the specified
subform relative to the current pen position. To change the current pen position, use the \field
or \position command, explained earlier in this chapter.
Command Reference
280
To pass text to the log file, insert a \trace command in the data stream. Print Agent sends the
output directly to the log file; it does not print. text can be any word or phrase.
You use the \trace command for debugging.
For example:
\trace"This text appears in the log file."
Note: To direct the output from the \trace command to a file other than the log file, start Print
Agent with the -atf command line option (see page 119).
A \trace command will write trace messages to the log file or to a specified file only if
you start Print Agent with the -v0 command line option (see page 152).
To change the current page number for use in $PAGE fields, use the \$page command in the
data stream. nn is the page number to change to.
$PAGE is an Output Designer special field name that Print Agent fills automatically during
processing.
Command Reference
281
VARIABLE SUBSTITUTION
Variable substitution makes data more flexible, by enabling you to substitute values for
variables as the data processes. The values are supplied by Print Agent, based on such things
as date and time, and template and field attributes. When Print Agent encounters an @ (at) in
the transaction file, it substitutes it and the variable following it with its equivalent value.
To delimit a substitution variable, use one of these characters:
Newline
Space
Period
Print Agent processes the substitution variables separately. When a . (period) follows the
substitution variable, Print Agent replaces the @ character, the substitution variable name, and
the period with the value of the substitution variable.
To end a sentence with a substitution variable and print a period at the end of the sentence,
follow the substitution variable with two periods.
You can nest substitution variables. This is useful if the value of the second variable completes
the first variable. Print Agent processes variables from right to left.
For example, if the data stream contains:
@gl@nn
and the field nn contains the value 2, Print Agent replaces the @nn variable with 2 and then
processes the line as:
@gl2
Then if the field g12 contains the value computer, Print Agent replaces the @g12 variable with
computer.
The variables which follow are Print Agent reserved names, and should not be used for other
purposes in the transaction file.
Command Reference
282
To refer to the current horizontal position on the page, insert the $currentx variable in the data
stream.
For example, to move to a position even with the current horizontal position and 900 dots from
the top of the page, insert this command in the data stream:
^position @$currentx. 900
By default, for fill justified fields, the current position is at the start of the most recent word of
data placed on the page. For other field justifications, the current position is at the start of the
current line of the field.
Print Agent uses dots as the measurement unit with the $currentx variable. The size of a dot
varies based on your printer configuration file.
To refer to the current vertical position on the page, insert the $currenty variable in the data
stream.
For example, to move to a position even with the current vertical position and 600 dots from the
left edge of the page, insert this command in the data stream:
^position 600 @$currenty.
By default, for fill justified fields, the current position is at the start of the most recent word of
data placed on the page. For other field justifications, the current position is at the start of the
current line of the field.
Print Agent uses dots as the measurement unit with the $currenty variable. The size of a dot
varies based on your printer configuration file.
Command Reference
283
To refer to the current date, insert $date as a variable in the data stream. n is the number of
the format the date appears in.
The date Print Agent uses is the date of the start of the current job. For example, if you start
Print Agent shortly before midnight on February 11, and the document prints after midnight
February 12, Print Agent uses February 11.
$daten may be one of the following formats:
Date Format
Output Format
Example
$date0
mmddyy
122900
$date1
yymmdd
001229
$date2
mm/dd/yy
12/29/00
$date3
mm-dd-yy
12-29-00
$date4
$date5
$date6
dd Mmm yy
29 Dec 00
$date7
dd Mmm yyyy
29 Dec 2000
$date8
dd/mm/yy
29/12/00
$date9
dd-mm-yy
29-12-00
$date10
dc 29, 2000
$date11
$date12
dd mmmm yy
29 dc 00
$date13
dd mmmm yyyy
29 dc 2000
$date14
dd m..m yyyy
29 dcembre 2000
$date15
yy/mm/dd
00/12/29
$date16
mm.dd.yy
12.29.00
$date17
dd.mm.yy
29.12.00
$date18
yy.mm.dd
00.12.29
$date19
dd.mm.yyyy
29.12.2000
$date20
mm/dd/yyyy
12/29/2000
Command Reference
Date Format
Output Format
Example
$date21
yyyy-mm-dd
2000-12-29
$date22
mmddyyyy
12292000
$date23
mmddyy
122900
$date27
dd/mm/yyyy
29/12/2000
284
The values for $date4 to $date7 inclusive use Language 1 and the values for $date10 to
$date14 inclusive use Language 2. The Language values are taken from the [MonthNames]
section of the Print Agent configuration file, jfmerge.ini. Your systems locale setting has no
effect on Language values.
For example, if today is the 31st of January 2000, and you insert this command in the data
stream:
Today's date is @$date5..
When you do not specify a value for n, Print Agent uses the default compiled into the template.
To have Print Agent detect and act on the duplex mode and surface, insert $duplexsurface in a
preamble file or in an Intelligent Pagination string.
Print Agent populates $duplexsurface with these values:
Value
Circumstance
Simplex
Duplexfront
When Print Agent is operating in duplex mode and the current print surface is a
page front.
Duplexback
When Print Agent is operating in duplex mode and the current print surface is a
page back
Usually, except for debugging purposes, the value of $duplexsurface is not used directly in a
template field. This variable can be of great use in performing duplex surface specific actions by
using its value in selecting a group for execution, or in a double variable substitution.
Command Reference
285
This example preamble specifies groups to be executed in each of the three cases that
$duplexsurface distinguishes:
^define group:S_SIMPLEX \subform3
^define group:S_DUPLEXFRONT \subform4
^define group:S_DUPLEXBACK \subfom5
^define group:MYGROUP!OnBOF
\page1\fieldPOSITION@group:S_@$DUPLEXSURFACE
The !OnBOF event for MYGROUP will activate one of these defined groups, resulting in a
different subform being activated depending on the context in which the event occurs. When
operating in simplex mode, subform 3 is used, when in duplex mode and the surface is front,
subform 4 is used, and when in duplex mode and the surface is back, subform 5 is used.
This example also demonstrates an important consideration when using this feature. Be aware
of when the $duplexsurface value is interpreted. Here, although it appears after the \page
command switching to a new page, it still has the value from the previous page. Thus,
$duplexsurface tells us the surface just processed. This behavior occurs because variable
substitutions are evaluated before any part of the group is actually executed. Note that
$duplexsurface is evaluated, together with the global fields, at the end of the processing for
the current page.
Another example of using $duplexsurface is:
^graph LOGO_@$DUPLEXSURFACE..TIF
In this example, $duplexsurface is used with a ^graph command to cause a different logo to
be loaded, depending on the duplex or simplex page surface. This is useful in cases where
different logos are required on the front and back surface of a page. For this example,
depending on the duplex or simplex page surface, the file loaded will be either
logo_duplexfront.tif or logo_duplexback.tif.
A further example of using $duplexsurface is:
^define user:BP_DUPLEXFRONT \page3
^define user:BP_DUPLEXBACK \positionsaveDUMMY
^define user:BP_SIMPLEX \positionsaveDUMMY
In this example, the user dictionary definitions provide a means to navigate to the next front
surface via a command in the intelligent data stream, or in a preamble file.
@:BP_@$DUPLEXSURFACE substitutes the command \page3 when executed on the front
duplex surface. In other situations, the \positionsave command is executed. Because the
position DUMMY will not be used, the command is effectively a no operation. The example
results in a filler page 3 inserted on the back of the current page, if necessary, to cause the next
\page command to land on a front surface again.
For another method of performing surface specific processing, see \checksurface (Duplex
Mode and Surface) on page 257.
Command Reference
286
To refer to the path and file name of the currently active transaction file, insert $ffile as a
variable in the data stream.
For example, if the path and file name of the transaction file is c:\data\forms.dat, and you
insert this data in the data stream:
The name of this file is @$ffile.
For returning only the file name, see $file (Current File Name) on page 287.
To refer to the distance from the left edge of the page to the anchor point of the current field,
insert $fieldx as a variable in the data stream. The anchor point is at the start of the current line
of the field, which differs depending on the field justification.
For example, to place the graphic sign.pcx at a point starting 600 dots below the anchor point
of the current field, aligned with the left edge of the current field, insert these commands in the
data stream:
^position @$fieldx. +600
^graph sign.pcx
Print Agent uses dots as the measurement unit with the $fieldx variable. The size of a dot
varies based on your printer configuration file.
To refer to the distance from the top edge of the page to the anchor point of the current field,
insert $fieldy as a variable in the data stream. The anchor point is at the start of the current line
of the field, which differs depending on the field justification.
Command Reference
287
For example, to place the graphic sign.pcx at the same height as the current field but 900 dots
to the right of the anchor point of the current field, insert these commands in the data stream:
^position +900 @$fieldy.
^graph sign.pcx
Print Agent uses dots as the measurement unit with the $fieldy variable. The size of a dot
varies based on your printer configuration file.
To refer to the file name of the currently active transaction file, insert $file as a variable in the
data stream.
For example, if the path and file name of the transaction file is c:\data\forms.dat, and you
insert this data in the data stream:
The name of this file is @$file.
Print Agent returns the file name only, excluding the file name extension.
For returning the path and file name, see $ffile (Current Path and File Name) on page 286.
To refer to the number of the current page, insert $page as a variable in the data stream.
For example, if the current page is the sixth page printed and you insert this data in the data
stream:
This is page @$page..
Note that this is the output page number, not the current template page number. If you print a
single page template eight times, a $page field on the template would show 1 for the first
template, 2 for the second, and so on.
Command Reference
288
To refer to the bottom of the printable area of the page, insert $printablebottomy as a variable
in the data stream.
For example, to move to a position at the bottom of the printable area and 600 dots from the left
edge of the page, insert this command into the data stream:
^position 600 @$printablebottomy
To refer to the left limit of the printable area of the page, insert $printableleftx as a variable in
the data stream.
For example, to move to a position at the left edge of the printable area and 900 dots from the
top edge of the page, insert this command into the data stream:
^position @$printableleftx 900
To refer to the right limit of the printable area of the page, insert $printablerightx as a variable
in the data stream.
For example, to move to a position at the right edge of the printable area and 900 dots from the
top edge of the page, insert this command into the data stream:
^position @$printablerightx 900
Command Reference
289
To refer to the top of the printable area of the page, insert $printabletopy as a variable in the
data stream.
For example, to move to a position at the top of the printable area and 600 dots from the left
edge of the page, insert this command into the data stream:
^position 600 @$printabletopy
To refer to the current time, insert $time as a variable in the data stream. n is the number of
the format the time appears in.
The time Print Agent uses is the time at which the current job starts. If you start Print Agent at
7:58, but the document prints at 8:03, the time Print Agent uses is 7:58.
$timen may be one of the following formats:
Time Format
Output Format
Example
$time1
hhmmss
155256
$time2
hh:mm:ss
15:52:56
$time3
hhmmssss
15525600
$time4
hh:mm:ss.ss
15:52:56.00
$time5
hh:mm
15:52
$time6
hh:mm:ss xx
03:52:56 PM
$time7
hh:mm xx
03:52 PM
Note that values for $time1 to $time5 show the time in 24 hour format, while the formats in
$time6 and $time7 indicate AM or PM.
Command Reference
290
For example, if the current time is 4:45 PM, and you insert this data in the data stream:
The time is @$time6..
When you do not specify a value for n, Print Agent uses the default compiled into the template.
To replace a variable with the contents of a global field on the template, insert the name of the
global field as the variable.
For example, if your data stream contains:
^global name
Pat
^global surname
Brown
^global mail
31 January 2000
^field field1
A letter to @name. @surname. sent on @mail..
To retrieve variables from a dictionary, insert the name of the dictionary and the variable name
as the variable. Follow the dictionary name by a colon to separate it from the variable name.
When a colon is supplied without a dictionary name, then the default dictionary is User.
The dictionaries are:
DocVar
Global
User
Environment
Group
Sys
Command Reference
291
For a complete description of the Print Agent Dictionaries, see page 57.
You create a dictionary variable with the ^define command (see page 180).
For example, if your data stream contains:
^define name
Pat
^define surname
Brown
^define mail
31 January 2000
^field field1
A letter to \b.@:name. @:surname.\b0. sent on @:mail..
Special Variables
Print Agent recognizes a number of special variables. These variables enable you to include
reserved characters in your data:
Special
Variable
Reserved
Character
Description
@at
at sign
@cr
<cr>
carriage return
@lf
lf
line feed
@qu
"
quotation mark
@sm
semicolon
@tb
<tab>
tab
For example, to include the @ character in the data, use the special variable @at.
@at.Adobe.com
Command Reference
292
CALCULATION EXPRESSIONS
Calculation expressions allow you to add computations to your output. A calculation expression
can occur anywhere in the data stream or in the actions for an event. For example, you can use
a calculation as the data for a ^field command (see page 188), or with the fieldname!Format
event (see page 313) and Inline Text Control processing enabled using either ^inline on (see
page 199) or -aitcon (see page 88).
Typically, calculation expressions use substitution variables. If you operate with variable
substitution set off, you can enable this feature using the -avson command line option (see
page 129).
The format of the calculation expression is:
@(expression).
where expression can be comprised of any number of variables, operators, and functions,
with the entire construct enclosed in parentheses. For example,
@(@MyCount. + 1).
. (period). This is the delimiter used in the examples in this section of the manual.
Any of the substitution delimiters specified in the Print Agent configuration file. By default,
these substitution delimiters are:
, + - * ( ) < > { }~| / \ ' ` " ^ @ ;
Space.
Note: The square brackets enclosing the format value are mandatory.
For example, these calculation expressions format the results to two decimal places:
@([2]@Price. * @Qty.).
@([2]round(@Tax.,4)*1.08).
Note that although the second example specifies to round the result to four decimal places, the
format value causes the result to display with two decimal places.
Command Reference
293
In the absence of a formatting value in the calculation, the default number of decimal places is
four. For example, if the expression:
@(sqrt(@MySum. + @ThisAmount.)).
When no format value is specified, trailing zeros are truncated. For example:
Literal Numbers
An expression may contain literal numbers. A number may have a decimal point, with or without
any digits following. The decimal point must be a . (period). The number may have a leading
- (minus sign) indicating a negative value, and may have leading or trailing zeroes. However, a
number must not have a leading currency symbol, or embedded commas or spaces. These are
examples of valid numbers:
2
2.00
-.999
-0.123
Literal Strings
Any text enclosed in double quotation marks ("...") is a literal text string. For example:
"hello"
"
"
A string containing a valid number may be used in a context where a number may be used.
The string is automatically converted to a number. For example:
For the string, "The amount is 45 dollars", the number is part of the string. If this
string is in an arithmetic expression, it is converted to zero, since the first character of the
string is non-numeric.
For the string "45 dollars is the amount", 45 is interpreted as a number and the
rest of the string is ignored.
For a literal string containing a substitution variable, for example, "@Sum.", Print Agent will
perform the substitution.
A literal string cannot contain the double quotation mark character or a newline character.
Command Reference
294
Variables
Variable references are of the format:
@variablename.
The value of a variable is substituted into the expression before the expression is evaluated.
Variable names must not include the characters @ (at) or . (period). For example:
@customer_number.
@x.
Every variable belongs to a dictionary. You can refer to a variable using its fully qualified
name in the format dictionary:variable. If you do not supply a dictionary name, Print Agent
assumes the variable is in the global dictionary.
Print Agent has predefined variables that begin with the character $ (dollar sign), such as
$date and $time. You can reference these as @$date. or @$time.
Print Agent substitutes values for variables in an expression from right to left. This makes
possible a simple form of subscripting using nested variable references. For example:
@Item@N..
An expression may make reference to a non-existent variable. If the variable has not
previously been assigned a value, Print Agent issues a warning message and no
substitution takes place. The variable reference remains in the expression, complete with
@ (at) and . (period).
Operators
There are three groups of operators for performing arithmetic, comparison, and Boolean
operations.
Arithmetic operators act only on numbers. If one of the operands is a string, an attempt is made
to interpret it as a number, with the same automatic conversion considerations that apply to
literal numbers. If it can not be interpreted as a number, then Print Agent treats it as the number
zero. For example:
2 * "8" returns 16
2 * "apple" returns 0
Command Reference
295
Arithmetic Operators
Operator
Description
Divides the first operand by the second operand. If the second operand has an
absolute value less than .000001, Print Agent generates an error message and
leaves the expression unresolved.
Raises the first operand to the power of the second operand. If the first operand is
negative, the second must be an integer. If the first operator is zero, the second
must be greater than zero. If either of these conditions is not met, Print Agent
generates an error message and leaves the expression unresolved.
Comparison operators act on strings or numbers. When comparing strings, the comparison is
based on the symbol set encoding the strings. For example, if the strings are in ASCII, then the
string ab is less than ac and more than Ab. A shorter string may be considered less than a
longer one. For example, a is less than aa; however, b is not less than abc.
All comparison operators return a result of 1 when the comparison is TRUE and 0 when the
comparison is FALSE.
Case-Sensitive Comparison Operators
Operator
Description
==
!=
>
Tests whether the first operand is greater than (but not equal to) the second
operand.
<
Tests whether the first operand is less than (but not equal to) the second operand.
>=
Tests whether the first operand is greater than or equal to the second operand.
<=
Tests whether the first operand is less than or equal to the second operand.
Command Reference
296
The case-insensitive comparison operators perform the same tests as the case- sensitive
comparison operators, but ignore case differences. These operators require both operands to
be strings. The case-insensitive version of == is ^=. For all other comparison operators,
prefix the comparison operator with a ^ (caret). For example, the case-insensitive version of
>= is ^>=. Note that case-insensitive comparisons are valid across all platforms only for
non-accented letters in the English alphabet.
Boolean operators perform Boolean arithmetic on operands that are either TRUE or FALSE,
returning a result that is either TRUE or FALSE. If an operand is a number and is non-zero, it is
considered TRUE. All other operands are considered FALSE. The result of a Boolean operation
is always 1 (TRUE) or 0 (FALSE).
Boolean Operators
Operator
&&
Description
Computes the logical AND of its operands.
||
Order of Evaluation
You can explicitly determine the order of evaluation by enclosing portions of an expression in
round brackets. For example, Print Agent evaluates:
1+((5+4)/3)
==
!=
&&
>
<
>=
<=
^=
^!=
^>
^<
^>=
^<=
Caution: In the above list, all operators on the same line have the same precedence. This
may create problems if an expression contains multiple operators. In general, it is
safer to use round brackets, rather than operators, to determine the order of
evaluation.
Command Reference
297
Numeric Limits
Calculations are carried out in the internal floating-point format of the computer. This imposes
limits on the precision and numeric range of calculations. These limits vary from one computer
to another, however the platforms on which Print Agent runs support at least 15 significant
digits. Those 15 digits can be entirely in front of the decimal place (largest number
999999999999999), entirely after the decimal place (smallest number 0.000000000000001), or
can be a mix, with some digits in front of and some digits behind the decimal place.
There are two exceptions that can occur as a result of a calculation:
the result of a calculation is too close to zero to represent in the internal floating-point format.
This is an arithmetic underflow. Print Agent ignores underflow and sets the result of the
calculation to zero.
the result of a calculation is too far from zero (positive or negative) to represent in the
internal floating-point format. This is an arithmetic overflow. An error message is generated
and the expression is left unresolved.
Functions
Print Agent supports a number of functions that are available inside expressions. Note that all
string values included in a functions expression must be enclosed in (quotation marks). It
may also be advisable to enclose field names in quotation marks, if you are uncertain whether
the data will contain a value for the field. When using quotation marks, be aware of the double
quoting issue. If the quoted value expands to a value which is itself quoted, unexpected results
may occur.
Caution: All functions produce numbers in a format governed by the currency decimal
separator character. If these numbers are to be printed using a picture clause, the
incoming decimal separator character must match the number being formatted.
Therefore, when using the combination of functions and picture clauses, the decimal
separator character must match the incoming decimal separator character.
For details about the decimal separator and the incoming decimal separator
characters, see the -acu option arguments cd (Decimal Separator) on page 72 and
cid (Incoming Decimal Separator) on page 73.
Command Reference
298
Functions
Function
Description
Abs(n1)
Chssgn(n1)
OR...
Note: Once you convert a currency to a number, you can perform arithmetic calculations on
it. When finished with the calculations, you will likely want to use a picture clause to
reformat it as a currency.
For backwards compatibility, you can specify d as td, where t is the thousands
separator (default is comma), and d is the decimal character. Note that the thousands
separator character is actually irrelevant to the operation of the CtoN function.
Floor(n1)
Returns the largest integer that is less than or equal to the specified value,
n1.
For example, @(Floor(8.99)). returns 8, and @(Floor(-3.25)).
returns -4.
Frac(n1)
Returns the fractional part of the specified value, n1, with the same sign.
For example, @(Frac(2.3)). returns 0.3 and @(Frac(-3.25)).
returns -0.25.
Command Reference
299
Function
Description
If(e1,s1,s2)
If3(e1,s1,s2,s3)
Command Reference
Function
Description
Int(n1)
Returns the integer part of the specified value, n1, with the same sign.
300
IsPos(e1)
IsZero(e1)
Lower(s1)
Length(s1)
Ltrim(s1)
mod(n1,n2)
Command Reference
301
Function
Description
pic
Returns picture formatting for a data string. The syntax and capabilities are
similar to \pic, but it is done as a calculation. This means its results can be
fed into another calculation, or made subject to further formatting.
For example, to output a date format in upper case characters:
@(upper("@(pic("dateDDDD, MMMM DD, YYYY", "11202001"))")).
returns:
TUESDAY, NOVEMBER 20, 2001
In this example:
Pow(n1,n2)
The quotes around 11202001 are required, because the @pic only
formats a string, not a number. You can make any number into a string
by enclosing it in quotes. The date pictures expect input in the form
mmddyyyy or mmddyy.
Command Reference
302
Function
Description
Round(n1,n2)
@(Round(-1,3)). returns -1
The Round function does not determine the number of decimal places that
will be returned in an entire expression. It simply rounds to the specified
number of decimals as part of an intermediate calculation. The default
number of decimal places that will be displayed is four. This value is
overridden in the last two examples above with the [n] construct. To
specify the number of decimals to display, see Formatting Calculated
Values on page 292.
Note: The arguments passed to the Round function, that is, the text
enclosed in parentheses, should not include spaces.
Rtrim(s1)
Sqrt(n1)
Command Reference
Function
Description
Upper(s1)
303
Function
Result
Abs
@(Abs(@MySum. + @ThisAmount.)).
1234.5678
Floor
@(Floor(@MySum. + @ThisAmount.)).
1234
Frac
@(Frac(@MySum. + @ThisAmount.)).
0.5678
Int
@(Int(@MySum. + @ThisAmount.)).
1234
Round
@(Round(@MySum. + @ThisAmount.,2)).
@(Round(@MySum. + @ThisAmount.,-2)).
1234.57
1200
Sqrt
@(Sqrt(@MySum. + @ThisAmount.)).
35.1283
305
The lines reading 0x20AC=0x65 and so on specify a character code in the source symbol set
before the equals sign, and the corresponding character code in the destination symbol set
after it. DefaultChar supplies a default translation for any characters in the source symbol set
that are not otherwise specified. Tablefile is the name of a file which contains the desired
character code mapping. Specify the Tablefile file name relative to the location of
jetkeys.ini.
Within a translation table, and in the Default value, you can specify character codes in decimal
or hexadecimal. Hexadecimal numbers must start with the digit zero followed by the letter X and
then the hexadecimal digits, for example 0x9f. Hexadecimal numbers do not distinguish
between upper and lower case.
When creating the translation tables:
You can specify a range in the Source Code field. For example:
128-255=255
converts the upper half of a single byte character set to character 255. This can lead to a
more compact table, and is important for double-byte character sets where specifying all the
characters individually would be impractical.
You can specify an offset in the Destination Code field. For example,
128-150=+100
converts characters from 128 through 150 to 228 through 250 respectively, and
200-250=-50
converts characters 200 through 250 to 150 through 200 respectively. This is also a
requirement for handling large (i.e. double-byte) character sets, and leads to a more
compact table.
Intelligent Pagination
Intelligent pagination provides greater flexibility for Print Agent processing, enabling you to
create events for a template page, and to make these events active at the appropriate time.
Intelligent pagination can apply to either static or dynamic templates. For example, when you
use dynamic templates with intelligent pagination, Print Agent ensures that your subform fits in
the remaining printable area on the page. When there is insufficient space, it takes the
appropriate action to complete the page and place the subform at the top of the next page. To
use intelligent pagination, Print Agent enables you to define variables using the Group
dictionary, described in the next section.
When you use intelligent pagination, your data must be in either Central field-nominated format
or XML format. If your data is in another supported format, the Central Transformation Agent
module is available to convert the data to Central field-nominated format.
Intelligent pagination (see page 256) uses both the Dynamic Merge command, ^define (see
page 180), and a set of commands called Intelligent Pagination commands. Dynamic templates
created with version 5.2 and later of Output Designer include the Intelligent Pagination
commands. Output Designer automatically adds the appropriate commands to the template
during the compile process. The commands are contained within two custom document
variables, JFPREAMBLE and JFPREAMBLE_1, which Print Agent processes before the
contents of the data stream. To view these document variables for a template, from the Output
Designer Format menu, click Template Preamble.
When using intelligent pagination with static templates or with dynamic templates created with
versions of Output Designer prior to 5.2, the template designer must create a preamble file for
the template that contains the appropriate commands. In the template design process, the
template designer understands the users requirements for the template, and can best
determine how to structure the template pages to meet the users needs, and best incorporate
intelligent pagination. Print Agent reads the preamble file before any commands in the data
stream. In addition, for Print Agent to execute these commands, you must activate inline
commands processing using either:
The ^inline on command (see page 199) within the data stream or a preamble file
Caution:
You cannot execute a preamble using a \form command. A typical preamble makes
use of Dynamic Merge commands (^define, ^group, etc) and you cannot execute
Dynamic Merge commands in inline mode. You can use a \form command within a
preamble, but if the form being loaded contains an internal preamble any Dynamic
Merge commands in that preamble will not be executed.
Intelligent Pagination
307
When an internal preamble that was not auto-generated by Output Designer is being used.
If you must pass the reserved inline text control prefix character in the data file with a dynamic
form that contains an internal auto-generated preamble, the only other way to make this work
would be to change the reserved character in the data file to some other character and then
change it back again once the inline commands have been executed. This can be done by
using Transformation Agent to change the reserved character and then using the JetKeys.ini
file to remap the character back to the reserved character before the data is written to the
output file.
An easier way to activate subforms without explicit coding of ^page (see page 205) and
^subform (see page 221) commands mixed with the data.
Intelligent Pagination
308
The ^define command assigns a value to a variable that remains set until Print Agent
encounters:
A ^undefine command.
A \defineresolve command.
group: specifies the Group dictionary, where Print Agent will store the variable. Note that the
: (colon) is the separator between the dictionary name and the variable name.
[groupname][!eventhandler] identifies the variable name within the Group dictionary, and
an associated event handler. When the specified event occurs or the event is explicitly called,
Print Agent looks for a variable in this form in the Group dictionary. If it finds the variable, Print
Agent inserts the actions for the group or group and event into the data stream for execution by
the command processor. (For calling events, see ^group (Execute Specified Group) on
page 198 and \group (Execute Specified Group) on page 266.
groupname may be a field in the template design, or a meaningful name that describes the
section, often derived from the subform name. Note that groupname may also be empty.
!eventhandler identifies the event that is being handled. For example, !FldUsed,
!FieldNotAvail, !OnOverflow, !OnBOF.
Intelligent Pagination
309
!DuplexBack
!DuplexFront
!FldNotAvail
!FldUsed
!OnBOF
!OnEntry
!OnExit
!OnTOF
!Simplex
JfEndData!EndData
Intelligent Pagination
310
stream, where the field named ITEM is not on the current subform or template page, causes the
event to occur. You specify the event as:
^define group:PODETAIL!FldNotAvail \page3\fieldTOTAL.
In this example, the group event activates page 3 when Print Agent encounters a field in the
data stream that is not on the current template page or subform. Processing proceeds with
\fieldTOTAL on page 3.
This group event also occurs when data runs off the end of the current field list. This happens
when you use nonspecific field commands or when the data stream contains extra lines of data
without ^field commands.
When you also define a field event handler for fieldname!FldNotAvail for a field, then this event
also executes when Print Agent encounters fieldname in the data stream and it does not exist
on the current template page or subform. When you define both a group and field event, the
field event fieldname!FldNotAvail executes before the group event handler
groupname!FldNotAvail.
In the following example, the data for field C is placed in the second group:
^field A
sampledata
^field B
sampledata
^field A
moredata - start of second group
^field C
sampledata
Intelligent Pagination
311
When you define actions for a group and also for events associated with the same group,
such as:
^define group:PODETAIL \action\action.
^define group:PODETAIL!OnEntry \action\action.
when Print Agent activates the group PODETAIL, it performs the actions for
group:PODETAIL!OnEntry before the actions for group:PODETAIL.
When you activate a group using ^group or \group and the group is not defined, then an
!OnEntry event handler associated with the group is not executed. For example, if the data
stream includes the command:
^define group:PODETAIL!OnEntry \action\action.
then an action of \groupPODETAIL specified for some other group event does not cause
the group:PODETAIL!OnEntry to execute, since a ^define command does not exist for
the named event handler group:PODETAIL.
Note: Defining a group action as is equivalent to not defining it at all. Instead of:
^define group:PODETAIL ""
use:
^define group:PODETAIL "\."
When you activate a group and an !OnEntry event handler is not defined for the group, then
only the actions for the defined group execute.
Intelligent Pagination
312
When no entry exists in the Group dictionary for JfEndData, the event is ignored. The exception
is when executing the !OnExit event for the current group. It does move into group JfEndData,
and therefore, does make you exit the current group.
!FldNotAvail
!FldUsed
!Format
!OnOverflow
!OnEntry
!OnExit
!OnTOF
!OnBOF
Intelligent Pagination
313
The !OnEntry field level event handler is similar to the group level !OnEntry, but may be
triggered implicitly by data overflowing from one field into another, in some reformat modes.
The !OnExit field level event handler is similar to the group level !OnExit, but occurs when
exiting a field instead of a group. The !OnTOF and !OnBOF field level event handlers are
functionally the same as the group level event handlers of the same name.
This section describes !FldUsed, !Format, !OnOverflow, and !FldNotAvail event handlers.
The first occurrence of field A is filled with the data sampledata. When Print Agent reads the
second occurrence of the command ^field A, the !FldUsed event handler for field A
executes. Note that when the event handler starts to execute, the pen is still positioned in field
C, at the end of the text sampledata. Because the actions for the event handler replace the
^field A command, Print Agent lays down a new subform, subform 3, positions at field A in
the new subform, and then places the data for field A, moredata, at that position on the page.
Intelligent Pagination
314
When Print Agent reads the data for a field, it checks to see whether there is a
fieldname!Format event stored in the Group dictionary for the field. If the event is found, Print
Agent does the following:
Stores the data for the field in the global variable _$_. This variable contains one line of text
from the data stream. Leading and trailing blanks are removed.
Replaces the data for the field with the !Format expression.
Performs variable substitution, replacing any expressions that use an @ (at) symbol
with the appropriate value.
When you use this event, keep the following considerations in mind:
The fieldname!Format event applies to single line fields, and is not really suitable for
multi-line fields.
The expression for a fieldname!Format event can reference variables defined in any Print
Agent dictionary.
You can associate a fieldname!Format event with a global field (see page 40). Print Agent
will execute the event during global field processing.
When Print Agent encounters a fieldname!Format event for a non-global field, it executes
the event immediately. That is, once Print Agent gets to the field and is ready to write out the
text data for the field, it executes the fieldname!Format event. If the field is subsequently
defined as global, either through a ^global command or as a Global dictionary entry, the
fieldname!Format event will be triggered a second time when global field processing occurs.
Caution: Specifying a reformat option that truncates data values could produce unexpected
results. This may occur in circumstances where one or more commands follow or
surround the data (@_$_.) references in the !Format event. Truncating the data may
also result in the loss of the subsequent commands. If processing does not occur as
expected, we recommend that you determine whether the reformat option is the
cause.
Intelligent Pagination
315
For example:
The initial field name must exist in order for the !Format event to execute.
To output the data for a field named Balance and print a positive value in yellow and a
negative value in red, use:
^define group:Balance!Format
@(if("@_$_."<0,"\cnred.","")).@_$_.\cndefault.
This example demonstrates the use of Inline Text Control commands within the expression
for a fieldname!Format event.
To put the value of a non-global field into a global field so that you can use it in a subsequent
calculation, the data stream may have the following commands:
^inline on
^define group:Amount!Format
@_$_.\defineresolveglobal:SaveAmount,"@_$_.".
^field Amount
235.69
^field Total
@(@SaveAmount. * 1.08).
Intelligent Pagination
316
In this example, the field event handler activates page 3 when Print Agent encounters a field in
the data stream that is not on the current template page or subform. Processing proceeds with
\fieldITEM on page 3.
Note: The !FldNotAvail event takes precedence over the -afx option (see page 84).
!Replace! is useful when the result of an XML conversion to field-nominated data does not
provide quite what you want. For example, you might let the XML conversion produce ^field
commands and the use !Replace! to change these commands to ^file or ^global commands.
Another use for !Replace! is to do interim processing. For example, you could change ^field A
to ^group A which does some setup before handling \fieldA.
where:
-advgroup:!Replace!=1 is a literal, which activates !Replace! processing. It is required
once, before any !Replace! commands. Without -advgroup:!Replace!=1, !Replace!
commands are ignored.
Intelligent Pagination
317
You can include any number of !Replace! commands on the command line.
For example,
-advgroup:!Replace!=1 "-advgroup:!Replace!^group!G_CoverLetter1=^form
CoverLetter1.mdf" "-advgroup:!Replace!^field!Description=^field Desc"
Preamble Syntax
To include !Replace! in the preamble in the template, use the syntax:
^define group:!Replace! 1
^define group:!Replace!Original!Line Replacement!Line
where:
^define group:!Replace! 1 is a literal, which activates !Replace! processing. It is
required once, before any !Replace! commands. Without ^define group:!Replace! 1,
!Replace! commands in the preamble are ignored.
^define group:!Replace!Original!Line Replacement!Line is the construct of the
!Replace! command. There must not be a space between ^define group:!Replace! and
Original!Line. The contents of Original!Line must not include spaces or any control
character (a character with a hexadecimal value of 20 or less). If the text in the original line
includes spaces or the specified control characters, replace the spaces and control characters
with ! (exclamation points) as a placeholder. You can include any number of !Replace!
commands in the preamble.
For example,
^define group:!Replace! 1
^define group:!Replace!^field!Date ^global Date
^define group:!Replace!^field!Payment ^global Ignore
In this example, ^field Date is changed to a global field and ^field Payment is discarded.
!Replace! Considerations
Keep these considerations in mind when using !Replace!:
!Replace! can only be used to replace input lines in the raw data file; it will not replace lines
in the preamble.
Intelligent Pagination
318
You can put a ~ (tilde) in the replacement text. Because the Print Agent interprets a tilde as
a newline character, it is possible to replace a single line with multiple lines. Using tildes
provides an easy mechanism for inserting additional input lines. For example, replacing
^field x with ^field Dept~Shipping~^field x inserts two input lines before ^field x.
The Print Agent must activate !Replace! processing before reading the data file. Therefore,
the command to activate !Replace! must be provided either on the command line or in the
preamble in the template. Including !Replace! in a preamble external to the template, that is
one identified to the Print Agent with the -apr command line option, will have no effect.
Caution: Ensure you activate !Replace! processing only when needed, as it will increase
your processing overhead. !Replace! examines every line in the data file and does
a dictionary look-up for each of those lines. Once !Replace! processing is activated
for a data file, it cannot be turned off.
END-OF-PAGE CONDITIONS
Print Agent can be made to automatically detect a page full condition when there is not enough
space within the printable area on the page to print the current group. It determines this by
comparing the amount of available space in the printable area to the size requirements of the
group. To achieve this, define the space requirements for a group using the Intelligent
Pagination command, \reserve (see page 278). This command is usually the first action for an
event.
For example:
^define group:PODetail!OnEntry
\reserve"1.50",in\subform4\fieldITEM.
^define group:PODetail!OnBOF
\page2\fieldPOSITION2.
This example shows a groupname!OnEntry event handler that specifies that one and one half
inches must be available within the printable area on the page before this event can
successfully execute. If the space is not available, then the groupname!OnBOF event handler
(see page 311) executes; the current page ejects, Print Agent initializes page 2, and sets the
pen position in the field POSITION2.
Processing then continues in the groupname!OnEntry event handler; Print Agent lays down the
subform on page 4 of the template, and sets the position in the field named ITEM.
It is important to note that although the end-of-page condition interrupts the !OnEntry event
handler, processing resumes at that event when the end-of-page processing completes.
SINGLE-CHARACTER OPTIONS
Print Agent allows you to specify character values, in lieu of the actual character, in certain
command line options and configuration settings. This is useful in cases where the character
you require is not a standard keyboard character. To specify a character value, use the
sequence \n, \nn or \nnn, where n is a decimal digit with a minimum value of 1 and a
maximum value of 255. The sequence is replaced with the character having the decimal value
given by the digits.
For example, to change the alternate newline character to the PC-850 character
(ucircumflex), start Print Agent with this command line option:
-anl\150
Represent a literal backslash within a parameter by the sequence \\ (double backslash). For
example, to change the currency debit symbol to \+ (backslash plus), use the command line
option:
-acudb=\\+
Alternatively, if a parameter value is just the single \ (backslash), then the whole value is a
literal backslash. For example, to change the alternate newline character to a \ (backslash),
use the command line option:
-anl\
Specifying character values this way avoids problems when using text editors which may use a
different symbol set than that used by your data files. For example, the decimal value of 150
used in the character string above represents the PC-850 character (ucircumflex). Under
Windows, Notepad will allow you to enter this character by holding down the Alt key and typing
150 on the keypad. However, it will put it into the file as the value 251, because it translates
typed characters from PC-850 into ISO-Latin1. Now when you examine the file using DOS edit,
(ucirmumflex) is displayed as (square root). Consequently, it is not possible to directly
enter the PC-850 character into a parameter file or into the Job Management Database
using Notepad, but you can specify it as \150 instead.
-acucc=
[Special] CurrencyComma
-acucd=
[Special] CurrencyDot
-acucic=
[Special] CurrencyInComma
-acucid=
[Special] CurrencyInDot
-acucp=
[Special] CurrencyParenthesis
-acucr=
[Special] CurrencyCR
-acucs=
[Special] CurrencySymbol
-acudb=
[Special] CurrencyDB
-amaxicodeeol
[Special] MAXICODEEOL
-amaxicodeifs
[Special] MAXICODEIFS
-amaxicodehrd
[Special] MAXICODEHRD
-amaxicodetrlr
[Special] MAXICODETRLR
-anf
[Special] FieldChar
-anl
[Special] NewlineChar
-apcc
[Special] PrefixChar
-apcd
[Special] DictionaryNameSeparator
-apce
[Special] EventNameSeparator
-apci
[Special] ITCPrefixChar
-apcv
[Special] SubstitutionPrefixChar
-apdf417eol
[Special] PDF417EOL
-aqrcodeeol
[Special] QRCODEEOL
-d
[Special] QuoteChar
N/A
[MonthNames] Language1Abbreviated
N/A
[MonthNames] Language1Full
N/A
[MonthNames] Language2Abbreviated
N/A
[MonthNames] Language2Full
320
321
PRINTER STRINGS
Certain commands, configuration settings, and command-line options, when printing via a Print
Agent presentment target, accept strings to be sent directly to the printer. The strings may be in
the format *ptrstring or +encoded-ptrstring.
ptrstring is a string to be sent literally to the printer. When supplied in the data stream, it
must not contain characters that are special to Print Agent. When supplied on the command
line, it must be quoted. You can use this format with PostScript Level 2 printers, which are
driven by printable ASCII strings.
encoded-ptrstring may contain characters encoded numerically using the format \nnn,
where nnn is a three-digit decimal number. Use leading zeros as needed to pad out the
number to three digits. The number must be at least 001 and at most 255. For example, to
represent the string abc<ESC>123<ESC>, where <ESC> is the ASCII escape character, use
the encoded string:
+abc\027123\027
-ati
[Printer] InputTray
-ato
[Printer] OutputTray
-adu
[Printer] Duplex
You can also use *ptrstring and +encoded-ptrstring, when printing via a Print Agent
presentment target, with the following commands:
Commands
^duplex
^page duplex
^trayout
^eject duplex
^page trayin
\pagenn,duplex
^eject trayin
^page trayout
\pagenn,trayin
^eject trayout
^trayin
\pagenn,trayout
Special Characters
This Appendix lists the special characters used by Print Agent. Print Agent recognizes these
characters in the data stream as the start of a command or a special action.
If possible, do not use these characters in your database. However, if your database uses one
of these characters for another purpose, you can change the Print Agent character, with the
exception of the CTRL+A (Forced Space), to another character. Take care to ensure that no
two characters are alike. If they are, Print Agent will not know how to interpret them.
` (NEW FIELD)
To end a field and move to the next field, insert a new field character in the data stream. The
default new field character is a ` (back quotation mark).
This character is especially useful when you merge data from a transaction file using
comma-delimited data or newline-delimited data. In this case, the new field character has the
same effect as a ^field command.
When Print Agent processes a fill justified field, it considers all following lines in the file to be
data for the field, until it encounters a ^field command or new field character. Therefore, if you
are merging data in field-nominated or comma-delimited format and using a transaction file that
does not contain ^field commands, all data for fill justified fields terminate with the new field
character.
To change the default new field character, see ^newfield (New Field Character) on page 204
and -anf (New Field Character) on page 96.
Special Characters
323
To change the default dictionary name separator prefix character, see ^prefix (Prefix
Character) on page 216 and -apcd (Dictionary Name Separator Prefix Character) on
page 99.
Special Characters
324
~ (ALTERNATE NEWLINE)
To end a line in a multiline field or to end a single line field, insert an alternate newline character
in the data stream. The default alternate newline character is a ~ (tilde).
For example, you could use data like this for a multiline field:
First text~Second line~Third text line
To change the default alternate newline character, see ^terminator (Alternate Newline
Character) on page 226 and -anl (Alternate Newline Character) on page 97.
Label Printers
Print Agent can output to Datamax, Intermec, TEC, and Zebra label printers. However, not all
supported label printer models can take advantage of the full functionality of Print Agent.
UP
TE
DA
Preload the printer with the logo by compiling the graphic on the boilerplate. The option for
format memory module must be checked. Send this .prn to the printer to store in its
memory.
Create a new .mdf with an empty field for the ^graph or \graph command to work. The
option for format memory module must be turned off, or the previous bitmap will be erased
and replaced with nothing.
Remember to have the bitmap in the \logos directory and ensure that the logo path keyword
in the jfmerge.ini file points to the \logos directory.
Boilerplate graphics are not limited, except that they must be compiled with the format memory
module turned on.
If a logo must be re-sized (shrunk) to fit on a label in Output Designer, it will not be positioned
properly on the output. Therefore, print at a slow speed. (It is recommended that you select 2
ips at compile time.)
Rotating Characters
When viewing the template in Output Designer, characters may not rotate properly if you do not
have the correct Windows font. This applies to any fixed width font.
Double-byte Support
There is no support for double-byte characters sets on Datamax printers.
Label Printers
Datamax DMX600
Line Thickness
Line thickness on circles or shaded boxes is not supported. Regular shading is supported.
Graphic Downloads
The width limit for Datamax graphic downloads is 6.8".
OCR-B Font
Only the following characters exist in OCR - B:
0123456789 <>CENSTXZ|
Graphic Downloads
The width limit for Datamax graphic downloads is 6.8".
Datamax Prodigy
Line Thickness
This label printer supports non-shaded rectangles with line thickness. It does not support
shading.
326
Label Printers
327
TE
DA
This section describes Print Agent functionality that may not be handled as described by
Intermec label printers. The functionality noted is specific to all Intermec models.
Rotating Characters
When viewing the template in Output Designer, characters may not rotate properly if you do not
have the correct Windows font. This applies to any fixed width font.
FNC1
\2
FNC2
\3
FNC3
\4
FNC4
Print Agent ignores the function codes \A, \B, \C, \S, and \D. The Intermec printer will
automatically switch between barcode subsets with function codes \A, \B, and \C, while the
Intermec printer does not support \S and \D.
Double-byte Support
There is no support for double-byte characters sets on Intermec printers.
Label Printers
328
TE
DA
This section describes Print Agent functionality that may not be handled as described by the
supported TEC label printers:
Model 472-QQ
Model 672-QQ
Model 872-QQ
Print Agent uses the ESC, LF, NUL method for sending printer control codes.
Fine adjustments to label feeding must be made using the front panel of the printer.
Dynamic templates
Printing arcs
Shading of objects
Line styles
Barcodes
A total of 32 barcodes can be on one label.
The UCC/EAN128 barcode is limited to 19 digits. This is a TEC printer limitation, documented in
the TEC manual.
For the barcode Code128, \A, \B and \C must be used to indicate a change in subsets within the
barcode data. To get a > char, you must put a \> in the data, as the > char is special to the
TEC printer.
For the PDF417 barcode, if you want a > character in the data, you must put the characters
>0 in the data.
There may be problems with barcodes rotated to 90 or 270 degrees, depending on the printer
and the type of ribbon used. The barcodes may print with bars that are too close together to
scan. To correct this, you can lower the temperature of the print head and, if possible, the speed
of printing. To lower the print speed, use the printer options box at compile time. To lower the
temperature, use the front panel. Under <2>Parameter set, look for the Tone Adjust <T> option,
and decrease the number shown.
Label Printers
329
Graphics
Only 1 bit logos for use with the ^graph command are supported. There is no limit for
boilerplate logos.
The ^graph command is supported in both portrait and landscape mode.
Only monochrome logos are supported. Color logos specified with the ^graph command are
ignored (and do not print). Color logos on the boilerplate will be translated to monochrome
logos by Output Designer before being printed.
Line Widths
The standard line widths in Output Designer do not correspond directly with the supported line
widths on the TEC printers. On the printers, lines may be from 1 to 9 dots wide. The printer
resolution is 12 dots/mm, so the standard line widths in Output Designer correspond to the TEC
line widths as follows:
For other line widths, the Custom line width option may be used.
OCR Fonts
The OCR A and OCR B fonts do not have lower case letters. Data must be entered in UPPER
CASE. The extended characters that are supported for this font are:
" $ . | 0123456789 <> A-Z
Rotating Characters
When viewing the template in Output Designer, characters may not rotate properly if you do not
have the correct Windows font. This applies to any fixed width font.
Label Printers
330
Text Strings
A total of 199 text strings can appear on a label using a bitmap font (Times, Helvetica,
Presentation, Letter Gothic, Prestige Elite, Courier, OCR-A, OCR-B) and a total of 99 text
strings can appear on a label using an outline font (TEC FONT 1, TEC FONT 2). If this limit is
exceeded, Print Agent will log an error. These limits may be reached quickly when using either
Inline Text Control commands or full justification on a field, as these commands break text into
single words for printing, and each word becomes a string.
Macros
Temporary macros (macros stored to RAM) are not supported. Only macros downloaded to a
PCMCIA card are supported. A PCMCIA card is a hardware option. Macros downloaded to a
PCMCIA card will stay downloaded, even if the printer is turned off. The only valid argument for
the -m (Download Macro to Printer) command line option is r. Any other argument (t, p, f, m,
h) will be ignore by Print Agent and macros will not be used.
To download a macro to the PCMCIA card, use the command line option:
-m#r
This example formats the flash memory card and then stores the template tec_1.mdf as macro
number 15.
The options for the -avnr command are
Double-byte Support
There is no support for double-byte characters sets on Datamax printers.
Label Printers
331
UP
TE
DA
Rotating Characters
When viewing the template in Output Designer, characters may not rotate properly if you do not
have the correct Windows font. This applies to any fixed width font.
Logos
If a logo must be re-sized (shrunk) to fit on a label in Output Designer, it will not be positioned
properly on the output. Therefore, print at a slow speed. (At compile time, it is recommended
that you select 2 ips.)
Label Printers
332
^ and ~ Characters
The ^ (caret) and ~ (tilde) characters do not work on Zebra label printers. This is a printer
limitation.
Printing of Circles
Zebra label printers cannot render circles. This is a Zebra label printer limitation.
Double-Byte Support
Support for double-byte characters sets on Zebra printers is limited to the Japanese language.
Zebra Stripe
The OCR A font supports upper case only. Data must be in upper case.
Zebra 170
The OCR A font supports upper case only. Data must be in upper case.
Production Date
334
where:
The first \1 is the FNC1 character which says this is an EAN-128 barcode (all EAN-128
barcodes start with FNC1).
PRODUCTION DATE
The Production Date is described in the specification as:
Application Identifier: 11
Description: Production Date
Data format: an6 (YYMMDD)
The data for this part of the barcode starts as:
11010228
where:
Notice that there is no \1. This is because the data is fixed length (6 characters), so there is no
need for a field terminator.
The specification says You should always use Start C when the data, inclusive of the
Application Identifier, begins with four or more numeric characters so we should start this field
by switching to code c (Code C sequences can only be numeric, and must contain an even
number of digits).
For Print Agent, we switch to Code C with \c - the data for this part of the barcode will then be:
\c11010228
335
where:
There is a limit of 48 characters in a EAN-128 barcode. This seems to translate quite well to the
number of characters in the data field for Print Agent - you do not count the \s because each of
the pairs \x generates 1 character in the barcode.
EW
Note: UPS MaxiCode Barcodes are supported only on Zebra and Intermec printers
To produce a UPS Maxicode 2D barcode Print Agent requires that you supply the data values in
the following order:
Country code
Postal code
Tracking number
SCAC
Package n/x
Package Weight
Address Validation
Ship To City
Ship To State
You must always supply the data in the correct order (as above). Any omitted data must be
indicated by blank lines, or by the pipe symbol character. The pipe symbol is used as a
substitution delimiter in the jfmerge.ini file. You may redefine this character if necessary, but it
must not conflict with any other characters that are used as substitution delimiters.
You can separate the data values by placing them each on a new line or by separating each
data value with the pipe symbol character (|) if they occur on the same line. As an example, let
us suppose that you want to generate a barcode for a field called MAXICODE using the default
settings in the jfmerge.ini file. You could supply the required data either as follows:
^FIELD MAXICODE
068
380
62360
1Z40003506
UPSN
169474
314
1
N
STR
STAD
62
-or^FIELD MAXICODE
068|380|62360|1Z40003506|UPSN|169474|314|| |1/1|1|N|STR|STAD|62
where:
337
338
G
N
EW
The Barcode Identifier, Service Type Identifier, Mailer Identifier, and Serial Number fields
together form the 20-digit tracking code. The Delivery Point ZIP Code forms the routing code.
For the specific range of each of the fields please refer to the Intelligent Mail Barcode
specification.
You must always supply the data in the correct order (as above). Any omitted data must be
indicated by blank lines, or by the pipe symbol character. The pipe symbol is used as a
substitution delimiter in the jfmerge.ini file. You may redefine this character if necessary, but it
must not conflict with any other characters that are used as substitution delimiters.
You can separate the data values by placing them each on a new line or by separating each
data value with the pipe symbol character (|) if they occur on the same line. As an example, let
us suppose that you want to generate a barcode for a field called IMB using the default settings
in the jfmerge.ini file. You could supply the required data either as follows:
^FIELD IMB
01
234
567094
987652222
01234567891
^COMMENT
-or^FIELD IMB
01|234|567094|987652222|01234567891
^COMMENT
where
340
Index
!
!DuplexBack (at duplex page back) group event handler 309
!DuplexFront (at duplex page front) group event handler 309
!EndData (End Data Processing) 312
!FldNotAvail (field not available)
field event handler 316
group event handler 309
!FldUsed (field used)
field event handler 313
group event handler 310
!Format (field formatting)
field event handler 313
!OnBOF (at bottom of page)
field event handler 312
group event handler 311
!OnEntry (at activation of field) field event handler 312
!OnEntry (at activation of group) group event handler 311
!OnExit (at exit current field) field event handler 312
!OnExit (at exit current group) group event handler 311
!OnOverflow (field overflow) field event handler 315
!OnTOF (at top of page)
field event handler 312
group event handler 312
!Replace! (replace line) 316
!Simplex (at simplex mode) group event handler 312
$
$currentx (current horizontal position) 282
$currenty (current vertical position) 282
$date (current date) 283
$duplexsurface (duplex mode and surface) 284
$ffile (current path and file name) 286
$fieldx (horizontal distance to field) 286
$fieldy (vertical distance to field) 286
$file (current file name) 287
$page (current page number) 287
$PAGE fields 152
$printablebottomy (bottom of printable area) 288
$printableleftx (left limit of printable area) 288
$printablerightx (right limit of printable area) 288
$printabletopy (top of printable area) 289
$time (current time) 289
@
@at (at sign) 291
@cr (carriage return) 291
@lf (line feed) 291
@parmfile (parameter file) 157
@qu (quotation mark) 291
\
\$page (page number) 280
\b (set bold font) 235
\c (select color by index number) 235
\checksurface (duplex mode and surface) 257
\cn (select color by name) 236
\defineresolve (assign resolved value to variable) 258
\dn (lower text from baseline) 237
\f (select font by index number) 237
\field (move to specific field) 259
\fn (select font by name) 238
\form (open template) 260
\fs (adjust font size) 239
\graph (print logo or raster graphic) 263
\group (execute specified group) 266
\i (set italics font) 239
\li (indent left margin to next tab stop) 240
\n (insert newline character) 240
\normal (set style attributes off) 241
\off (suspend Inline Text Control processing) 241
\on (resuming Inline Text Control processing) 242
\page (move to new page in template) 267
duplex 268
trayin 267
trayout 268
\pic (picture formatting) 242
\plain (field default font) 252
\pop (restore saved font) 252
\position (change placement of data) 268
[absolute] 273
^
^$page (page number) 231
^comment (insert comment in data stream) 174
^continue (continue record structure) 175
^copies (number of copies) 176
^currency (currency formatting) 176
^data (change active record definition) 179
^datagroup begin (begin data group) 179
^datagroup end (end data group) 180
^define (assign value to variable) 180
and the Group dictionary 308
using with Intelligent Pagination commands 256
^defineresolve (assign resolved value to variable) 182
^duplex (duplex printing) 182
^eject (send formfeed to printer) 183
duplex 184
trayin 183
trayout 183
^fax (fax data) 184
^field (move to specific field) 188
^file (include file in data) 189
^form (open template) 191
^form command, use (-axuseformcommand) 171
^global (define global field) 193
^graph (print logo or raster graphic) 194
^group (execute specified group) 198
^inline (activate Inline Text Control processing)
[fixed|variable|fixed variable] 200
[freset|nofreset] 201
[novarsub|varsub] 200
{on|off} 199
^inlinegraphbegin (graphic image follows) 201
^inlinegraphend (graphic image ends) 203
^job command 22
options
-aji (job id) 22
-axx (execute task exclusively) 22
jobtokens 22
^key (specify record type) 203
^macro (insert macro at current position) 204
^newfield (new field character) 204
Index
^page (move to new page in template) 205
duplex 206
trayin 205
trayout 206
^passthru (send data directly to output) 206
^popsymbolset (restore saved symbol set) 207
^position (change placement of data) 207
[absolute] 211
left|right 215
relative 214
restore 215
save 215
up|down 213
^prefix (prefix character) 216
dictvar x 217
inline x 217
varsub x 218
x 216
^pushsymbolset (save current symbol set) 218
^record (define record structure) 219
^reformat (reformat data) 220
^shell (invoke an operating system command) 220
^subform (activate subform) 221
^symbolset (select symbol set) 222
^tab (set or clear horizontal tab stops) 225
[default] 225
[default] clear 226
^terminator (alternate newline character) 226
^trace (trace facility) 227
^trayin (input tray) 227
^trayout (output tray) 230
^undefine (clear defined variables) 231
^unrecognized-command (unrecognized command) 174
{[dictionary-name]:} variable-name (retrieve variables from
dictionary) 290
A
-aafgd (store global field data) 66
-aafge (allow field global events) 66
-aafgfd (allow field global flag data) 66
-aap (print all pages) 66
-aat (use printer association table) 67
-abmk (bookmark file) 68
-abms (bookmark section) 69
about Print Agent 13
absolute positioning
\positionabsolute 273
^position absolute 211
-acollate (collate output) 69
-acs (century split) 69
activating
group
\group 266
^group 198
Inline Text Control processing
^inline 199
-aitc 88
subform
342
Index
343
B
banner, suppressing (-j) 134
barcode
PDF417 102, 103
QR Code 114
UPS MaxiCode 93, 94, 95
barcode processing (-aeb) 80
blank template, printing 14
bold font, setting (\b) 235
bookmark file (-abmk) 68
bookmark section (-abms) 69
bookmarks, creating 45
C
-c (number of copies) 133
cache location 20
cache lock file, jfurlcch.lck 20
calculation expressions 292
formatting calculated values 292
functions 297
literal numbers 293
literal strings 293
numeric limits 297
operators 294
order of evaluation 296
variables 294
century split (-acs) 69
change active record definition (^data) 179
character
alternate newline 324
^terminator 226
Index
-anl 97
new field 322
^newfield 204
-anf 96
newline
control handling (^reformat) 220
control handling (-r) 140
inserting (\n) 240
replace (-arc) 114
skipping (-asc) 116
Zebra hex indicator (-azc) 133
character values 319
character, prefix
dictionary name separator 322, 323
^prefix dictvar x 217
-apcd 99
Dynamic Merge command 322
^prefix x 216
-apcc 98
event name separator (-apce) 100
Inline Text Control 323
^prefix inline x 217
-apci 100
variable substitution 323
^prefix varsub x 218
-apcv 101
check for front or back surface 257, 284
clearing defined variables (^undefine) 231
code page, specify (-axcodepage) 160
code point, Unicode, inserting (\u+) 254
collate output (-acollate) 69
collation support 56
color
selecting by index number (\c) 235
selecting by name (\cn) 236
comma-delimited format (-d) 65
command line
defining dictionary variables (-adv) 80
length 157
syntax 63
command line options
@parmfile (parameter file) 157
-aafgd (store global field data) 66
-aafge (allow field global events) 66
-aafgfd (allow field global flag data) 66
-aap (print all pages) 66
-aat (use printer association table) 67
-abmk (bookmark file) 68
-abms (bookmark section) 69
-acollate (collate output) 69
-acs (century split) 69
-acu (currency formatting) 70
cc (thousands separator) 71
cd (decimal separator) 72
cic (incoming thousands separator) 72
cid (decimal separator) 73
cl (currency symbol location) 74
cp (currency parenthesis) 74
cr (credit symbol) 72
cs (currency symbol) 71
344
Index
345
Index
\trace (trace facility) 280
\u+ (insert unicode code point) 254
\ui (unindent left margin to previous tab stop) 254
\ul (set underlining) 253, 255
\up (raise text from baseline) 255
^$page (page number) 231
^comment (insert comment in data stream) 174
^continue (continue record structure) 175
^copies (number of copies) 176
^currency (currency formatting) 176
^data (change active record definition) 179
^datagroup begin (begin data group) 179
^datagroup end (end data group) 180
^define (assign value to variable) 180
^defineresolve (assign resolved value to variable) 182
^duplex (duplex printing) 182
^eject (send formfeed to printer) 183
^fax (fax data) 184
^field (move to specific field) 188
^file (include file in data) 189
^form (open template) 191
^global (define global field) 193
^graph (print logo or raster graphic) 194
^group (execute specified group) 198
^inline (activate Inline Text Control processing)
[fixed|variable|fixed variable] 200
[freset|nofreset] 201
[novarsub|varsub] 200
{on|off} 199
^inlinegraphbegin (graphic image follows) 201
^inlinegraphend (graphic image ends) 203
^key (specify record type) 203
^macro (insert macro at current position) 204
^newfield (new field character) 204
^page (move to new page in template) 205
duplex 206
trayin 205
trayout 206
^passthru (send data directly to output) 206
^popsymbolset (restore saved symbol set) 207
^position (change placement of data) 207
[absolute] 211
left|right 215
relative 214
restore 215
save 215
up|down 213
^prefix (prefix character) 216
dictvar x 217
inline x 217
varsub x 218
x 216
^pushsymbolset (save current symbol set) 218
^record (define record structure) 219
^reformat (reformat data) 220
^shell (invoke an operating system command) 220
^subform (activate subform) 221
^symbolset (select symbol set) 222
^tab (set or clear horizontal tab stops) 225
[default] 225
346
D
-d (comma-delimited format) 65
data
changing placement
\position 268
^position 207
fax (^fax) 184
global field, reformat (-arg) 115
include file (^file) 189
passthru (^passthru) 206
passthru, changing placement
\position 268
^position 207
path (-adp) 75
reformatting
^reformat 220
global field data (-arg) 115
-r 140
sending directly to output (^passthru) 206
stream, comment (^comment) 174
data format
comma-delimited 27
comma-delimited (-d) 65
field-nominated 27, 64
fixed record 27, 64
XML 32, 64
data groups 179, 180
data groups, suppress (-axflatten) 163
Index
data symbol set for PDF417 barcodes (-apdf417conv) 103
date
two digits to four digits (-acs) 69
variable ($date) 283
debugging
\trace 280
^trace 227
-atf (trace file name) 119
-n (event trace level) 138
default font (\plain) 252
default group, JFDEFGROUP 199, 267
defining
custom finish options 53
dictionary variable (^define) 180
dictionary variable (-adv) 80
global field (^global) 193
record structure (^record) 219
delimiting Inline Text Control commands 232
dictionary
clearing variable (^undefine) 231
DocVar 57
Environment 58
Fax 58
Global 59
global variable 193
Group 60, 308
INI 60
retrieving variables from 290
Sys 61
undefining variables (^undefine) 231
User 61
variable, defining (^define) 180
variable, defining (-adv) 80
dictionary name separator prefix character
^prefix dictvar x 217
-apcd 99
directing output (-z) 154
discarding unknown fields (-afx) 84
displaying messages (-v) 153
dither gray-scale method (-agsm) 86
document variable 57
JFPREAMBLE 131
DocVar dictionary 57
downloaded template cache 20
downloading
templates quietly to printer (-q) 139
duplex mode and surface
$duplexsurface 284
\checksurface 257
duplex printing
^duplex 182
-adu 76
Dynamic Merge command prefix character
^prefix x 216
-apcc 98
Dynamic Merge commands 173
syntax 173
347
E
EAN-128 Barcodes 333
ejecting page (^eject) 183
end group prefix (-axendgroupprefix) 161
end group(-axuseendgroup) 170
end of line character for PDF417 barcodes (-apdf417eol) 103
end of line character for QR Code barcodes (-aqrcodeeol) 114
end of line character, MaxiCode (-amaxicodeeol) 93
end-of-page processing 192, 261, 318
Environment dictionary 58
evaluation, order, calculation expressions 296
event handler
field 312
!FldNotAvail (field not available) 316
!FldUsed (field used) 313
!Format (field formatting) 313
!OnBOF (at bottom of page) 312
!OnEntry (at activation of field) 312
!OnExit (at exit current field) 312
!OnOverflow (field overflow) 315
!OnTOF (at top of page) 312
group
!DuplexBack (at duplex page back) 309
!DuplexFront (at duplex page front) 309
!FldNotAvail (field not available) 309
!FldUsed (field used) 310
!OnBOF (at bottom of page) 311
!OnEntry (at activation of group) 311
!OnExit (at exit current group) 311
!OnTOF (at top of page) 312
!Simplex (at simplex mode) 312
JfEndData!EndData (end data processing) 312
event name separator prefix character (-apce) 100
event trace level (-n) 138
events
defining group and field 307
defining in the Group dictionary 308
exclude namespaces (-axexclude) 161
execute task exclusively (-axx) 22
executing group
\group 266
^group 198
EXOVDYN Job Table entry 121
EXOVST Job Table entry 121
expressions, calculation 292
formatting calculated values 292
functions 297
literal numbers 293
literal strings 293
numeric limits 297
operators 294
order of evaluation 296
variables 294
F
-f (file name override) 133
fax data (^fax) 184
Fax dictionary 58
Index
fax mode (-apm) 113
field
$PAGE 152
attributes, setting
^inline [freset|nofreset] 201
-afr 84
default font (\plain) 252
discarding unknown (-afx) 84
event handler 312
!FldNotAvail (field not available) 316
!FldUsed (field used) 313
!Format (field formatting) 313
!OnBOF (at bottom of page) 312
!OnEntry (at activation of field) 312
!OnExit (at exit current field) 312
!OnOverflow (field overflow) 315
!OnTOF (at top of page) 312
events, allow for global fields (-aafge) 66
events, defining 307
global
defining (^global) 193
events, allow (-aafge) 66
initializing (-agv) 87
process Output Designer global fields (-aifgf) 87
moving to specific
\field 259
^field 188
new 322
new field character
^newfield 204
-anf 96
picture formatting
\pic 242
-apf 112
processing sequence 188, 260
store data in global dictionary (-aafgd) 66
store data in global dictionary (-aafgfd) 66
fieldname (global field) 290
field-nominated format 64
file
bookmark (-abmk) 68
cache in local file system 20
configuration, path (-aii) 87
include in data (^file) 189
location, macro status table (-ams) 96
log, name (-all) 90
name variable ($file) 287
name, overriding (-f) 133
name, unique (-z) 155
open template
\form 260
^form 191
parameter (@parmfile) 157
path and file name variable ($ffile) 286
path, configuration (-aii) 87
preamble (-apr) 114
response (-arx) 115
template, download from HTTP server 20
temporary, use (-axusetempfile) 132
finish option, specify (-afinish) 81
348
G
generic printer driver 39
global data, outputting using an XML data file 42
Global dictionary 59
global field
allow field events (-aafge) 66
data, reformat (-arg) 115
defining (^global) 193
in fixed format records 194
initializing (-agv) 87
Index
process Output Designer global fields (-aifgf) 87
processing 40
store data from ^field in global dictionary(-aafgd) 66
store data from ^field in global dictionary(-aafgfd) 66
variable (fieldname) 290
graphic
gray-scale brightness (-agsb) 85, 86
gray-scale contrast (-agsc) 85
gray-scale method (-agsm) 86
in the data stream 201
printing
\graph 263
^graph 194
^inlinegraphbegin 201
^inlinegraphend 203
supported formats 195, 263
graphic, raster 194, 263
group
activating
\group 266
^group 198
default JFDEFGROUP 199, 267
event handler
!DuplexBack (at duplex page back) 309
!DuplexFront (at duplex page front) 309
!FldNotAvail (field not available) 309
!FldUsed (field used) 310
!OnBOF (at bottom of page) 311
!OnEntry (at activation of group) 311
!OnExit (at exit current group) 311
!OnTOF (at top of page) 312
!Simplex (at simplex mode) 312
JfEndData!EndData (end data processing) 312
events, defining 307
executing
\group 266
^group 198
set current context (\group) 266
variable 198, 266
Group dictionary 60, 308
group prefix
end (-axendgroupprefix) 161
start (-axstartgroupprefix) 169
group, end (-axuseendgroup) 170
H
hard disk drive
formatting (-afdf) 81
macro residing in 138
specifying a volume number (-avnh) 129
hex indicator character, Zebra (-azc) 133
horizontal positioning
$currentx 282
$fieldx 286
\positionleft|right 277
^position left|right 215
horizontal tab stops, set or clear (^tab) 225
349
Index
J
-j (suppress banner) 134
jetkeys.ini translation file 304
JFDEFGROUP 199, 267
JfEndData!EndData (end data processing)
group event handler 312
JFMERGE Task Table entry 23
jfmerge.ini configuration file 87
location 21
JFPREAMBLE document variable 119, 131
jfurlcch.lck cache lock file 20
job id (-aji) 22
job, secure (-asj) 116
jobtokens 22
just-in-time fonts (-ajutf) 89
just-in-time macros (-ajutm) 89
K
keyed records (^key) 203
M
-m (download macro to printer)
f (load-first-time macro) 137
h (macro in hard disk drive) 138
m (managed memory macro) 137
p (permanent macro) 137
r (macro in nonvolatile memory) 137
t (temporary macro) 137
macro
already downloaded to printer (-l) 135
changing placement
\position 268
^position 207
downloading (-m) 135
insert (^macro) 204
just-in-time loading (-ajutm) 36, 89
load as needed (-ajutm) 89
load-first-time (-mf) 137
managed memory quota (-amq) 96
managed memory, downloading 137
nonvolatile memory 137
number 135
^macro 204
-m 135
permanent 137
printing
^macro 204
-m 135
residing in hard disk drive 138
350
N
-n (event trace level) 138
name, log file (-all) 90
namespaces, exclude (-axexclude) 161
new field character 322
^newfield 204
-anf 96
newline character
alternate
^terminator 226
-anl 97
control handling
^reformat 220
-r 140
handling for PDF417 barcodes (-apdf417bc53) 102
inserting (\n) 240
nofreset (suspend the resetting of field attributes) 201
nonvolatile memory
formatting (-afmf) 82
macro residing in 137
specifying a volume number (-avnh) 129
novarsub (suspend variable substitution processing) 200
number
copies to print
^copies 176
-c 133
macro
^macro 204
-m 135
page, changing
\$page 280
^$page 231
page, starting (-s) 152
pages in each record of print job (-atf) 119
pages, total in print job (NumberPages) 121
Index
numbering (page n of m format) 119, 121
NumberPages variable 121
numbers, literal 293
numeric character values 319
numeric limits, calculation expressions 297
numeric picture specifier 248
O
offset data on page (-p) 139
opening template
\form 260
^form 191
operators, calculation expressions 294
order of evaluation, calculation expressions 296
order, output (-axorder) 164
output
-ato 124
collate (-acollate) 69
directing (-z) 154
paper tray
^trayout 230
paper tray number 124
PDF
bookmark file (-abmk) 68
bookmark section (-abms) 69
Inline PDF macros (-apdfm) 103
staple (-afinish) 81
output order (-axorder) 164
overriding file name (-f) 133
overview, Print Agent 13
P
-p (printer offset) 139
page
full/end-of-page 318
move to new
\page 267
^page 205
number
\$page 280
^$page 231
number for $PAGE fields (-s) 152
numbering (page n of m format) 119, 121
numbering variable ($page) 287
offset data (-p) 139
printable area
bottom ($printablebottomy) 288
left limit ($printableleftx) 288
right limit ($printablerightx) 288
top ($printabletopy) 289
printing (-aap) 66
specifying number for print (-aip) 88
using older length(-aopl) 98
pages
maximum to print (-amaxpagestoprint) 95
print subset (-apg) 112
total in each record of print job (-atf) 119
351
Index
^position save 215
top of printable area ($printabletopy) 289
vertical
$currenty 282
$fieldy 286
\positionup|down 274
^position up|down 213
preamble
execute at start-up (-axps) 131
execute upon processing ^form (-axpf) 131
preamble file, inserting (-apr) 114
prefix character
dictionary name separator 322, 323
^prefix dictvar x 217
-apcd 99
Dynamic Merge command 322
^prefix x 216
-apcc 98
event name separator (-apce) 100
Inline Text Control 323
^prefix inline x 217
-apci 100
variable substitution 323
^prefix varsub x 218
-apcv 101
presentment target, select (-asp) 117
presentment targets
using generic 39
Print Agent
calling 22
configuration file, jfmerge.ini 87
configuring 17
processing options 65
using with Central 22
Print Agent samples 15
print fax mode (-apm) 113
print subset of pages (-apg) 112
printable area of page
bottom ($printablebottomy) 288
left limit ($printableleftx) 288
right limit ($printablerightx) 288
top ($printabletopy) 289
printed lines of text, space between 200
-avl 128
printer association table (-aat) 67
printer command, duplex printing 79
printer offset (-p) 139
printer password 116
printer strings 321
printer tray number, output
^trayout 230
-ato 124
printer tray numbers, input
^trayin 227
-ati 121
interpret (-atj) 124
printer, bytes of managed memory (-amq) 96
printer, label, considerations 325
printing
all pages of a template (-aap) 66
352
Q
-q (quiet download) 139
QR Code barcodes
end of line character (-aqrcodeeol) 114
queue, output 155
R
-r (reformat data) 140
clip 148
fold 144
no 143
off 146
trunc 150
yes 140
raster graphic 194, 263
record
definition, change active (^data) 179
fixed format 194, 219
Index
structure, continue (^continue) 175
structure, defining (^format) 219
type, specify (^key) 203
record length initial value (-i) 134
records, specify (-axrecord) 167
reformatting data
^reformat 220
in global fields (-arg) 115
-r 140
relative positioning
\positionrelative 275
^position relative 214
renumbering pages 152
replace characters (-arc) 114
replace line, !Replace! 316
replacing a variable (@variable) 282
resetting field attributes 201
response file (-arx) 115
restoring
saved font (\pop) 252
saved position
\positionrestore 277
^position restore 215
saved symbol set (^popsymbolset) 207
resuming Inline Text Control processing (\on) 242
S
-s (starting page number) 152
samples, Print Agent features 15
saving
current font (\push) 252
current symbol set (^pushsymbolset) 218
positioning location
\positionsave 277
^position save 215
section, bookmark (-abms) 69
secure job (-asj) 116
security features
PDF output 104, 105, 107, 108
security level 62, 220
select presentment target (-asp) 117
selecting
color by index number (\c) 235
color by name (\cn) 236
font index number (\f) 237
font name (\fn) 238
symbol set
^symbolset 222
-ass 117
sending
data directly to output (^passthru) 206
formfeed to printer (^eject) 183
setting
bold font (\b) 235
current group context (\group) 266
field attributes
^inline [freset|nofreset] 201
-afr 84
353
Index
-ass 117
specifying translation table file 125
supported sets 222
switching automatically (-autfss) 126
symbol set for PDF417 barcodes (-apdf417conv) 103
symbol set translations, jetkeys.ini 304
syntax
command format 173
command line 63
Dynamic Merge commands 173
Inline Text Control commands 232
Sys dictionary 61
T
tab
moving to next stop (\t) 253
stops, set or clear (^tab) 225
Task Table entry, JFMERGE 23
task, execute exclusively (-axx) 22
template
already downloaded to printer (-l) 135
blank, printing 14
discarding unknown fields (-afx) 84
download from HTTP server 20
downloading quietly to printer (-q) 139
loaded as macro in printer (-l) 135
macro number
^macro 204
-m 135
move to new page
\page 267
^page 205
number of copies to print
^copies 176
-c 133
opening
\form 260
^form 191
path (-afp) 82
printer offset (-p) 139
printing (-aap) 66
starting page number (-s) 152
temporary file, use (-axusetempfile) 132
temporary macro 137
text
bolding (\b) 235
indenting (\li) 240
italicizing (\i) 239
lowering from baseline (\dn) 237
raising from baseline (\up) 255
subscripting (\dn) 237
superscripting (\up) 255
underlining (\ul) 253, 255
unindenting (\ui) 254
threshold gray-scale method (-agsm) 86
trace level, event (-n) 138
tracing
\trace command 280
354
U
underlining text (\ul) 253, 255
Unicode code point
inserting (\u+) 254
Unicode transformation format 117, 224
Unicode Windows printing (-auwp) 127
unindenting text (\ui) 254
unique file name, generate (-z) 155
unknown fields, discarding (-afx) 84
unrecognized command (^unrecognized-command) 174
UPS Maxicode 2D Barcodes 336
UPS MaxiCode barcode 93, 94, 95
URL when specifying MDFname 221, 279
use ^form command (-axuseformcommand) 171
use temporary file (-axusetempfile) 132
use xslt stylesheet (-axaxsl) 159
User dictionary 61
USPS Intelligent Mail Barcodes 339
UTF Transformation Formats 224
UTF-8, convert data (-autf8) 126
V
-v (message display) 153
variable
assigning resolved value
\defineresolve 258
^defineresolve 182
assigning value (^define) 180
bottom of printable area ($printablebottomy) 288
clearing value (^undefine) 231
creating (^define) 180
current date ($date) 283
current file name ($file) 287
current page number ($page) 287
current path and file name ($ffile) 286
current time ($time) 289
custom 131, 132
dictionary, defining (-adv) 80
document, JFPREAMBLE 131
duplex mode and surface ($duplexsurface) 284
global field (fieldname) 290
horizontal distance to field ($fieldx) 286
horizontal positioning ($currentx) 282
leading
^inline variable 200
Index
355
-avl 128
left limit of printable area ($printableleftx) 288
NumberPages 121
replacing (@variable) 282
right limit of printable area ($printablerightx) 288
substitution 281
processing 200
top of printable area ($printabletopy) 289
vertical distance to field ($fieldy) 286
vertical positioning ($currenty) 282
variable substitution
prefix character
^prefix varsub x 218
-apcv 101
processing
^inline [varsub|novarsub] 200
-avs 129
variables
$currentx (current horizontal position) 282
$currenty (current vertical position) 282
$date (current date) 283
$duplexsurface (duplex mode and surface) 284
$ffile (current path and file name) 286
$fieldx (horizontal distance to field) 286
$fieldy (vertical distance to field) 286
$file (current file name) 287
$page (current page number) 287
$printablebottomy (bottom of printable area) 288
$printableleftx (left limit of printable area) 288
$printablerightx (right limit of printable area) 288
$printabletopy (top of printable area) 289
$time (current time) 289
@variable (replace a variable) 282
{[dictionary-name]:} variable-name (retrieve variables from
dictionary) 290
calculation expressions 294
fieldname (global field) 290
NumberPages 121
special 291
varsub (variable substitution processing) 200
vertical positioning
$currenty 282
$fieldy 286
\positionup|down 274
^position up|down 213
volume number
specifying for flash memory (-avnr) 129
specifying for hard disk (-avnh) 129
specifying for nonvolatile memory (-avnr) 129
X
XML data processing
-axattributes (map attributes) 158
-axaxsl (use xslt stylesheet) 159
-axcodepage (specify code page) 160
-axendgroupprefix (end group prefix) 161
-axexclude (exclude namespaces) 161
-axflatten (suppress data groups) 163
Index
Y
year, two digit to four digit (-acs) 69
Z
-z (direct output) 154
Zebra hex indicator character (-azc) 133
356