06.12.2012 Views

Technical Reference - KYOCERA Document Solutions

Technical Reference - KYOCERA Document Solutions

Technical Reference - KYOCERA Document Solutions

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

PRESCRIBE Commands<br />

<strong>Technical</strong> <strong>Reference</strong>


Notice<br />

General Infomation<br />

We shall have no liability or responsibility to customers or any other person or entity with respect to any liability, loss or<br />

damage caused or alleged to be caused directly or indirectly by equipment sold or furnished by us, including, but not limited<br />

to, any interruption of service, loss of business or anticipatory profits, or consequential damages resulting from the use or<br />

operation of the equipment or software.<br />

NO LIABILITY WILL BE ASSUMED FOR ANY DAMAGE CAUSED BY IMPROPER INSTALLATION.<br />

Notice on Software<br />

SOFTWARE USED WITH THIS PRINTING SYSTEM MUST SUPPORT IT’S NATIVE MODE (PRESCRIBE) OR ONE OF<br />

ITS EMULATION MODES.<br />

This manual, the computer programs in the printing system referred to in this manual, and any other copyrightable subject<br />

matter sold or provided with or in connection with the sale of the printing system, are protected by copyright. All rights are<br />

reserved. Copying or other reproduction of all or part of this manual, the computer programs, or any other copyrightable<br />

subject matter without the prior written consent of Kyocera Mita Corporation is prohibited. Any copies made of all or part of<br />

this manual, the computer programs, or any other copyrightable subject must contain the same copyright notice as the<br />

material from which the copying is done.<br />

The information in this manual is subject to change without notification. Additional pages may be inserted in future editions.<br />

The user is asked to excuse any omissions or errors in the present edition.<br />

No responsibility is assumed if accidents occur while the user is following the instructions in this manual. No responsibility<br />

is assumed for defects in the printing system’s firmware.<br />

Regarding Tradenames<br />

PRESCRIBE is a registered trademark of Kyocera Corporation. KPDL is a trademark of Kyocera Corporation.<br />

Diablo 630 is a product of Xerox Corporation. IBM Proprinter X-24E is a product of International Business Machines Corporation.<br />

Epson LQ-850 is a product of Seiko Epson Corporation. HP LaserJet, Hewlett-Packard, PCL, and HP-GL/2 are registered<br />

trademarks of Hewlett-Packard Company. Other product names and company names that appear in this manual<br />

are trademarks or registered trademarks of their respective owners.<br />

The Kyocera printing systems use PeerlessPrint5 to provide the HP LaserJet compatible PCL5 language emulation.<br />

PeerlessPrint5 is a trademark of The Peerless Group, Redondo Beach, CA 90278, U.S.A.<br />

© Copyright 2005 - 2008 <strong>KYOCERA</strong> MITA Corporation<br />

All rights reserved<br />

Revision 4.51 2008.6<br />

Typeface Trademark Acknowledgement<br />

All resident fonts in the printing system are licensed from Bitstream Inc. and Agfa corporation. For font license information<br />

for each model, refer to the User’s Manual.<br />

Helvetica, Palatino and Times are registered trademarks of Linotype-Hell AG. Century Schoolbook, Stymie, and Cooper-<br />

Black are trademarks of Kingsley-ATF Type Corporation. ITC Avant Garde Gothic, ITC ZapfChancery, ITC ZapfDingbats,<br />

ITC Souvenir, ITC Benguiat, and ITC Bookman are registered trademarks of International Typeface Corporation. Revue is<br />

a trademark of Esselte Pendaflex Corporation in the U.S., Letraset Canada Ltd. in Canada, and Esselte Letraset Ltd. elsewhere.<br />

Agfa Japan License Agreement Guidelines for the Resident Fonts<br />

1. Software shall mean the digitally encoded, machine readable, scalable outline data as encoded in a special format as<br />

well as the UFST Software.<br />

2. You agree to accept a non-exclusive license to use the Software to reproduce and display weights, styles and versions<br />

of letters, numerals, characters and symbols (“Typefaces”) solely for your own customary business or personal purposes<br />

at the address stated on the registration card you return to Agfa Japan. Under the terms of this License Agreement,<br />

you have the right to use the Fonts on up to three printing systems. If you need to have access to the fonts on<br />

i


ii<br />

more than three printing systems, you need to acquire a multi-user license agreement which can be obtained from<br />

Agfa Japan. Agfa Japan retains all rights, title and interest to the Software and Typefaces and no rights are granted to<br />

you other than a License to use the Software on the terms expressly set forth in this Agreement.<br />

3. To protect proprietary rights of Agfa Japan, you agree to maintain the Software and other proprietary information concerning<br />

the Typefaces in strict confidence and to establish reasonable procedures regulating access to and use of the<br />

Software and Typefaces.<br />

4. You agree not to duplicate or copy the Software or Typefaces, except that you may make one backup copy. You agree<br />

that any such copy shall contain the same proprietary notices as those appearing on the original.<br />

5. This License shall continue until the last use of the Software and Typefaces, unless sooner terminated. This License<br />

may be terminated by Agfa Japan if you fail to comply with the terms of this License and such failure is not remedied<br />

within thirty (30) days after notice from Agfa Japan. When this License expires or is terminated, you shall either return<br />

to Agfa Japan or destroy all copies of the Software and Typefaces and documentation as requested.<br />

6. You agree that you will not modify, alter, disassemble, decrypt, reverse engineer or decompile the Software.<br />

7. Agfa Japan warrants that for ninety (90) days after delivery, the Software will perform in accordance with Agfa Japanpublished<br />

specifications, and the diskette will be free from defects in material and workmanship. Agfa Japan does not<br />

warrant that the Software is free from all bugs, errors and omissions.<br />

THE PARTIES AGREE THAT ALL OTHER WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING WARRANTIES<br />

OF FITNESS FOR A PARTICULAR PURPOSE AND MERCHANTABILITY, ARE EXCLUDED.<br />

8. Your exclusive remedy and the sole liability of Agfa Japan in connection with the Software and Typefaces is repair or<br />

replacement of defective parts, upon their return to Agfa Japan.<br />

IN NO EVENT WILL AGFA JAPAN BE LIABLE FOR LOST PROFITS, LOST DATA, OR ANY OTHER INCIDENTAL<br />

OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES CAUSED BY ABUSE OR MISAPPLICATION OF THE<br />

SOFTWARE AND TYPEFACES.<br />

9. New York, U.S.A. law governs this Agreement.<br />

10. You shall not sublicense, sell, lease, or otherwise transfer the Software and/or Typefaces without the prior written consent<br />

of Agfa Japan.<br />

11. Use, duplication or disclosure by the Government is subject to restrictions as set forth in the Rights in <strong>Technical</strong> Data<br />

and Computer Software clause at FAR 252-227-7013, subdivision (b)(3)(ii) or subparagraph (c)(1)(ii), as appropriate.<br />

Further use, duplication or disclosure is subject to restrictions applicable to restricted rights software as set forth in<br />

FAR 52.227-19 (c)(2).<br />

12. YOU ACKNOWLEDGE THAT YOU HAVE READ THIS AGREEMENT, UNDERSTAND IT, AND AGREE TO BE<br />

BOUND BY ITS TERMS AND CONDITIONS. NEITHER PARTY SHALL BE BOUND BY ANY STATEMENT OR REP-<br />

RESENTATION NOT CONTAINED IN THIS AGREEMENT. NO CHANGE IN THIS AGREEMENT IS EFFECTIVE<br />

UNLESS WRITTEN AND SIGNED BY PROPERLY AUTHORIZED REPRESENTATIVES OF EACH PARTY. BY<br />

OPENING THIS DISKETTE PACKAGE, YOU AGREE TO ACCEPT THE TERMS AND CONDITIONS OF THIS<br />

AGREEMENT.


Introduction<br />

This manual contains information needed to use the firmware features provided by the<br />

Kyocera printing system. Among these features is PRESCRIBE, a highly accessible,<br />

human-readable command language that makes it easy for programmers to take full<br />

advantage of the printing system’s capability.<br />

The PRESCRIBE command language allows to:<br />

• extensive manipulation of fonts and character code tables<br />

• use the ability to draw objects by constructing and manipulating paths including<br />

ellipses and round boxes, etc.<br />

• execute macros including carbon-copy macro<br />

• control external optional units (feeders, etc.)<br />

You can access the features of PRESCRIBE from any of the seven emulation modes.<br />

These modes include:<br />

• Hewlett-Packard LaserJet emulation<br />

• Hewlett-Packard HP 7550A (plotter) emulation<br />

• IBM Proprinter X24E (24-pin dot matrix printer) emulation<br />

• Epson LQ-850 (24-pin dot matrix printer) emulation<br />

• Diablo 630 emulation<br />

• generic line printer emulation<br />

• KPDL (Apple LaserWriter II NTX (NT) emulation) [an option on some models]<br />

iii


iv<br />

About the <strong>Technical</strong> <strong>Reference</strong> manual<br />

Notice<br />

Conventions<br />

The <strong>Technical</strong> <strong>Reference</strong> manual is organized into eight chapters. The first four chapters<br />

of this manual constitute an tutorial introduction to PRESCRIBE. The rests mainly concern<br />

advanced utilities and setups:<br />

Chapter 1 Introduction to PRESCRIBE introduces some basic concepts of PRESCRIBE.<br />

Chapter 2 Graphics Tutorial outlines the graphic handling features of PRESCRIBE.<br />

Chapter 3 Macros introduces program macros, a concept that makes it easy to define<br />

sequences of PRESCRIBE commands, then call them repeatedly whenever they are<br />

needed.<br />

Chapter 4 Fonts provides how to manage font selection and font samples.<br />

Later, Chapter 5 Barcodes explains the barcode printing capabilities of the command<br />

language.<br />

Chapter 6 Permanent Parameters explains how to reprogram the printing system’s firmware<br />

for customization.<br />

Chapter 7 Emulation gives notes on the printing system’s various emulation modes.<br />

An Index is also provided at the end of this manual.<br />

Most PRESCRIBE commands operate in the same way on all of these models. However,<br />

on particular models, some commands are irrelevant. Model-dependent differences are<br />

noted at the pertinent locations in this manual.<br />

• italic is used for emphasis and also refers to a related chapter or section in this manual<br />

or another related document.<br />

• fixed-pitch means text or commands that you must type exactly as it appears.


Table of Contents<br />

General Infomation...................................................................................................................................i<br />

Introduction.............................................................................................................................................iii<br />

Introduction to PRESCRIBE<br />

Format of PRESCRIBE Commands ....................................................................................................1-4<br />

Basic Concepts......................................................................................................................................1-4<br />

Edge Limits ..................................................................................................................................1-4<br />

Margins ........................................................................................................................................1-4<br />

Page Orientation and Direction ....................................................................................................1-5<br />

Coordinate Systems .....................................................................................................................1-7<br />

Text Positioning ...........................................................................................................................1-7<br />

Character Spacing ........................................................................................................................1-8<br />

Paths .............................................................................................................................................1-9<br />

Logical Page and Physical Page ..................................................................................................1-9<br />

Command Parameters .........................................................................................................................1-10<br />

Numeric Parameters ...................................................................................................................1-10<br />

Character Strings ........................................................................................................................1-11<br />

Upper and Lowercase Letters .....................................................................................................1-12<br />

Special Parameters .....................................................................................................................1-13<br />

Graphics Tutorial<br />

Drawing Lines ..............................................................................................................................2-2<br />

Drawing Boxes and Circles ..........................................................................................................2-6<br />

Drawing Filled Shapes..................................................................................................................2-9<br />

Path Mode Graphics............................................................................................................................2-16<br />

Path ............................................................................................................................................2-16<br />

Drawing Lines.............................................................................................................................2-18<br />

Miter Limit .................................................................................................................................2-21<br />

Drawing Arcs and Curves ..........................................................................................................2-24<br />

Drawing Complex Curves ..........................................................................................................2-26<br />

Closed Paths ...............................................................................................................................2-29<br />

Filled Areas ................................................................................................................................2-30<br />

Clipping Rectangle .....................................................................................................................2-32<br />

Printing with Character Paths ....................................................................................................2-33<br />

Raster Graphics ..................................................................................................................................2-34<br />

Raster Data Compression Formats .............................................................................................2-34<br />

Commands for Printing Raster Data ..........................................................................................2-35<br />

Printing Raster Data....................................................................................................................2-37<br />

Changing the Printing System’s Imaging Model .......................................................................2-37<br />

Saving and Restoring the Graphics State ...................................................................................2-39<br />

Macros<br />

Examples of Macros .............................................................................................................................3-3<br />

Fonts<br />

List of Fonts ..................................................................................................................................4-2<br />

KPDL Fonts ..................................................................................................................................4-4<br />

Substituting a Bitmap Font ..........................................................................................................4-6<br />

v


vi<br />

Font Selection....................................................................................................................................... 4-7<br />

Font Selection by PRESCRIBE Commands ............................................................................... 4-7<br />

Placement of Font Commands ................................................................................................... 4-11<br />

Creation of New Symbols and Characters .........................................................................................4-12<br />

Symbol Set.......................................................................................................................................... 4-13<br />

International Characters.............................................................................................................. 4-14<br />

Selecting HP Symbol Sets .......................................................................................................... 4-14<br />

Barcodes<br />

PDF417 Symbol Description...................................................................................................... 5-10<br />

Printing a Two-dimensional Barcode......................................................................................... 5-12<br />

Limitations of Two-dimensional Barcode.................................................................................. 5-13<br />

Macro PDF417 ........................................................................................................................... 5-14<br />

Creating a Macro PDF 417 Representation................................................................................ 5-14<br />

Permanent Parameters<br />

Interface-dependent Parameters ................................................................................................... 6-2<br />

Interface-independent Parameters ................................................................................................6-5<br />

Emulation<br />

Automatic emulation sensing ....................................................................................................... 7-3<br />

General Information on Emulation .............................................................................................. 7-3<br />

Line Printer Emulation (Mode 0) ........................................................................................................ 7-3<br />

IBM Proprinter X24E Emulation (Mode 1) ........................................................................................ 7-4<br />

IBM Proprinter X24E Control Codes........................................................................................... 7-6<br />

Diablo 630 Emulation (Mode 2) ........................................................................................................ 7-12<br />

Diablo 630 Control Codes ......................................................................................................... 7-14<br />

Epson LQ-850 Emulation (Mode 5) .................................................................................................. 7-21<br />

HP LaserJet Emulation (Mode 6) ...................................................................................................... 7-33<br />

LaserJet Fonts............................................................................................................................. 7-35<br />

LaserJet Symbol Sets.................................................................................................................. 7-37<br />

Resource Protection.................................................................................................................... 7-40<br />

Switching the Print Resolution................................................................................................... 7-42<br />

HP LaserJet Reset State.............................................................................................................. 7-43<br />

LaserJet PJL................................................................................................................................ 7-43<br />

PJL Syntax Comparison ............................................................................................................. 7-66<br />

HP 7550A Emulation [KC-GL] (Mode 8) ......................................................................................... 7-96<br />

Basic ........................................................................................................................................... 7-96<br />

KC-GL Environment Options .................................................................................................... 7-97<br />

Plotter Status Information ........................................................................................................ 7-102<br />

Device-Control Instructions ....................................................................................................7-106<br />

Fonts and Symbol Sets in KC-GL ............................................................................................ 7-107<br />

Summary of KC-GL Instructions ............................................................................................ 7-111<br />

KPDL Operators............................................................................................................................... 7-115<br />

Communication with the Printing System................................................................................ 7-115<br />

KPDL Summary ....................................................................................................................... 7-116<br />

KPDL Error Messages.............................................................................................................. 7-139<br />

KPDL Printable Area................................................................................................................ 7-140<br />

Index


Chapter 1<br />

Introduction to PRESCRIBE<br />

PRESCRIBE is the native language of the Kyocera printing systems including copiers<br />

(collectively referred to as printing systems hereafter). Consisting of easily remembered<br />

commands, such as ‘SLM’ for Set Left Margin, and ‘BOX’ to draw a box, it gives you<br />

the capability to control line and character spacing, adjust margins, change fonts, position<br />

text, draw graphics, and print multiple copies of each page. PRESCRIBE also gives<br />

freedom to control device settings including selection of paper source, output stack, and<br />

finishing operations such as sorting, stapling, etc.<br />

Most application software controls printing systems by means of codes and escape<br />

sequences that are built into the program and are not directly visible to the user. In contrast,<br />

PRESCRIBE commands are made of ordinary characters that you can type in yourself<br />

and see on the computer screen. This makes it easy for you to customize printing and<br />

add features that may not be supported by your application.<br />

This chapter presents an introduction to PRESCRIBE starting with an explanation of the<br />

commands by which you start and exit PRESCRIBE. It is followed by an introduction to<br />

some basic concepts of PRESCRIBE, then a discussion of the command format and<br />

command parameters.


Chapter 1 Introduction to PRESCRIBE<br />

Entry and Exit<br />

1-2<br />

The printing system can be thought of as having a multiple personality. When its power<br />

is switched on, it performs the normal printing system functions of printing out files and<br />

other data. Application software can control the printing system using one of the seven<br />

emulations. When the printing system uses an emulation, it is said to be printing in emulation<br />

mode.<br />

PRESCRIBE is an additional mode of operation in which the printing system understands<br />

data it receives not as text to be printed, but as commands to be executed. The<br />

PRESCRIBE mode is available at any time during operation from any emulation mode.<br />

The initializing string that takes the printing system from the usual text-printing mode<br />

into the PRESCRIBE mode is !R!. The command that returns it from the PRESCRIBE<br />

mode to the emulation mode is EXIT;. These transitions are diagramed in the figure<br />

below.<br />

Figure 1. 1. Mode Transitions<br />

The printing system’s emulation mode can be permanently set by the FRPO (Firmware<br />

RePrOgram) P1 command. See Chapter 7 for details. The printing system is factory-set<br />

to emulate the Hewlett-Packard LaserJet.<br />

The example below shows how these transitions can be used in a file. The lines beginning<br />

with !R! are PRESCRIBE commands. Note how each block of commands begins<br />

with !R! and ends with EXIT;. These sections are not printed; instead, they set margins,<br />

select three different fonts, and draw a box around one line of text. The remainder of the<br />

file consists of ordinary text, and is printed out as shown in the figure on the next page.


Note<br />

Figure 1. 2. Text Including PRESCRIBE Commands<br />

!R! RES; SLM 1; STM 1; SPD 0.03; FTMD 13;<br />

SFNT "Helvetica-Bd"; EXIT;<br />

WELCOME TO WINDFALL NATIONAL PARK<br />

!R! SFNT "Times-Rom"; EXIT;<br />

The park entrance is located in the rolling hills of<br />

the Northern Woods, a forested area abundant in deer,<br />

elk, squirrel, rabbit, opossum, lynx, wolf, and other<br />

wildlife. It is the park’s most popular area, featuring<br />

excellent trails and campsites for hiking and backpacking.<br />

!R! BOX 3.4, 0.55; FSET 1s5B; EXIT;<br />

Hikers should avoid this area during hunting season.<br />

!R! SFNT "Times-Rom"; EXIT;<br />

Hikers in search of high-altitude adventure will find<br />

Mt.Baker a rewarding...<br />

Figure 1. 3. PRESCRIBE Example<br />

The previous example contains five sequences of PRESCRIBE commands. The basic<br />

configuration of a PRESCRIBE command sequence is:<br />

!R! command; command; ...; command; EXIT;<br />

There is a limit to the number of commands you can include between the initial !R! and<br />

the final EXIT;. The initial !R! must be followed by a space, and each command must<br />

end with a semicolon.<br />

The use of PRESCRIBE commands in document files is conditional on the behavior of your<br />

word processing software. Some word processing programs add control codes that interfere<br />

with PRESCRIBE. If you cannot control software in this way, try using a non-word processing<br />

mode (ASCII text function, for example) of the software.<br />

1-3


Chapter 1 Introduction to PRESCRIBE<br />

Format of PRESCRIBE Commands<br />

Basic Concepts<br />

1-4<br />

Edge Limits<br />

Margins<br />

The basic format of a PRESCRIBE command is:<br />

• • • or • • • • (command name) parameter, ..., parameter;<br />

The command names generally consist of three or four letters. In most commands, the<br />

parameters must be followed by commas. The last parameter is always followed by a<br />

semicolon. Some commands (RES, for example) have no parameters. In this case, the<br />

command should be followed immediately by a semicolon (RES;).<br />

The length of a single PRESCRIBE command is limited to 255 characters, from the first<br />

letter of the command name through the final semicolon. Commands longer than 255<br />

characters are not executed.<br />

Spaces, carriage return codes, and line feed codes are generally ignored in PRESCRIBE<br />

command sequences. These characters are not generally counted in the command length.<br />

(Exception: Spaces are not ignored in quoted character strings.) To improve readability,<br />

place at least one space before each command or place each command on a separate line.<br />

This section discusses a few basic concepts concerning how the printing system prints on<br />

the page. These concepts are:<br />

• Edge limits<br />

• Margins<br />

• Coordinate systems<br />

• Text positioning/Character spacing<br />

• Paths<br />

• Logical page and physical page<br />

• Page orientation and direction<br />

The printing system cannot place print on the outside edges of the paper. The edge limits<br />

to which printing is possible are located 5 mm inside the edges of the paper; or 6 mm<br />

(5mm in landscape orientation) from the left edge and 4 mm from the top of the paper in<br />

HP LaserJet emulation. Refer to the figure Edge Limits and Margins on page 5.<br />

The edge limits adjust automatically to the size of the paper cassette (although not to the<br />

size of manually fed paper). The edge limits can also be set to various standard sizes by<br />

the SPSZ (set paper size) command, or by the equivalent HP LaserJet commands. In HP<br />

LaserJet emulation, the edge limits slightly vary according to the page orientation (as<br />

also shown in Edge Limits and Margins on page 5).<br />

The top and left margins are set in centimeters or inches in relation to the top and left<br />

edge limits of the page. The bottom and right margins can also be set as a distance from<br />

the top and left edge limits, or they can be set in terms of page width, page length, or<br />

lines per page.


Figure 1. 4. Edge Limits and Margins<br />

Portrait Orientation<br />

Edge limits in HP emulation<br />

Basic Concepts<br />

When the printing system passes the bottom margin while printing text, it prints the page<br />

and feeds to the next page. Spacing is carried over, so if the bottom margin does not<br />

occur at an exact number of lines, excess space is printed at the top of the next page.<br />

If you are using word-processing software that sets the margins automatically, you<br />

should not set them with PRESCRIBE commands.<br />

Page Orientation and Direction<br />

Edge limits in HP emulation<br />

Landscape orientation<br />

The term page orientation refers to the direction in which text is placed on the page. In a<br />

vertical direction, it would be called portrait and a horizontal direction would be called<br />

landscape. The term print direction, which follows this section, refers to the orientation<br />

of the logical page’s coordinate system with respect to the current page orientation.<br />

1-5


Chapter 1 Introduction to PRESCRIBE<br />

1-6<br />

Page Orientation<br />

Print Direction<br />

Changing the page orientation automatically adjusts the margins so that they remain the<br />

same distance from the four edges of the paper. If the printing system cannot make these<br />

margin settings (for example, if the left margin would be to the right of the right margin),<br />

it sets the margins to the edge limits.<br />

Fonts are automatically rotated to match the current orientation.<br />

Figure 1. 5. Page Orientations<br />

Portrait Orientation<br />

Left<br />

margin<br />

Top<br />

margin<br />

Bottom<br />

margin<br />

Right<br />

margin<br />

Left<br />

margin<br />

Bottom<br />

margin<br />

Right<br />

margin<br />

The print direction can be modified in 90° increments. These page orientations are<br />

referred to as portrait, landscape, reverse portrait, and reverse landscape. Changing the<br />

print direction rotates the page coordinate system in the same manner as changing the<br />

page orientation. However, in this case, portrait refers to the print direction in which the<br />

axes of the coordinate system are oriented in the same direction as for the currently<br />

selected page orientation.<br />

Changing the print direction also changes the margins to maintain the same printable<br />

area as prior to the change. The current position (the physical location in which the next<br />

character will be printed) and its coordinate values remain the same as in the previous<br />

print direction.<br />

Changing the print direction also changes the orientation of any subsequent raster graphics<br />

and PRESCRIBE vector graphics. However, it does not affect the orientation of any<br />

subsequent HP-GL/2 graphics. (HP-GL/2 graphics can only be rotated with the HP-GL/2<br />

RO command or the LaserJet orientation command.)


Figure 1. 6. Print Direction<br />

Portrait print direction<br />

Current Point<br />

Left<br />

margin<br />

Current point<br />

Left<br />

margin<br />

Right margin<br />

Right margin<br />

Coordinate Systems<br />

Basic Concepts<br />

With PRESCRIBE, positions on a page are described in terms of X and Y coordinates.<br />

The origin of the coordinate system (the position at which X and Y both equal 0) is<br />

located at the intersection of the top margin and the left margin. Values of X greater than<br />

0 indicate positions to the right of the origin, and values of Y indicate positions below the<br />

origin. See the figure on page 10. When the top and left margins are changed, the physical<br />

position of the origin changes accordingly.<br />

Text Positioning<br />

Top<br />

margin<br />

Reverse portrait print direction<br />

Top margin<br />

Bottom margin<br />

Bottom margin<br />

Landscape print direction<br />

Current Point<br />

Left margin<br />

Right margin<br />

Current point<br />

Right margin<br />

Top<br />

margin<br />

Reverse landscape print direction<br />

Top margin<br />

The printing system always keeps track of its current position on the page. The current<br />

position can be thought of as a cursor that moves as data is printed. At any instant, the<br />

Left margin<br />

Bottom margin<br />

Bottom margin<br />

1-7


Chapter 1 Introduction to PRESCRIBE<br />

1-8<br />

cursor indicates where the next character will be printed or the next graphics will be<br />

drawn. (The printing system does not have separate cursors for text and graphics.)<br />

Text and graphics can be positioned at arbitrary locations on the page by moving the cursor<br />

with positioning commands (MAP, for example).<br />

Figure 1. 7. Text Positioning<br />

TITLE<br />

!R! BOX 1, 1; MRP 2, 1;<br />

EXIT; LABEL<br />

BOX 1, 1;<br />

Character Spacing<br />

MRP 2, 1;<br />

Carriage Return<br />

Landscape Orientation<br />

Space after EXIT; Cursor ends here<br />

Each character is printed within an individual cell as shown below. The character sits on<br />

a line called the baseline. Characters such as y descend below the base line.<br />

In some character fonts, all the character cells are the same size, so the number of character<br />

positions per inch is fixed. In other fonts, the size of character cells is proportional to<br />

the size of characters. These proportional fonts produce text that is easier to read. However,<br />

in order to align the right margin, you must use software that supports the printing<br />

system’s proportional spacing.


Paths<br />

Figure 1. 8. Character Spacing<br />

Font height<br />

Basic Concepts<br />

A path is a set of straight and curved line segments. Paths can be open, as in the case of<br />

lines, or closed, as in the case of rectangles, circles, or any fully enclosed area of any<br />

shape. The segments may be connected with one another, or they may be disconnected.<br />

Further, a path may contain multiple closed subpaths, representing several areas, and<br />

they may intersect themselves in arbitrary ways.<br />

Paths can be used to draw lines and curves or specify boundaries of filled areas, including<br />

the outline of a character.<br />

Paths are explained more fully in section Path Mode Graphics on page 16.<br />

Logical Page and Physical Page<br />

Baseline<br />

The logical page defines the limits of the coordinates within which text and graphics can<br />

be located. There are two types of logical page, as shown in the following figure. The<br />

standard mode logical page imposes limits on specifiable coordinates. The coordinates<br />

have no limitations for the path mode logical page.<br />

1-9


Chapter 1 Introduction to PRESCRIBE<br />

1-10<br />

Figure 1. 9. Logical Page and Physical Page<br />

Standard Mode<br />

Command Parameters<br />

y<br />

(0,0)<br />

With the standard mode logical page, any position specification that lies outside of the<br />

logical limits is automatically adjusted to bring it within the limits. For example, the<br />

page on the upper left in the preceding figure shows what happens if you attempt to draw<br />

a diagonal line from below the bottom edge limit to a point to the right of the right edge<br />

limit when the standard mode logical page is used. The fine line represents the line as<br />

specified by the user; the thick line shows what is actually drawn by the printing system.<br />

With the path mode logical page, coordinates are not adjusted even if they fall outside of<br />

the edge limits. In this case, as shown in the lower right page in the preceding figure, the<br />

line is defined by the specified starting and ending points, but parts falling outside of the<br />

edge limits are clipped.<br />

Numeric Parameters<br />

x<br />

Path Mode<br />

= Logical page<br />

−x x<br />

Many of the PRESCRIBE commands use number values to specify parameters. For<br />

example, numbers are used to specify distances in inches, centimeters, points, or dots.<br />

Negative numbers are also allowed.<br />

−y<br />

y


Command Parameters<br />

For computer code values beyond four decimal places, the fifth and subsequent decimal<br />

places are ignored.<br />

Examples:<br />

Number output by computer Number used by printing system<br />

1234.1234 1234.1234<br />

-1234.1234 -1234.1234<br />

0.123456 0.1234<br />

Some commands have angle parameters. Angles are specified in degrees. (The printing<br />

system does not recognize radians). The printing system rounds off all angles to the nearest<br />

integral degree. Only angles in the range from -360 degrees to 360 degrees are recognized.<br />

Angles less than -360 degrees are ignored, and angles greater than 360 degrees are<br />

treated as the remainder of the angle divided by 360.<br />

Examples:<br />

Angle output by computer Angle used by printing system (degrees)<br />

90 90<br />

-90 -90<br />

90.4 90<br />

90.5 91<br />

-400 Ignored<br />

The printing system does not accept the exponential notation used in some computer languages.<br />

For example, do not specify 1E-3 instead of 0.001.<br />

Character Strings<br />

PRESCRIBE text-printing commands have parameters that consist of character strings.<br />

A character string is any string of characters enclosed by quotation marks or apostrophes,<br />

such as shown in the example below.<br />

TEXT ’You are about to enter PRESCRIBE.’;<br />

PRESCRIBE allows character strings to be enclosed in either single quotation marks<br />

(apostrophes) or double quotation marks. The following example has exactly the same<br />

meaning as the one above.<br />

TEXT "You are about to enter PRESCRIBE.";<br />

The beginning of a character string is recognized when the first single or double quotation<br />

mark appears. If the beginning quotation mark is a single quotation mark, the string<br />

does not end until the next single quotation mark. If the beginning quotation mark is a<br />

double quotation mark, the string does not end until the next double quotation mark.<br />

Whatever comes in the middle of a character string, including commas, semicolons, and<br />

even PRESCRIBE command names, is recognized as part of the character string, and not<br />

as part of the PRESCRIBE command language. For example, the expression EXIT; in<br />

the following string is just text; it does not cause the printing system to exit from the<br />

PRESCRIBE mode.<br />

TEXT ’NO EXIT; NO RETURN.’;<br />

When the string itself contains one type of quotation mark, the quotation mark must be<br />

enclosed in quotes of the other type. Here are two examples:<br />

1-11


Chapter 1 Introduction to PRESCRIBE<br />

1-12<br />

TEXT "You’re about to enter PRESCRIBE.";<br />

TEXT ’ " " " ’;<br />

In the first command above, the character string starts with a double quotation mark. The<br />

printing system therefore expects the string to end with a double quotation mark, and<br />

regards the apostrophe in the word You’re as an ordinary character, not as the string terminator.<br />

Similarly, the double quotation marks in the second command above are recognized as<br />

ordinary characters, not as string terminators.<br />

Since an apostrophe or quotation mark can start a character string anywhere in a PRE-<br />

SCRIBE command sequence, it is important not to start character strings unintentionally.<br />

The following examples demonstrate incorrect use of apostrophes and double quotation<br />

marks.<br />

Incorrect:<br />

!R! CMNT Don’t leave stray apostrophes; EXIT;<br />

Incorrect:<br />

!R! CMNT The symbol " means inches; EXIT;<br />

In both of the above cases, the printing system assumes that the expression EXIT; is part<br />

of a character string started by the preceding apostrophe or quotation mark, and fails to<br />

exit the PRESCRIBE mode. The correct way to write these comments is:<br />

Correct:<br />

!R! CMNT "Don’t leave stray apostrophes"; EXIT;<br />

Correct:<br />

!R! CMNT ’The symbol " means inches’; EXIT;<br />

Character strings must not exceed the 255-character limit on total command length. If a<br />

character string exceeds this limit, the printing system terminates it forcibly and begins<br />

looking for the next PRESCRIBE command.<br />

Upper and Lowercase Letters<br />

Regarding upper and lowercase characters, PRESCRIBE follows the same rule as many<br />

computer programming languages: it discriminates case inside character strings and<br />

ignores it elsewhere. You can type command names in upper or lowercase.<br />

Correct:<br />

!R! TEXT ’A’; CIR 1; EXIT;<br />

Also correct:<br />

!R! text ’A’; cir 1; exit;<br />

Also correct:


!R! Text ’A’; Cir 1; Exit;<br />

Command Parameters<br />

Each of these commands prints the capital letter ‘A’ inside a circle. In the printout shown<br />

above, the unit is centimeters. The reason that the letter ‘A’ is off center in the circle is<br />

that the cursor is not located at the center of the circle, but at left corner of the letter ‘A’.<br />

The command<br />

!R! TEXT ’a’; CIR 1; EXIT;<br />

prints a lowercase a because the letter occurs inside a character string.<br />

The sole exception to upper and lowercase usage in PRESCRIBE commands occurs with<br />

the initializing !R! command. This command must always use an uppercase R. The printing<br />

system will not enter the PRESCRIBE mode in response to !r!.<br />

In this manual, PRESCRIBE commands are printed in upper-case for readability.<br />

Outside of PRESCRIBE mode, the printing system always distinguishes between uppercase<br />

and lowercase letters and prints exactly what is sent.<br />

Special Parameters<br />

Some PRESCRIBE commands use unquoted strings of characters as parameters. Examples<br />

for these are the FSET (change current font set by characteristic) command and the<br />

CSET (change symbol set by symbol-set ID) command. (See Chapter 4 for a detailed<br />

explanation of how these commands are used to select fonts.)<br />

The FSET and CSET commands use parameters that closely resemble the command<br />

parameters used for font control in Hewlett-Packard’s printer control language. For<br />

example, the PRESCRIBE command<br />

FSET 0p12h12v0s0b6T;<br />

selects the font whose characteristics most closely matches the following font parameters:<br />

• Monospaced font (0p)<br />

• Character spacing of 12 characters/inch (12h)<br />

• Character height of 12 points (12v)<br />

• Upright style (0s)<br />

• Medium weight (0b)<br />

• LetterGothicBM12-Roman typeface (6T)<br />

In Hewlett-Packard’s PCL, the corresponding command would be<br />

ESC(s0p12h12v0s0b6T<br />

1-13


Chapter 1 Introduction to PRESCRIBE<br />

1-14<br />

Similarly, the PRESCRIBE command CSET 11U; designates use of the PC-8 Danish/Norwegian<br />

symbol set. The corresponding Hewlett-Packard PCL command is<br />

ESC(11U.


Chapter 2<br />

Graphics Tutorial<br />

PRESCRIBE provides a wide variety of graphics operators, allowing you to easily construct<br />

and print almost any imaginable shape or pattern.<br />

This chapter introduces the various graphics concepts of PRESCRIBE, and illustrates<br />

how to use many of its graphic functions. It defines standard graphics mode, path mode<br />

graphics, and raster graphics. It explains how to use predefined fill patterns, how to<br />

define your own fill patterns, and introduces ways in which you can change the print<br />

model, the rules that determine the manner in which patterns and images are rendered on<br />

the paper.


Chapter 2 Graphics Tutorial<br />

Standard Graphics<br />

2-2<br />

Drawing Lines<br />

The standard graphics mode provides a number of operators for constructing a variety of<br />

filled shapes and lines. Using standard mode graphics, you can:<br />

• Draw lines of any desired width<br />

• Draw circles and rectangles<br />

• Draw a variety of filled shapes, including boxes and arcs<br />

• Draw pie charts<br />

This is referred to as the standard graphics mode because it is a standard feature of all<br />

versions of PRESCRIBE.<br />

PRESCRIBE provides a number of Draw to commands for drawing lines in both standard<br />

and path modes. These include:<br />

DAP (draw to absolute<br />

position)<br />

DZP (draw to zero-relative<br />

position)<br />

Lines to Absolute Position<br />

Begin with a simple task such as drawing a line between two arbitrary points on a page.<br />

Use the MAP and DAP commands to specify positions relative to the top and left margins.<br />

This task has several distinct steps: selecting a line width, determining the starting point<br />

of the line, and determining the end point of the line. The following command sequence<br />

demonstrates this process.<br />

!R! RES;<br />

STM 0.5;<br />

SLM 0.5;<br />

SPD 0.01;<br />

MAP 0.5, 1;<br />

DAP 2, 0.5;<br />

PAGE;<br />

EXIT;<br />

Draws a line to an absolute position in a Cartesian coordinate<br />

system whose origin (0,0) is at the intersection of<br />

the left and top margins.<br />

Draws a line to an absolute position in a Cartesian coordinate<br />

system whose origin (0,0) is at the intersection of<br />

the left and top edge limits of the paper.<br />

DRP (draw to relative position) Draws a line to a position specified as a horizontal and vertical<br />

displacement from the current cursor position.<br />

DRPA (draw to relative Draws a line to a position that is specified as a distance and<br />

position specified by angle) angle from the current cursor position. Examples of these<br />

commands are given in the sections that follow.


Zero-relative Lines<br />

Figure 2. 1. Result of Draw Commands: Absolute Lines<br />

The initial !R! command switches the printing system to the PRESCRIBE mode.<br />

Remember that this command must always precede each sequence of PRESCRIBE commands.<br />

The RES (RESet) clears the current page from printing system memory and re-establishes<br />

the printing system’s permanent defaults. Although you would not include this<br />

command in every sequence of PRESCRIBE commands, we include it in this example to<br />

ensure consistent results. As a standard practice, include the RES at the beginning and<br />

end of each job.<br />

The STM and SLM set both the top and left margins to 0.5 inches (1.27 centimeters).<br />

The SPD (Set Pen Diameter) command determines the thickness of lines. In the standard<br />

graphics mode, this setting determines the thickness of all lines drawn after the command<br />

is issued. In this example, the line width is set to 0.01 inches.<br />

The starting point of the line is established with the MAP (Move to Absolute Position)<br />

command. This command moves the cursor to a point that is a specified distance from<br />

the top and left margins. In this example, the point specified is 0.5 inches from the left<br />

margin and 1 inch from the top margin.<br />

If the margins are changed, the position specified by MAP also changes correspondingly.<br />

On the next line of the program, the DAP (Draw to Absolute Position) command draws a<br />

line from the starting position to the point 2 inches from the left margin and 0.5 inches<br />

from the top margin.<br />

Finally, PAGE; prints out the page, allowing us to look at the result of our work.<br />

The line draw example below uses some new commands to draw another line.<br />

!R! RES;<br />

SPD 0.01;<br />

MZP 0.5, 1;<br />

DZP 2, 0.5;<br />

PAGE;<br />

EXIT;<br />

Edge limits<br />

Margins<br />

MAP 0.5, 1;<br />

DAP 2, 0.5;<br />

2-3


Chapter 2 Graphics Tutorial<br />

2-4<br />

Relative Lines<br />

Figure 2. 2. Result of Draw Commands: Zero-relative Lines<br />

The first two lines switch the printing system to the PRESCRIBE mode, reset printing<br />

system parameters, and set the line width to 0.01 inch. On the third line, the MZP (Move<br />

to Zero-relative Position) differs from the MAP (Move to Absolute Position) command<br />

in one respect: the position specified is in relation to the top and left edge page limits of<br />

the page, rather than in relation to the top and left page margins. MZP moves the cursor<br />

to the point that is 0.5 inches from the left edge limit and 1 inch from the top edge limit.<br />

Similarly, on the next line, DZP (Draw to Zero-relative Position) draws a line from the<br />

starting position to the point 2 inches from the left edge limit and 0.5 inches from the top<br />

edge limit.<br />

Another way to specify positions is in relation to the current cursor position. The following<br />

command sequence provides an example.<br />

!R! RES;<br />

SPD 0.01;<br />

MRP 2, 1;<br />

DRP -1.5, -1;<br />

MRP 2, 1;<br />

DRP -1.5, -1;<br />

MRP 2, 1;<br />

DRP -1.5, -1;<br />

PAGE;<br />

EXIT;<br />

Edge limits<br />

MZP 0.5, 1;<br />

DZP 2, 0.5;


Figure 2. 3. Result of Draw Commands: Relative Lines<br />

In this command sequence, the PRESCRIBE mode begins with the !R!, resets the printing<br />

system defaults to permanent settings with RES;, and establishes a pen width of 0.01<br />

inches with the SPD 0.01;.<br />

The MRP (Move to Relative Position) and DRP (Draw to Relative Position) specify<br />

positions in relation to the cursor’s current position.<br />

When the command sequence starts, the cursor is located at the intersection of the left<br />

and top margins. The command MRP 2, 1; on line 3 moves the cursor 2 inches to the<br />

right of its current position, and down 1 inch from its current position. Then the command<br />

DRP -1.5, -1; draws a line from that point to a point 1.5 inches to the left of the<br />

cursor position and 1 inch above it. The cursor winds up 0.5 inches to the right of the<br />

point where it started.<br />

Lines 5 to 8 repeat the move-and-draw sequence two more times. This produces three<br />

parallel lines, as shown in the figure on the previous page.<br />

Lines in Terms of Angles<br />

Edge limits<br />

Until now, all of our examples have specified positions in terms of Cartesian (X,Y) coordinates.<br />

This example illustrates drawing lines of specified lengths and angles.<br />

!R! RES;<br />

SPD 0.01;<br />

MZP 5, 4;<br />

DRPA 2, 149;<br />

DRPA 2, 221;<br />

DRPA 2, 293;<br />

DRPA 2, 365; CMNT Equivalent to 5 degrees;<br />

DRPA 2, 437; CMNT Equivalent to 77 degrees;<br />

PAGE;<br />

EXIT;<br />

2-5


Chapter 2 Graphics Tutorial<br />

2-6<br />

Figure 2. 4. Result of Draw Commands: Lines in Angles<br />

The first two lines of this command sequence initiates the PRESCRIBE mode, resets<br />

printing system defaults to permanent settings, and sets the line width to 0.01 inches.<br />

Then the MZP command on line 3 moves the cursor to a point 5 inches to the right of the<br />

left edge limit and 4 inches below the top edge limit.<br />

Next, DRPA 2, 149; on line 4 draws a line two inches long at an angle of 149 degrees.<br />

The angle is measured clockwise from the vertical axis. The subsequent DRPA commands<br />

draw additional 2-inch lines at angles that increase in increments of 72 degrees.<br />

As indicated by the CMNT (CoMmeNT) commands, angles that exceed 360 degrees are<br />

equivalent to the remainder of division of the angle by 360.<br />

Drawing Boxes and Circles<br />

Drawing Boxes<br />

PRESCRIBE provides two commands especially for drawing boxes (BOX command)<br />

and circles (CIR command).<br />

The BOX (draw box) command draws a box of a specified width and height. As with the<br />

line drawing commands, the thickness of the line used to draw the box is determined by<br />

the SPD (set pen diameter) command.<br />

The following command sequence draws a box.<br />

!R! RES;<br />

UNIT C;<br />

SPD 0.1;<br />

MZP 3, 3;<br />

BOX 3, 4;<br />

PAGE;<br />

EXIT;


Figure 2. 5. An Example of a Box<br />

Line 1 places the printing system in the PRESCRIBE mode and resets printing system<br />

parameters. The UNIT C; command on the second line sets the unit of measurement to<br />

centimeters, and the SPD (Set Pen Diameter) command on line 3 sets the line width to<br />

0.1 centimeters. (If you omit these two commands, the printing system will print using<br />

the default unit, inches; and the default line width, 3 dots.)<br />

Next, the MZP command on line four moves the cursor to the point that is 3 centimeters<br />

to the right of the left edge limit and 3 centimeters below the top edge limit. This is the<br />

starting point from which the box is drawn.<br />

On line 5, BOX 3, 4; draws a box with a width of 3 centimeters and a height of 4 centimeters.<br />

The position of the box with respect to the cursor depends on the positive or negative<br />

value specified for width and height. The box is drawn to the right of the cursor if width<br />

is positive, and to the left of the cursor if width is negative. Similarly, the box is drawn<br />

below the cursor if height is positive, and above the cursor if height is negative. This<br />

relation is illustrated in the figure that follows.<br />

By default, the position of the cursor is not affected by this command. However, you can<br />

also specify an option parameter to make the cursor move to an adjacent or diagonally<br />

opposite corner of the box, down by one text line, or to the left margin on the next text<br />

line. The following figure shows some examples.<br />

2-7


Chapter 2 Graphics Tutorial<br />

2-8<br />

Figure 2. 6. Cursor Positioning Options<br />

-Y<br />

-X<br />

Cursor position<br />

X<br />

Y<br />

Left margin<br />

BOX 4, 2, H; Moves the cursor to<br />

the horizontally adjacent corner<br />

BOX 4, 2, V; Moves the cursor to<br />

the vertically adjacent corner<br />

BOX 4, 2, E; Moves the cursor to<br />

the diagonally opposite corner<br />

BOX 4, 2, L; Moves the cursor<br />

down one line<br />

BOX 4, 2, N; Moves the cursor to<br />

the beginning of the next line (to<br />

the left margin)


Drawing Circles<br />

The CIR (draw circle) command draws a circle of a specified radius using the line thickness<br />

set by the SPD (set pen diameter) command. The circle drawn is centered on the<br />

current cursor position; the position of the cursor remains unaffected. See the following<br />

example:<br />

!R! RES;<br />

UNIT C;<br />

SPD 0.1;<br />

MZP 8, 8;<br />

CIR 1;<br />

CIR 2;<br />

CIR 3;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 7. Circles<br />

Lines 1, 2 and 3 start PRESCRIBE mode, reset the printing system to its default parameters,<br />

establish the unit of measurement as centimeters, and set the line width to 0.1 centimeters.<br />

Next, the MZP command moves the cursor to the point that is 8 centimeters to the right<br />

of the left edge limit and 8 centimeters below the top edge limit.<br />

Lines 5, 6, and 7 draw three circles with radii of 1, 2, and 3 centimeters.<br />

Drawing Filled Shapes<br />

The standard graphics mode provides two types of filled shapes: arcs and blocks. Such<br />

shapes are filled with one of the printing system’s predefined patterns, or with a user<br />

defined pattern.<br />

Filled areas of other shapes can be printed using path mode graphics. For details, see the<br />

explanation in section Path Mode Graphics on page 16.<br />

2-9


Chapter 2 Graphics Tutorial<br />

2-10<br />

A filled block consists simply of a rectangle of any desired dimensions. A filled arc is an<br />

area enclosed by an arc segment and the line segments extending from the ends of the arc<br />

to the center of the circle of which the arc is a part.<br />

This section shows how to select a fill pattern and print a filled block or arc.<br />

Drawing Filled Blocks<br />

The following command sequence prints the block shown below.<br />

!R! RES;<br />

UNIT P;<br />

MZP 72, 72;<br />

PAT 6;<br />

BLK 72, -144, H;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 8. A Filled Block<br />

Lines 1 and 2 put the printing system in the PRESCRIBE mode, reset printing system<br />

parameters and set the unit of measurement to points. (One point is equal to 1/ 72 inches.)<br />

Next, the MZP command moves the cursor to the position 72 points to the right of the<br />

left edge limit and 72 points below the top edge limit.<br />

The PAT (select fill PATtern) command on line 4 of the program selects the fill pattern.<br />

In this program, pattern number 6 is selected.<br />

You can select from among any of the printing system’s 60 predefined fill patterns or<br />

choose to define a pattern using the XPAT (generate eXpanded PATtern) command. In<br />

either case, the selection is made with the PAT command. For 1200-dpi and 600-dpi<br />

models, the user can define the printing resolution (300, 600, 1200 dpi) of the pattern by<br />

giving a second parameter to the PAT command.<br />

You can also select a shade of gray for filling the arc or block by using the GPAT (set<br />

Gray PATtern) command.<br />

It is possible to apply a color to a pattern specified using PAT, FPAT, GPAT or XPAT.<br />

Note, however, that this may not always result in the exact same pattern as printed in<br />

monochrome.<br />

The way a color looks may differ when used for different patterns even though the same<br />

color has been specified.


Drawing Filled Arcs<br />

The BLK (draw filled-in BLocK) command on line 5 actually draws the filled in block.<br />

This command closely resembles the BOX command explained in the preceding section.<br />

However, whereas the BOX command draws a line around a rectangular area, the BLK<br />

command fills a rectangular area with the currently selected pattern.<br />

As with the BOX command, the position of the rectangular area with respect to the cursor<br />

depends on the sign of the values specified for width and height. The box is drawn to<br />

the right of the cursor if width is positive, and to the left of the cursor if width is negative;<br />

and the box is drawn below the cursor if height is positive, and above the cursor if<br />

height is negative.<br />

As with the BOX command, you can specify an option parameter to make the cursor<br />

move to a specified location after the box is drawn. (The cursor remains unmoved if the<br />

option parameter is omitted.) Values for this option are H, V, E, L, N, and B, the same as<br />

for BOX.<br />

The ARC (draw filled-in ARC) command is similar to the BLK command (described in<br />

the preceding section) in that it fills an area with a pre-defined pattern or a shade of gray.<br />

The arc is drawn centered around the current cursor position. The dimensions of the arc<br />

are determined by user specified inner radius, outer radius, starting angle, and ending<br />

angle.<br />

The following PRESCRIBE demonstrates the ARC command.<br />

!R! CMNT Enter PRESCRIBE mode;<br />

RES; CMNT Reset printing system parameters;<br />

UNIT C; CMNT Set centimeters as unit;<br />

PAT 9; CMNT Select pattern 9;<br />

MZP 8, 8; CMNT Move cursor to point that is 8 cm;<br />

CMNT from left edge limit and;<br />

CMNT 8 cm from top edge limit;<br />

ARC 1, 2, 0, 90;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 9. A Filled Arc<br />

The ARC command on line 8 of the command sequence draws an arc with an inner<br />

radius of 1 centimeter, an outer radius of 2 centimeters, a starting angle of 0 (straight up),<br />

and an ending angle of 90 degrees.<br />

The ARC command does not draw a line around the boundary of the filled-in area.<br />

2-11


Chapter 2 Graphics Tutorial<br />

2-12<br />

Defining Fill Patterns<br />

With a little work, you can construct your own fill patterns. You can generate 8 × 8 dot<br />

patterns using the FPAT (generate Fill PATtern) command, or 16 × 16 dot patterns using<br />

the XPAT (generate eXpanded fill PATtern) command. This section gives examples of<br />

both.<br />

!R! RES;<br />

MZP 1, 1;<br />

FPAT 16, 40, 68, 130, 65, 34, 20, 8;<br />

BLK 1, 1;<br />

PAGE;<br />

EXIT;<br />

Line 4 of this command sequence prints a filled block using a fill pattern defined by the<br />

FPAT command on line 3.<br />

Each of the eight numbers in the FPAT defines one row of an 8 × 8 dot pattern. The pattern<br />

follows:<br />

Figure 2. 10. Dot Pattern and a Filled Block<br />

128 64 32 16 8 4 2 1<br />

For this pattern, the numbers across the top indicate the value of each column. The numbers<br />

down the right side are the sums of the values of columns that contain black dots in<br />

that row.<br />

Once this pattern has been defined by the FPAT command, it is used as the fill pattern<br />

until printing system parameters are reset with RES, another pattern is selected with PAT,<br />

a different pattern is defined with FPAT, or a shade of gray is defined and selected by<br />

GPAT.<br />

Now let’s look at an example using the XPAT command.<br />

The XPAT command uses the format<br />

XPAT pattern-number; bit map;<br />

= 16<br />

= 40<br />

= 68<br />

= 130<br />

= 65<br />

= 34<br />

= 20<br />

Note that the pattern-number parameter must be a value from 100 to 105 and followed<br />

by a semicolon, not a comma.<br />

The following example demonstrates the XPAT command in a PRESCRIBE command<br />

sequence.<br />

=<br />

8


!R! RES;<br />

XPAT 100;<br />

@X0@ | 0Af0CC0FA8L@


Chapter 2 Graphics Tutorial<br />

2-14<br />

Column value<br />

If the character resulting for section x of any row is @ (indicating that all bits in that section<br />

are white), then that character may be omitted. If sections x and y are both @, then<br />

both characters may be omitted. However, if the result for section y is @ and that for section<br />

x is a character other than @, then no characters may be omitted. In terms of the program<br />

example above, what this means is that the bit map string,<br />

@X0@ | 0Af0CC0FA8L@


Figure 2. 12. PIE Example<br />

The PIE command uses the format<br />

PIE radius, starting angle, size of slice, ...;<br />

In the example above, the radius is 2 centimeters (since we set the unit to centimeters<br />

with the UNIT command), and the starting angle is 0 degrees. Four pie slices are specified,<br />

with sizes of 10, 20, 30, and 40.<br />

The printing system automatically converts the slice sizes to angles totalling 360<br />

degrees. Then it draws the first slice with a cut at the angle specified by the second<br />

parameter (0 degrees in our example, or straight up). The remaining slices are drawn in<br />

sequence clockwise around the circle. The line thickness used for drawing the circle and<br />

the lines between slices are designated by the SPD (Set Pen Diameter) command.<br />

Any number of pie slice sizes can be specified, provided that the total length of the command<br />

does not exceed 255 characters, and that the sum of the pie slices does not exceed<br />

9999. All numbers specified for slice sizes must be non-negative integers.<br />

The PIE command does not fill in the slices with any fill pattern. The PAT command can<br />

be used to create shaded areas. The previous example is expanded to fill in the slices.<br />

!R! RES; UNIT C; SPD .1;<br />

MZP 10, 10;<br />

PAT 19; ARC 0, 2, 0, 36;<br />

PAT 41; ARC 0, 2, 36, 108;<br />

PAT 43; ARC 0, 2, 108, 216;<br />

PAT 48; ARC 0, 2, 216, 360;<br />

PIE 2, 0, 10, 20, 30, 40;<br />

PAGE;<br />

EXIT;<br />

2-15


Chapter 2 Graphics Tutorial<br />

2-16<br />

Figure 2. 13. Pattern Filled PIE<br />

Path Mode Graphics<br />

Path<br />

This program first draws four filled arcs, each using a different fill pattern, then prints<br />

the pie chart over the arcs. Each arc has an inner radius of zero, an outer radius of 2 (the<br />

same as the pie chart), and a starting angle and ending angle that correspond to the relative<br />

size of the pie slices. Since the total size of the pie slices in the example is 100<br />

(10+20+30+40), the angular extent of each arc is equal to 360 x size of slice /100. For<br />

example, the angular extent of the first arc is 360 x 10 / 100 = 36 degrees. The starting<br />

angle of each arc equals the starting angle of the pie chart (0 degrees), plus the angular<br />

extent of all the preceding arcs. The ending angle equals the starting angle plus the angular<br />

extent of the arc.<br />

With path mode graphics, images are constructed by defining lines and curves as paths,<br />

then rendering them as images by stroking along the paths or filling the area enclosed by<br />

them. PRESCRIBE provides a variety of path construction operators and painting operators<br />

for stroking or filling paths.<br />

In PRESCRIBE, a path is a set of straight or curved line segments, either connected or<br />

disconnected, that describes the shape and position of one or more objects or regions.<br />

Paths can be used to draw lines and curves and to specify boundaries of filled areas.<br />

A path is stroked by drawing a line of arbitrary width along it. The line may be solid<br />

black, all white, or any intermediate shade of gray. It may also be a dashed line of any<br />

pattern of segment lengths.<br />

A path is filled by painting the entire area that it encloses with a gray scale pattern, ranging<br />

from black to white, or with one of the printing system’s predefined patterns. In order<br />

to be filled, a path must be closed; that is, it must return to its starting point.<br />

A path is constructed by means of one or more path construction operators. The path<br />

construction operators modify the current path, usually by appending to it. However, a<br />

path in itself does not produce any image on the page. Once a path has been constructed,<br />

it can be used to control the application of one of the painting operators of PRESCRIBE,<br />

defining the boundary of the area in which images can be printed.


Path Mode Graphics<br />

There are no restrictions on the shape of a path. A single path may include multiple<br />

closed subpaths, representing several areas, and a path may intersect itself in an arbitrary<br />

manner.<br />

The order of the segments that define a path is significant. A pair of line segments is said<br />

to connect only if they are defined consecutively, with the second segment starting where<br />

the first one ends. Non-consecutive segments that meet or intersect fortuitously are not<br />

connected.<br />

A subpath is a sequence of connected segments. A path is made up of one or more subpaths.<br />

Subpaths may be either open or closed.<br />

Path construction begins with a NEWP (NEW Path) command. Path construction ends<br />

with the CLSP (CLoSe Path) command or with any paint operator that paints the region<br />

enclosed by the path or draws a line along it (such as STRoKe or FILL).<br />

2-17


Chapter 2 Graphics Tutorial<br />

2-18<br />

Drawing Lines<br />

The following example shows how to draw a line in the path mode.<br />

!R! RES;<br />

NEWP;<br />

PMZP 1, 1;<br />

PDZP 2, 3;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 14. Drawing Lines in Path Mode<br />

(1, 1)<br />

(2, 3)<br />

Line 1 of the program switches the printing system to the PRESCRIBE mode and resets<br />

printing system parameters, including the unit (to inches), line width (to 3 dots), and various<br />

other aspects of the graphics state.<br />

Path construction begins with the NEWP command on line 2. This command empties the<br />

current path (if any), making it possible to start a new one. In doing so, it makes the position<br />

of the cursor undefined.<br />

The PMZP (Path, Move to Zero-relative Position) command on line 3 moves the cursor<br />

to a position one inch from the top and left edge limits of the paper. The coordinates<br />

specified may be positive or negative.<br />

On line 4, the PDZP (Path, Draw to Zero-relative Position) draws a line from the current<br />

cursor position to the position 2 inches from the left edge limit and 3 inches from the top<br />

edge limit. The cursor remains at this position after the line is drawn.<br />

On line 5, the STRK command strokes the path onto the page.<br />

After stroking the current path, the STRK command clears the path in the same manner<br />

as NEWP (start NEW Path).<br />

Finally, PAGE prints out the page, allowing us to look at the result of our work and cancelling<br />

all changes made during the course of the program, then EXIT ends the PRE-<br />

SCRIBE mode.


Two Lines<br />

Path Mode Graphics<br />

The preceding example illustrated construction of a path between points specified in<br />

terms of absolute coordinates. The following program draws two lines, using both absolute<br />

coordinate specification and a new method: relative coordinate specification.<br />

!R! RES;<br />

NEWP;<br />

PMZP 1, 1;<br />

PDZP 2, 3;<br />

PMRP .5, -1;<br />

PDRP -1, -1;<br />

SPD 0.04;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 15. Drawing Two Lines<br />

(1, 1)<br />

(-1, -1)<br />

(2, 3)<br />

(0.5, -1)<br />

The first four lines of this program are identical to the preceding example. Line 1<br />

switches the printing system to the PRESCRIBE mode and resets printing system parameters,<br />

line 2 empties the current path, and lines 3 and 4 draw a line between two points<br />

that are specified in terms of absolute coordinates.<br />

On line 5, the PMRP (Path, Move to Relative Position) command moves the cursor to the<br />

point half an inch to the right and one inch above the current cursor position; that is, the<br />

point at which the first line ends. Then the PDRP (Path, Draw to Relative Position) command<br />

on line 6 draws a line to the point 1 inch to the left of the new position and 1 inch<br />

below it.<br />

The line thickness is changed to 0.04 inches by the SPD command on line 7.<br />

Finally, the STRK command on line 8 strokes the path onto the page, PAGE prints out<br />

the page, and EXIT ends the PRESCRIBE mode.<br />

2-19


Chapter 2 Graphics Tutorial<br />

2-20<br />

Line Ends<br />

The line end type determines how PRESCRIBE renders the ends of lines when they are<br />

stroked onto the page. PRESCRIBE provides three kinds of line ends. These include:<br />

Figure 2. 16. Line Ends<br />

The default line end type is butt caps. You can switch from the current line end type to<br />

any of the other types with the SCAP command. This command uses the following format:<br />

SCAP line-cap mode;<br />

Values for line-cap mode include:<br />

1 (for square caps)<br />

2 (for butt caps)<br />

3 (for round caps)<br />

Use of this command is illustrated in the following example.<br />

!R! RES;<br />

UNIT C; CMNT Sets unit to cm;<br />

NEWP; CMNT Starts new path;<br />

SPD .5; CMNT Sets line width to .5 cm;<br />

SCAP 1; CMNT Sets square caps;<br />

PMZP 2, 2;<br />

PDZP 4, 4;<br />

SCAP 3; CMNT Sets round caps;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 17. Printout of SCAP Example<br />

Square caps<br />

Butt caps<br />

Round caps<br />

Note that the line is rendered with round caps, rather than with square ones. Although<br />

square caps is set before constructing the path, the line type is changed to round prior to


Line Joins<br />

Miter Limit<br />

Path Mode Graphics<br />

stroking the path. PRESCRIBE refers to the line cap type when the current path is<br />

stroked onto the page, rather than while the path is being constructed. Therefore, the program<br />

above renders the line with round caps rather than square ones.<br />

When a path consists of multiple connected line segments, the manner in which they are<br />

stroked onto the page depends on the current line join type.<br />

PRESCRIBE provides four types of line joins. These are called beveled, mitered, round,<br />

and notched. These are illustrated below.<br />

Figure 2. 18. Joins<br />

Beveled join Mitered join Round join Notched join<br />

The default line join type is beveled. With beveled joins, connected line segments end<br />

with butt caps, and the notch at the larger angle between the segments is filled with a triangle.<br />

With mitered joins, the edges of connected line segments are extended until they meet.<br />

This type of join is limited by the miter limit (explained below).<br />

With round joins, connected line segments are joined with circular caps.<br />

Notched joins leave a notch at the larger angle between the connected line segments.<br />

You can switch from the current line join type to any of the other types with the SLJN<br />

(Set Line JoiN) command. This command uses the following format:<br />

SLJN line-join mode;<br />

Values for line-join mode include:<br />

1 (for beveled joins)<br />

2 (for mitered joins)<br />

3 (for round joins)<br />

4 (for notched joins)<br />

When using mitered line joins, the use of such joins is limited by the miter limit. The<br />

miter limit is the maximum ratio of the distance l between the inner and outer corners of<br />

a mitered join and the width w of the lines joined.<br />

2-21


Chapter 2 Graphics Tutorial<br />

2-22<br />

Dash Type<br />

Figure 2. 19. Miter Limit<br />

Miter limit = maximum ratio of L / w = 1 / sin ( a / 2 )<br />

If the angle at which lines join is such that this limit is exceeded, the lines are joined with<br />

a beveled join, rather than a mitered one.<br />

The purpose of the miter limit is to prevent objectionably long spikes when lines join at<br />

small angles. The default miter limit is 10, which results in beveled joins at angles of less<br />

than about 11.5 degrees.<br />

You can set any desired miter limit with the SMLT (Set Miter LimiT) command. This<br />

command has the following format.<br />

SMLT limit-value;<br />

Here are some representative limit-values and the corresponding angles at which the line<br />

join type switches between mitered and beveled.<br />

limit-value appox. angle<br />

2 60<br />

3 39<br />

4 29<br />

5 23<br />

6 19<br />

7 16<br />

8 14<br />

9 13<br />

W<br />

By default, the STRK command strokes paths with solid lines. However, you can also<br />

use a predefined pattern of alternating black and white to stroke paths. This makes it possible<br />

to stroke paths as dashed lines. You can also define your own dashed line patterns.<br />

The DPAT (select Dash PATtern) command selects one of PRESCRIBE’s ten predefined<br />

dash patterns, or one of 10 dash patterns that you can define yourself. This command<br />

uses the format:<br />

DPAT pattern-number;<br />

L<br />

W = line width<br />

L = miter length


The following program illustrates use of this command.<br />

!R! RES;<br />

UNIT C; CMNT Sets unit to cm;<br />

NEWP; CMNT Starts new path;<br />

SPD .5; CMNT Sets line width to .5 cm;<br />

PMZP 2, 2;<br />

PDZP 4, 4;<br />

DPAT 5;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 20. Printout of the DPAT Example<br />

Path Mode Graphics<br />

In this program, the DPAT command selects the dash pattern with which the line is<br />

stroked.<br />

Predefined dash patterns are selected by specifying values from 1 to 10 for pattern-number.<br />

(A value of 1 specifies solid lines.) User-defined patterns can be selected by specifying<br />

values from 11 to 20. The next section explains how to use the SDP (Store Dash<br />

Pattern) command to define your own dash patterns. Specifying an undefined user pattern<br />

number results in solid black lines.<br />

User Defined Dash Patterns<br />

Using the SDP command, you can define your own dashed patterns for use in stroking<br />

lines, arcs, and curves. See the following example:<br />

!R! RES;<br />

UNIT P;<br />

SDP 11, 2, 2, 5, 2;<br />

UNIT C; CMNT Sets unit to cm;<br />

NEWP; CMNT Starts new path;<br />

SPD .5; CMNT Sets line width to .5 cm;<br />

PMZP 2, 2;<br />

PDZP 4, 4;<br />

DPAT 11;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

2-23


Chapter 2 Graphics Tutorial<br />

2-24<br />

Figure 2. 21. Printout of the SDP Example<br />

The SDP command on line 3 defines a dashed pattern consisting of two lengths of black,<br />

two lengths of white, five lengths of black, and two lengths of white. On line 11, the<br />

DPAT command selects this pattern for stroking. The path defined by the PMZP (Path,<br />

Move to Zero-relative Position) and PDZP (Path, Draw to Zero-relative Position) commands<br />

is stroked using this pattern, with a result as shown in the figure above.<br />

The SDP command uses the general format:<br />

SDP pattern-number, dash1, space1, dash2, space2, ..., dash10, space10;<br />

The value specified for pattern-number must be in the range from 11 to 20. Dash and<br />

space lengths are specified in pairs. Up to ten dash-space pairs can be specified. The dash<br />

length always comes first in each pair. If a pattern is to begin with a space, then specify 0<br />

for dash1. However, if a pattern ends with a dash, the following space parameter can be<br />

omitted.<br />

Dash patterns defined with this command remain valid until redefined with another SDP<br />

command, or until the printing system is turned off.<br />

Drawing Arcs and Curves<br />

A path can include curves as well as lines. The PARC (Path, draw ARC) and PCRP<br />

(Path, Curve to Relative Position) commands make it possible to draw circular arcs and<br />

arcs of more complex form.<br />

The PARC command uses the format:<br />

PARC x, y, radius, ang1, ang2;<br />

where x and y describe the zero-relative coordinates of the center of the arc, radius<br />

describes the radius of the arc, ang1 describes the arc’s starting angle, and ang2<br />

describes the arc’s ending angle. Coordinates and radius are measured in the unit currently<br />

designated by the UNIT command, and the starting and ending angles are measured<br />

clockwise from the positive x axis.<br />

The PARC command draws a line between the cursor position and the beginning of the<br />

arc. See the following example:<br />

!R! RES; UNIT C; NEWP; SPD .1;<br />

PMZP 5, 5;<br />

PARC 5, 5, 3, 45, 135;<br />

STRK;<br />

PAGE;<br />

EXIT;


Figure 2. 22. Printout of the PARC Example<br />

After the arc is drawn, the cursor is located at the end of the arc.<br />

Path Mode Graphics<br />

If you wish to eliminate the straight line segment in the above example, leaving only the<br />

arc, the cursor position must be moved in advance to the position at which drawing of the<br />

arc begins. This is shown in the following example, in which the cursor is moved to the<br />

coordinates as specified by the PMRA (Path, Move to Relative position specified by<br />

Angle) command prior to drawing the arc.<br />

!R! RES UNIT C; NEWP; SPD .1;<br />

PMRA 5, 5, 3, 45;<br />

PARC 5, 5, 3, 45, 135;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

In this current example, the PMRA command moves the cursor from coordinates 5, 5, as<br />

measured from the left and top edge limits of the page, through the distance of 3 centimeters<br />

at the angle of 45 degrees from the positive x axis. At this point, the PARC command<br />

starts to draw the arc which ends at the angle of 135 degrees.<br />

Figure 2. 23. Printout of the PMRA Example<br />

Circles can be constructed by drawing arcs with angular extents of 360 degrees. To draw<br />

a circle, you will also need a PMRA command to eliminate the line extending from the<br />

center of the circle to the beginning of the circle. See the following example:<br />

!R! RES; UNIT C; NEWP; SPD .1;<br />

PMRA 3, 3, 1.5, 0;<br />

PARC 3, 3, 1.5, 0, 360;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

2-25


Chapter 2 Graphics Tutorial<br />

2-26<br />

Figure 2. 24. Printout of a Circle Made with PMRA<br />

Drawing Complex Curves<br />

PRESCRIBE also provides a second curve-drawing operator for constructing complex<br />

curves that are referred to as Bézier curve segments. The PCRP (Path, Curve to Relative<br />

Position) uses the following format.<br />

PCRP x1, y1, x2, y2, x3, y3;<br />

Figure 2. 25. Bézier Curves<br />

Current position<br />

Current position<br />

x2, y2<br />

Current position<br />

x1, y1<br />

x1, y1<br />

x2, y2<br />

x3, y3<br />

x3, y3<br />

x2, y2<br />

x3, y3<br />

x1, y1<br />

A Bézier curve segment is one that is geometrically defined by a starting point (the cursor’s<br />

current position), two control points (x1, y1 and x2, y2), and an ending point (x3,<br />

y3). Coordinates of each of these points are specified as an offset from the cursor’s previous<br />

position.


Path Mode Graphics<br />

The curve leaves the current position in the direction of x1, y1, and is tangent to the line<br />

between the current position and x1, y1. It bends towards x2, y2, then to x3, y3, and at the<br />

end point, is tangent to the line between x2, y2 and x3, y3. The curve is always entirely<br />

enclosed by the complex quadrilateral defined by the starting point, x1, y1, x2, y2, and<br />

x3, y3.<br />

See the following examples:<br />

!R! RES; UNIT C; NEWP; SPD .1;<br />

PMZP 3, 3;<br />

PCRP 4, 2, 5, 1.5, 6, 1.8;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 26. Printout of the PCRP Example<br />

!R! RES; UNIT C; NEWP; SPD .1;<br />

PMZP 3, 3;<br />

PCRP 5.5, 1.5, 1.5, 5.5, 7, 7;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 27. Second PCRP Example<br />

2-27


Chapter 2 Graphics Tutorial<br />

2-28<br />

!R! RES; UNIT C; NEWP; SPD .1;<br />

PMZP 3, 4;<br />

PCRP 4, 2, 5, 4, 6, 2;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 28. Third PCRP Example<br />

Setting the Flatness of Curves<br />

When PRESCRIBE renders any curve, it actually converts the curve to a series of connected<br />

straight line segments. The length of these line segments is referred to as a curve’s<br />

flatness. You can change the degree of flatness with the FLAT (set FLATness) command.<br />

The default flatness is 1 (dot). Setting smaller values of flatness results in smoother<br />

curves, but more time is required for computing the larger number of line segments<br />

involved. (The difference is not noticeable for a single curve, but can be substantial in<br />

highly complex pages. Also, the difference is more noticeable with lower print resolutions<br />

[for example, 300 dpi resolution].)<br />

The following programs illustrate the results of setting the flatness to higher values.<br />

!R! RES; UNIT C; NEWP; SPD .1;<br />

FLAT 30;<br />

PMZP 5, 5;<br />

PCRP 4, 2, 5, 4, 4, 0;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 29. Curve with Flatness 30


Closed Paths<br />

!R! RES; UNIT C; NEWP; SPD .1;<br />

FLAT 60;<br />

PMZP 5, 5;<br />

PCRP 4, 2, 5, 4, 4, 0;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 30. Curve with Flatness 60<br />

Path Mode Graphics<br />

Both of these programs draw an identical curve. The only difference between the two is<br />

in the flatness, which is specified on line 2.<br />

When the end point of a path connects to its starting point, the path is said to be closed. A<br />

closed path can be stroked, in the same manner as an open path, or it can be filled with<br />

gray-scale shading or a standard mode fill pattern.<br />

Simply ending a path at the path’s starting point does not make it a closed path; such a<br />

path remains open until it is closed. Closure can be done either explicitly, by means of<br />

the CLSP (CLoSe current Path) command, or implicitly by means of the FILL command.<br />

The following example illustrates construction and closure of a path.<br />

!R! RES; UNIT C; NEWP; SPD .5;<br />

PMZP 4, 2;<br />

PARC 3, 3, 1, 90, 270;<br />

PARC 5, 3, 1, 270, 90;<br />

CLSP;<br />

STRK;<br />

PAGE;<br />

EXIT;<br />

In this example, the PMZP command on line 2 places the current cursor at coordinates 4,<br />

2, where the subsequent PARC command automatically starts to draw a line extending to<br />

the beginning of the arc. The PARC command then draws an arc from 90 degrees<br />

(straight up) to 270 degrees (straight down) around the center at coordinates 3, 3. After<br />

the arc is drawn, the cursor is located at the end of the arc. Then the PARC command on<br />

line 4 draws an arc from 270 degrees to 90 degrees around the center at coordinates 5, 3.<br />

Because the cursor position is defined at the end of the first arc when construction of the<br />

second arc starts, the second PARC command draws a line between the end of the first<br />

arc and the beginning of the second one. Finally, the CLSP command on line 5 explicitly<br />

closes the path, thereby constructing a line between the end of the second arc and the<br />

beginning of the first one.<br />

Now the path has been closed. The STRK command goes on to stroke the path, producing<br />

the shape shown below.<br />

2-29


Chapter 2 Graphics Tutorial<br />

2-30<br />

Filled Areas<br />

Figure 2. 31. A Closed Path<br />

!R! RES; UNIT C;<br />

NEWP;<br />

GPAT .5;<br />

PMZP 4, 2;<br />

PARC 3, 3, 1, 90, 270;<br />

PARC 5, 3, 1, 270, 90;<br />

FILL 1;<br />

PAGE;<br />

EXIT;<br />

This program is similar to the previous one. In this case, we choose to fill the path<br />

instead of stroking it. We select a shade of gray for filling the path (.5, a value directly<br />

between black and white) with the GPAT (set Gray PATtern) command on line 3.<br />

First, we construct the path by drawing arcs around the center points. However, we will<br />

not close it explicitly.<br />

Then we execute the FILL command. This implicitly closes the path, drawing a line<br />

between the ending point of the second arc and the starting point of the first one, then<br />

fills the closed path with the selected gray scale pattern.<br />

Note that we could have filled the path with a standard mode fill pattern instead of a<br />

gray-scale pattern. The only change necessary would be to replace the GPAT command<br />

on line 3 with a PAT or FPAT command specifying the pattern to be used.<br />

The format of the FILL command is<br />

FILL rule;<br />

The rule parameter specifies the convention according to which the path is filled.


Path Mode Graphics<br />

With simple convex paths such as that shown below, the entire enclosed area is filled.<br />

Figure 2. 32. Simple Filled Paths<br />

However, when a path consists of multiple closed subpaths or intersects itself as shown<br />

in the next two figures, the rule determines areas that are deemed to be inside the path.<br />

!R! RES; UNIT C;<br />

PMZP 5, 5;<br />

PMRA 5, 5, 2, 0;<br />

PARC 5, 5, 2, 0, 360;<br />

PMRA 5.2, 5.2, 1.5, 0;<br />

PARC 5.2, 5.2, 1.5, 0, 360;<br />

PMRA 5.5, 5.5, 1, 0;<br />

PARC 5.5, 5.5, 1, 0, 360;<br />

FILL 1;<br />

PMZP 10.5, 4.5;<br />

PMRA 10.5, 4.5, 2, 0;<br />

PARC 10.5, 4.5, 2, 0, 360;<br />

PMRA 11, 6, 2, 0;<br />

PARC 11, 6, 2, 0, 360;<br />

PMRA 12, 5, 2, 0;<br />

PARC 12, 5, 2, 0, 360;<br />

FILL 1;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 33. Complex Filled Paths<br />

2-31


Chapter 2 Graphics Tutorial<br />

2-32<br />

With 1 specified for the rule parameter of FILL, the method for determining whether a<br />

point is inside the path involves drawing a ray from that point in any direction and counting<br />

the number of times the ray crosses segments of the path. The point is said to be<br />

inside the path if the result is an odd number; if the result is an even number, the point is<br />

said to be outside the path.<br />

The non-zero winding rule also draws a ray from a point in any direction to determine<br />

whether or not that point is inside the path and examines the points where a segment of<br />

the path crosses the ray. However, it then starts counting from zero and adds one each<br />

time a segment in the path crosses the ray from left to right; and subtracts one each time<br />

a segment in the path crosses the ray from right to left. If the result of counting all the<br />

crossings is zero, the point is said to be outside; otherwise the point is said to be inside<br />

the path.<br />

After filling the current path, the FILL command clears the path in the same manner as<br />

NEWP.<br />

Clipping Rectangle<br />

Up to this point, we have discussed graphics objects to be drawn or stroked or filled as<br />

paths. However, another PRESCRIBE command can be used to define a clipping template<br />

for clipping texts, paths, and raster graphics. For this purpose, the CLPR (CLiP<br />

Rectangular region) command is provided to define the rectangular region for clipping<br />

paths.<br />

When the printing system is turned on or reset with PRESCRIBE’s RES command, the<br />

clipping rectangle is identical to the printable limits of the page. Subsequently, executing<br />

the CLPR command reduces the clipping rectangle to the intersection of the objects on<br />

the page and the rectangle defined by CLPR.<br />

The following is an example of CLPR.<br />

!R! RES; UNIT C;<br />

NEWP;<br />

SPD 1;<br />

PMRA 6, 9, 3, 0;<br />

PARC 6, 9, 3, 0, 360;<br />

CLPR 3, 6, 9, 12;<br />

STRK;<br />

EXIT;<br />

In this example, lines 1 through 5 draw a circle with an extra line thickness at the coordinates<br />

defined by the PMRA command.<br />

The CLPR command on line 6 constructs a rectangle with its left-upper corner positioned<br />

at coordinates 3, 6 and its right-bottom corner positioned at coordinates 9, 12<br />

(both measured from the top and left edge limits of the page).<br />

As with the rectangular area clipping, those parts of the circle that lie outside of the clipping<br />

rectangle are erased when the path is stroked, producing the result as shown in the<br />

figure on the next page.<br />

The rectangle defined by CLPR does not clip the graphics objects which are drawn by<br />

the standard mode graphics commands.


Figure 2. 34. Clipping Rectangle Example<br />

Printing with Character Paths<br />

Path Mode Graphics<br />

When a resident scalable (outline) font is selected, you can treat a character as a path and<br />

add it to the current path. The PRESCRIBE command is CPTH (Character PaTH).<br />

Paths created with the CPTH command can be either stroked or filled. See the following<br />

example.<br />

!R! RES;<br />

UNIT P;<br />

NEWP;<br />

PAT 26;<br />

SFNT ’Helvetica-Bd’, 54;<br />

PMZP 72, 144;<br />

CPTH "xyz";<br />

FILL 1;<br />

PAGE;<br />

EXIT;<br />

Figure 2. 35. Character Path<br />

Line 2 of this program sets the unit to printing system’s points (1 point= 1/72 inch), then<br />

the NEWP command on line 3 empties the current path (if any), making ready for construction<br />

of a new path. The PAT command on line 4 selects predefined pattern number<br />

26 as the current fill pattern.<br />

2-33


Chapter 2 Graphics Tutorial<br />

Raster Graphics<br />

2-34<br />

Next, the SFNT (Select current FoNT by typeface) on line 5 selects Helvetica Bold, a<br />

scalable (outline) font as the current font and scales the font to a height of 54 points. Use<br />

of SFNT and other font selection commands are explained more fully in PRESCRIBE<br />

Commands Command <strong>Reference</strong>.<br />

The PMZP command on line 6 moves the cursor to the point that is 72 points (1 inch)<br />

from the left edge limit and 2 inches from the top edge limit.<br />

The CPTH command on line 7 constructs a path using the outline of the characters in the<br />

string xyz. The cursor is moved to the end of the string.<br />

Finally, the FILL command fills the path with the selected pattern, and PAGE prints out<br />

the page.<br />

While the graphics commands of the standard and path modes draw shapes such as lines,<br />

circles, and boxes, raster graphics commands specify individual dots to draw images.<br />

The dot resolution is selectable from 75 to 300 dots per inch for all models; and 600-dpi<br />

models have two more choices of 200 dpi and 600 dpi. Lower resolutions give a rougher<br />

appearance, but require less raster data for an image of a given size.<br />

Raster graphics are limited in size only by the dimensions of the paper, and in complexity<br />

only by the dot resolution.<br />

Raster Data Compression Formats<br />

PRESCRIBE supports raster data in three formats: uncompressed raster data, run-length<br />

encoded raster data, or raster data encoded in tagged image file format (TIFF).<br />

Uncompressed Raster Data<br />

Uncompressed raster data consists of a simple, unencoded bit image consisting of binary<br />

data in which 1 bit represent black dots and 0 bit represent white dots. With this format,<br />

each dot line is divided into 8-dot segments. The settings of dots in each segment are<br />

controlled by the bit values of each byte of raster data. Bit 7 (the highest-order bit in the<br />

first byte of data received) corresponds to the first dot in the dot line, bit 0 corresponds to<br />

the eighth dot, and so forth.<br />

Run-length Encoded Raster Data<br />

With run-length encoding, raster data is encoded in pairs of bytes. The first byte of each<br />

pair indicates a repetition count for the second byte. A value of zero in the first byte indicates<br />

that the pattern represented in second byte is not repeated; that is, it occurs only<br />

once. A value of 1 in the first byte indicates that the pattern is repeated once, and so<br />

forth. The first byte can specify any repetition count from 0 to 255.<br />

Raster Data in Tagged Image File Format<br />

The tagged image file format (TIFF) combines features of the uncompressed format and<br />

run-length encoding. A control byte determines whether the following byte or bytes of


Raster Graphics<br />

raster data represents a repeating pattern or an uncompressed (unencoded) pattern. It also<br />

determines the number of pattern repetitions or bytes of uncompressed data.<br />

The control byte is a two’s complement value that can be either zero, positive, or negative.<br />

A negative value (-1 to -127) indicates that the following byte represents a repeating<br />

pattern. The number of repetitions of the pattern is determined by the absolute value of<br />

the control byte.<br />

If the control byte is zero or positive (1 to 127), the following byte(s) of data represent an<br />

uncompressed pattern. In this case, the value of the control byte plus one indicates the<br />

number of bytes making up the pattern.<br />

In TIFF encoding, the two’s complement value -128 indicates a non-operative control<br />

byte. The byte following such a byte is handled as a new control byte.<br />

Commands for Printing Raster Data<br />

PRESCRIBE provides a number of commands for printing raster data, including:<br />

• STR (SeT dot Resolution)<br />

• RVRD (ReceiVe Raster Data)<br />

• ENDR (END Raster data)<br />

• RVCD (ReceiVe Compressed raster Data)<br />

• SRO (Set Raster Options)<br />

The principle function of the SRO command is to specify the presentation mode; i.e., the<br />

orientation of the raster image. If the presentation mode is 0 (the default mode), raster<br />

lines print along the width of the physical page, regardless of the current page orientation.<br />

If the presentation mode is 1, raster lines print in the orientation of the logical page.<br />

This is illustrated in the figure that follows.<br />

2-35


Chapter 2 Graphics Tutorial<br />

2-36<br />

75 dpi resolution<br />

(Default)<br />

Figure 2. 36. Presentation Modes<br />

Y<br />

Y<br />

X<br />

Height<br />

X<br />

Height<br />

Current point<br />

Width<br />

Current point<br />

Width<br />

A secondary function of the SRO command specifies the width and height of the raster<br />

area. When a width and height are explicitly specified, any part of the raster image that<br />

extends outside of the area is clipped.<br />

The STR command specifies the resolution at which raster data is printed. The default<br />

resolution is 75 dots per inch, or the equivalent of 16 physical dots for each raster-line<br />

dot. The following figure shows how a single raster-line dot correlates to physical dots at<br />

each of the available raster data resolutions.<br />

Figure 2. 37. Dot Resolutions<br />

Presentation mode = 0<br />

Portrait<br />

Presentation mode = 1<br />

Portrait<br />

Y<br />

The RVRD and RVCD commands print raster data in the presentation mode specified by<br />

the SRO command and at the resolution specified by the STR command. Either command<br />

can be used. The RVRD command can only print uncompressed raster data. The<br />

RVCD command can print uncompressed raster data, run-length encoded raster data, or<br />

X<br />

Y Height<br />

Width<br />

Landscape<br />

Height<br />

X<br />

Landscape<br />

Current point<br />

Current point<br />

100 dpi resolution 150 dpi resolution 200 dpi resolution 300 dpi resolution 600 dpi resolution 1200 dpi resolution<br />

Width


Raster Graphics<br />

tagged image file format raster data. Both commands are used with the ENDR (END<br />

Raster) command.<br />

Printing Raster Data<br />

The normal sequence for printing raster data is to set the presentation mode (and, if<br />

desired, the height and width of the raster image area) with the SRO command, to set the<br />

dot resolution with the STR command, then to print the raster data with the RVRD or<br />

RVCD/ENDR command pair.<br />

Changing the Printing System’s Imaging Model<br />

The printing system’s imaging model governs the way in which images and patterns are<br />

applied to each other. In short, it determines the transparency or opaqueness of images as<br />

images overlay one another and fill patterns are applied through images.<br />

The image model applies to all PRESCRIBE image modes, and also to operation in the<br />

Hewlett-Packard LaserJet emulation mode.<br />

In general, placing any image on a page involves three elements: a pattern, a source<br />

image whose black bits are replaced by the pattern, and a destination image, which is<br />

any earlier image onto which the source image and pattern are placed.<br />

The fill pattern or gray scale pattern is defined by the PAT command, FPAT command, or<br />

GPAT command.<br />

The source image is any raster graphics image, standard mode graphic, lines or shapes<br />

produced by filling or stroking a path, or text printed using any bitmap or scalable font.<br />

The manner in which white bits in the pattern and source image are processed varies<br />

according to the transparency mode. There are two transparency modes: the source<br />

transparency mode and the pattern transparency mode.<br />

When the source transparency mode is 0 (transparent), white bits in the source image<br />

have no effect on the destination image; when the source transparency mode is 1<br />

(opaque), white bits in the source image are applied to the destination image.<br />

Similarly, when the pattern transparency mode is 0 (transparent), white bits in the pattern<br />

do not affect the destination image; but the area of the source image replaced by the pattern<br />

dots is applied to the destination image when the pattern transparency mode is 1<br />

(opaque).<br />

The figure on the next page illustrates the results that are obtained by printing images<br />

using image modes; that is, using different combinations of source and pattern transparency<br />

modes.<br />

2-37


Chapter 2 Graphics Tutorial<br />

2-38<br />

Figure 2. 38. Image Models<br />

Source transparency mode = 0 (transparent)<br />

Pattern transparency mode = 0 (transparent)<br />

Source transparency mode = 0 (transparent)<br />

Pattern transparency mode = 1 (opaque)<br />

Source transparency mode = 1 (opaque)<br />

Pattern transparency mode = 0 (transparent)<br />

Source transparency mode = 1 (opaque)<br />

Pattern transparency mode = 1 (opaque)<br />

PRESCRIBE establishes the printing system’s imaging model with the SIMG (Set<br />

IMaGe model) command. This command uses the following format.<br />

SIMG operation-mode;<br />

operation-mode is a number from 1 to 6 that determines the image model as follows.<br />

Operation mode Source image Pattern<br />

1 Transparent –<br />

2 Opaque –


3 Transparent Transparent<br />

4 Transparent Opaque<br />

5 Opaque Transparent<br />

6 Opaque Opaque<br />

Raster Graphics<br />

With operation modes 1 and 2, the SIMG command addresses the transparency of the<br />

source image only. For operation mode 1, the white pixels of the source image do not<br />

overlay on the destination. For example, you cannot pattern a character. With operation<br />

mode 2, the SIMG command applies the white pixels of the source image onto the destination<br />

directly.<br />

The following program example illustrates use of the SIMG command. Try changing the<br />

value specified for SIMG on line 3 and see the effect on the result (the figure on the previous<br />

page).<br />

!R! RES; UNIT C;<br />

NEWP;<br />

SIMG 3; CMNT Try changing this value;<br />

PMZP 5, 15;<br />

PMRP 2, 2;<br />

PDRP 0, -2, 2, 0, 0, 2, -2, 0;<br />

PDRP -2, 0, 0, 2, 2, 0, 0, -2;<br />

FILL 1;<br />

SFNT ’TimesNewRoman’, 90;<br />

PMRP -1.2, 1;<br />

GPAT .6;<br />

TEXT ’A’;<br />

FILL 1;<br />

PAGE;<br />

EXIT;<br />

Saving and Restoring the Graphics State<br />

The graphics state consists of a variety of items that affect how images are rendered on<br />

the page. The graphics state contains various information related to path mode graphics<br />

and raster mode graphics.<br />

Items included in the graphics state include the following:<br />

• Current path and cursor position (if defined)<br />

• Current pen diameter (line width)<br />

• Current line join type<br />

• Current line cap type<br />

• Current miter limit<br />

• Current dash pattern<br />

• Current flatness<br />

• Current fill pattern (16 × 16 dots)<br />

• Current clipping rectangle<br />

• Current raster resolution<br />

• Current image model<br />

While working with graphics, there often are occasions when it is useful to save the<br />

graphics state, then later to restore it. One such situation occurs when a path must be<br />

used for both stroking and filling.<br />

2-39


Chapter 2 Graphics Tutorial<br />

2-40<br />

For example, construction of a filled and outlined shape such as that shown below<br />

requires that we draw the path and then fill it. However, filling the path also clears it,<br />

making it unavailable for stroking.<br />

Figure 2. 39. A Path both Stroked and Filled<br />

By saving the graphics state prior to filling the path, it becomes possible to restore the<br />

path after it has been filled, thereby allowing it to be stroked without reconstructing it.<br />

The commands used for saving and restoring the graphics state are the SCG (Save Current<br />

Graphics state) command and the RPG (Return to Previous Graphics state) command.<br />

The following program demonstrates the commands for constructing a path that is both<br />

filled and stroked.<br />

!R! RES; UNIT C; NEWP;<br />

PMZP 4, 2;<br />

PARC 3, 3, 1, 90, 270;<br />

PARC 5, 3, 1, 270, 90;<br />

CLSP;<br />

SCG;<br />

STRK;<br />

RPG;<br />

GPAT .5;<br />

FILL 1;<br />

PAGE;<br />

EXIT;<br />

The result appears in the figure above.


Chapter 3<br />

Macros<br />

After you have gone to the trouble of creating (and debugging) a PRESCRIBE command<br />

sequence, it is inefficient to use it only once, but it is a nuisance to type the same<br />

sequence repeatedly. The solution is to make the sequence into a macro. Then you can<br />

execute the entire sequence with a single CALL command. The procedure for defining a<br />

macro command sequence is simple.<br />

Step 1:Assign a name to the sequence. Place the name at the top of the sequence (ending<br />

with a semicolon).<br />

Step 2:Add the PRESCRIBE command MCRO in front of the name.<br />

Step 3:Add the PRESCRIBE command ENDM at the end of the sequence.


Chapter 3 Macros<br />

MCRO Command<br />

3-2<br />

The MCRO command assigns a name to the sequence of PRESCRIBE commands that<br />

follows, until the ENDM (END Macro) command appears. Thereafter, the entire<br />

sequence of commands can be executed by specifying the assigned name in a single<br />

CALL or AMCR (Automatic MaCRo) command. The MCRO command has the following<br />

format.<br />

MCRO name[ dummy sign[, comment];<br />

The name of a macro can be any length but only the first four characters are recognized<br />

by the PRESCRIBE command language. Any distinction between upper and lowercase<br />

letters is also ignored. For example, the following macro names are all the same:<br />

ABCD<br />

abcd<br />

ABCDE<br />

Abcdxyz<br />

The name must start with a letter, but the other characters can include digits and special<br />

symbols such as hyphens. For example, F-1 and GRY2 are valid macro names.<br />

The dummy sign (the default is the percent sign) indicates dummy parameters in the body<br />

of the macro. Dummy parameters enable you to place different variables when the macros<br />

are called. By using dummy parameters the same macro will execute differently<br />

according to the values given on the CALL command. Dummy parameters are written by<br />

writing the dummy sign followed by a number: %1 for the first dummy parameter, %2<br />

for the second dummy parameter, and so on up to a maximum of 19 dummy parameters.<br />

The same dummy parameter can be used any number of times. Values are assigned to<br />

dummy parameters when the macro is called by the CALL command.<br />

You do not have to specify the dummy sign in the MCRO command unless you want to<br />

use a dummy sign different from the percent sign or want to specify a comment. The<br />

printing system ignores the comment. A useful comment would be a list of the meanings<br />

of dummy parameters. In particular, a macro can contain the CALL command, permitting<br />

one macro to call another. Macro calls can be nested in this way up to a maximum<br />

depth of 20.<br />

If the body of the macro contains TEXT, RTXT, or CTXT commands and these have<br />

dummy parameters, the enclosing quotation marks should be included in the macro call,<br />

not in the macro definition. This enables strings containing commas, semicolons, consecutive<br />

spaces, apostrophes, and quotation marks to be printed.<br />

If a macro with the same name has already been defined, the new definition is ignored.<br />

To redefine a macro, you must first delete the old definition with the DELM (DELete<br />

Macro) or DAM (Delete All Macros) command, or by switching the printing system<br />

power off.<br />

There is no particular limit on the length of a macro. The maximum number of macros<br />

that can be defined is limited only by the amount of the available memory in the printing<br />

system. Each command in a macro is limited to 255 characters in length.


Examples of Macros<br />

Example 1<br />

Figure 3. 1. PRESCRIBE Macro Limitations<br />

Macro limitations are summarized as follows.<br />

Maximum number of macros downloadable<br />

to the printing system<br />

Examples of Macros<br />

The following macro example draws a circle. It first names the macro that issues the<br />

PRESCRIBE commands for drawing a circle in the middle of a page.<br />

!R! MCRO CIR1;<br />

MZP 4, 5.5; CIR 1;<br />

ENDM;<br />

EXIT;<br />

When completed, this macro will draw a circle after it has been sent to the printing system.<br />

!R! CALL CIR1; EXIT;<br />

If you want circles of different sizes, you can make the radius into a so-called dummy<br />

parameter. Dummy parameters in macro definitions are denoted using percent symbols<br />

(%) as below:<br />

!R! MCRO CIRCLE;<br />

MZP 4, 5,5; CIR %1;<br />

ENDM;<br />

EXIT;<br />

Depends on the available printing system’s<br />

memory<br />

Maximum nesting levels 20<br />

Maximum length of macro name 4 characters<br />

Maximum number of parameters 19<br />

Maximum length of CALL command 255 bytes<br />

PRESCRIBE commands that should not be EXIT, LDFC, MCRO, DELM, DAM,<br />

contained within a macro definition RDMP, ENDD, ICCD, WRED, EPRM<br />

After this definition: CALL CIRCLE, 1; draws a one-inch circle, CALL CIRCLE,<br />

2; draws a two-inch circle, and so on. Note the commas are required to separate the<br />

macro name from the radius parameter in these CALL statements.<br />

3-3


Chapter 3 Macros<br />

3-4<br />

Example 2<br />

The next file presents a more ambitious project. It makes the graph-drawing commands<br />

in the preceding section into a pair of macros to draw multiple graphs. This file may help<br />

you to better understand the macro creating process. The DAM command in the first line<br />

is a safety precaution that clears any previous macros out of memory.<br />

!R! RES; UNITC; DAM;<br />

MCRO LOCATE;<br />

SLM %1;<br />

STM %2;<br />

ENDM;<br />

MCRO GRAPH;<br />

UNIT C;<br />

SPD 0.05; SCS 0.23;<br />

MAP 0, -7.3; TEXT %1;<br />

MAP 0, 0; BOX 6, -7;<br />

MAP -0.1, 0.5;<br />

TEXT ’Sun Mon Tue Wed Thu Fri Sat’;<br />

MAP 0, -%2;<br />

DAP 1, -%3;<br />

DAP 2, -%4;<br />

DAP 3, -%5;<br />

DAP 4, -%6;<br />

DAP 5, -%7;<br />

DAP 6, -%8;<br />

ENDM;<br />

CALL LOCATE, 2, 9;<br />

CALL GRAPH, ’Temperature’, 2.5, 3.5, 1.9, 3.0, 3.8, 2.8, 3.3;<br />

CALL LOCATE, 10, 9;<br />

CALL GRAPH, ’Humidity’, 3.5, 1.0, 1.3, 2.6, 1.8, 6.4, 5.9;<br />

CALL LOCATE, 2, 20;<br />

CALL GRAPH, ’Paid Attendance’, 5.2, 1.1, 0.9, 1.5, 1.3, 3.3, 4.4;<br />

CALL LOCATE, 10, 20;<br />

CALL GRAPH, ’Pages Completed’, 0, 1.2, 4.4, 4.6, 3.2, 6.6, 0;<br />

PAGE;<br />

EXIT;


Figure 3. 2. Macro Example 2<br />

Examples of Macros<br />

3-5


3-6<br />

This page is left blank intentionally.


Chapter 4<br />

Fonts<br />

This chapter covers font-related topics, including the printing system’s resident and<br />

option fonts, character sets, and usage of font-selection and symbol creation commands.<br />

A font is a set of characters of a particular design. The design is referred to as a typeface.<br />

Several characteristics identify a font. These include the font type (bit map or scalable),<br />

symbol set, spacing, pitch, height, style, stroke weight, and typeface family. In selecting<br />

a font, the printing system searches the available fonts to match these characteristics<br />

based on the highest priority. For details in this regard, see Selecting Fonts Using the<br />

FSET Command on page 4-9 in this chapter.


Chapter 4 Fonts<br />

Resident Fonts<br />

4-2<br />

List of Fonts<br />

The printing system provides one bitmap font and 136 scalable (outline) fonts as the resident<br />

fonts. Also, fonts may be downloaded to the printing system’s memory from a<br />

computer or a memory card. These fonts are referred to as downloadable or soft fonts.<br />

The printing system accepts as many downloadable fonts as user memory allows.<br />

When the HP LaserJet is the printing system’s default emulation, the power-up (default)<br />

font is Courier. A different default font can be selected by using the FRPO (Firmware<br />

RePrOgram) command of parameters V3 (or using the printing system’s operator panel<br />

key). For details, refer to FRPO Parameters on page 6-2.<br />

Resident scalable fonts provide an outline of characters which can be sized according to<br />

sizing information for the font. These fonts can be scaled from 0.25 to 999.75 points in<br />

quarter point increments.<br />

This section shows tables of the printing system’s resident fonts. It is possible to print a<br />

full list of resident fonts by the FLST command (or using the printing system’s operator<br />

panel key). To print a list of fonts, command:<br />

!R! FLST; EXIT;<br />

The following list shows all the resident fonts in the printing system. For example, Univers-Bd<br />

means a Universe style scalable font with bold weight.<br />

Font Name<br />

Courier<br />

CGTimes<br />

CGTimes-Bd<br />

CGTimes-It<br />

CGTimes-BdIt<br />

CGOmega<br />

CGOmega-Bd<br />

CGOmega-It<br />

CGOmega-BdIt<br />

Coronet<br />

Clarendon-Cd<br />

Univers-Md<br />

Univers-Bd<br />

Univers-MdIt<br />

Univers-BdIt<br />

Univers-MdCd<br />

Univers-BdCd<br />

Univers-MdCdIt<br />

Univers-BdCdIt<br />

AntiqueOlive<br />

AntiqueOlive-Bd<br />

AntiqueOlive-It<br />

GaramondAntiqua


4-3<br />

Garamond-Hlb<br />

Garamond-Krsv<br />

Garamond-HlbKrsv<br />

Marigold<br />

Albertus-Md<br />

Albertus-ExBd<br />

Arial<br />

Arial-Bd<br />

Arial-It<br />

Arial-BdIt<br />

TimesNewRoman<br />

TimesNewRoman-Bd<br />

TimesNewRoman-It<br />

TimesNewRoman-BdIt<br />

Helvetica<br />

Helvetica-Bd<br />

Helvetica-Ob<br />

Helvetica-BdOb<br />

Helvetica-Nr<br />

Helvetica-NrBd<br />

Helvetica-NrOb<br />

Helvetica-NrBdOb<br />

Palatino<br />

Palatino-Bd<br />

Palatino-It<br />

Palatino-BdIt<br />

ITCAvantGardeGothic-Bk<br />

ITCAvantGardeGothic-Dm<br />

ITCAvantGardeGothic-<br />

BkOb<br />

ITCAvantGardeGothic-<br />

DmOb<br />

ITCBookman-Lt<br />

ITCBookman-Dm<br />

ITCBookman-LtIt<br />

ITCBookman-DmIt<br />

NewCenturySchoolbook-<br />

Rom<br />

NewCenturySchoolbook-Bd<br />

NewCenturySchoolbook-It<br />

NewCenturySchoolbook-<br />

BdIt<br />

Times-Rom<br />

Times-Bd<br />

Times-It<br />

Times-BdIt<br />

ITCZapfChancery-MdIt<br />

Symbol<br />

Font Name


Chapter 4 Fonts<br />

4-4<br />

KPDL Fonts<br />

Font Name<br />

SymbolPS<br />

Wingdings<br />

ITCZapfDingbats<br />

Courier-Bd<br />

Courier-It<br />

Courier-BdIt<br />

LetterGothic<br />

LetterGothic-Bd<br />

LetterGothic-It<br />

CourierPS<br />

CourierPS-Bd<br />

CourierPS-Ob<br />

CourierPS-BdOb<br />

LinePrinterBM8.5-Roman<br />

(Bitmap)<br />

In KPDL (Kyocera Print-system Description Language) emulation, the printing system<br />

provides PostScript-compatible 47 scalable fonts. These fonts are also accessible by<br />

using the PRESCRIBE command.<br />

Font Name<br />

Albertus-ExtraBold<br />

Albertus-Medium<br />

AntiqueOlive<br />

AntiqueOlive-Bold<br />

AntiqueOlive-Italic<br />

Arial<br />

Arial-Bold<br />

Arial-BoldItalic<br />

Arial-Italic<br />

AvantGarde-Book<br />

AvantGarde-BookOblique<br />

AvantGarde-Demi<br />

AvantGarde-DemiOblique<br />

Bookman-Demi<br />

Bookman-DemiItalic<br />

Bookman-Light<br />

Bookman-LightItalic<br />

CGOmega<br />

CGOmega-Bold<br />

CGOmega-BoldItalic<br />

CGOmega-Italic<br />

CGTimes<br />

CGTimes-Bold<br />

CGTimes-BoldItalic<br />

CGTimes-Italic


4-5<br />

Clarendon-Condensed-Bold<br />

Coronet<br />

Courier<br />

Courier-Bold<br />

Courier-BoldOblique<br />

Courier-Oblique<br />

CourierPCL<br />

CourierPCL-Bd<br />

CourierPCL-BoldItalic<br />

CourierPCL-Italic<br />

Garamond-Antiqua<br />

Garamond-Halbfett<br />

Garamond-Kursiv<br />

Garamond-KursivHalbfett<br />

Helvetica<br />

Helvetica-Bold<br />

Helvetica-BoldOblique<br />

Helvetica-Narrow<br />

Helvetica-Narrow-Bold<br />

Helvetica-Narrow-BoldOblique<br />

Helvetica-Narrow-Oblique<br />

Helvetica-Oblique<br />

LetterGothic<br />

LetterGothic-Bold<br />

LetterGothic-Italic<br />

Marigold<br />

NewCenturySchlbk-Bold<br />

NewCenturySchlbk-BoldItalic<br />

NewCenturySchlbk-Italic<br />

NewCenturySchlbk-Roman<br />

Palatino-Bold<br />

Palatino-BoldItalic<br />

Palatino-Italic<br />

Palatino-Roman<br />

Symbol<br />

Symbol MT<br />

Times-Bold<br />

Times-BoldItalic<br />

Times-Italic<br />

Times-Roman<br />

TimesNewRoman<br />

TimesNewRoman-Bold<br />

TimesNewRoman-BoldItalic<br />

TimesNewRoman-Italic<br />

Univers-Bold<br />

Univers-BoldItalic<br />

Univers-Condensed-Bold<br />

Univers-Condensed-BoldItalic<br />

Font Name


Chapter 4 Fonts<br />

4-6<br />

Font Name<br />

Univers-Condensed-Medium<br />

Univers-Condensed-MediumItalic<br />

Univers-Medium<br />

Univers-MediumItalic<br />

Wingdings-Regular<br />

ZapfChancery-MediumItalic<br />

ZapfDingbats<br />

Substituting a Bitmap Font<br />

The printing system does not contain any bitmap fonts except LinePrinterBM8.5-<br />

Roman. If the printing system receives a request for the bitmap fonts that the previous<br />

lineups of the printers supported (tabled on page 4-4), a scalable font is substituted.<br />

For example, if Dutch801BM10-Roman, which means a Dutch 801 style bitmap font of<br />

10-point and Roman-style and was resident to the previous models of Kyocera printers,<br />

the printing system substitutes a Times Roman style scalable font. Other options include<br />

weights for bold and italic.<br />

The following table lists the bitmap fonts and the bitmap font numbers that the previous<br />

lineups of Kyocera printers support.The Kyocera printing system behaves exactly in the<br />

same manner when it receives these font numbers. It substitutes the scalable fonts for<br />

these fonts when required.<br />

Font Name Font Number Height (Pts.) Pitch (cpi)<br />

Port. Land.<br />

CourierBM12-Roman 1 17 12 10<br />

CourierBM12-Italic 37 18 12 10<br />

CourierBM12-Bold 38 67 12 10<br />

CourierBM12-BoldItalic 39 68 12 10<br />

Dutch801BM10-Roman 2 19 10 Prop.<br />

Dutch801BM10-Italic 3 20 10 Prop.<br />

Dutch801BM10-Bold 4 21 10 Prop.<br />

Dutch801BM10-BoldItalic 40 69 10 Prop.<br />

Dutch801BM8-Roman 5 22 8 Prop.<br />

Dutch801BM8-Italic 41 — 8 Prop.<br />

Dutch801BM8-Bold 42 70 8 Prop.<br />

Dutch801BM8-BoldItalic 43 — 8 Prop.<br />

PrestigeEliteBM10-Roman 6 23 10 12<br />

PrestigeEliteBM10-Italic 44 24 10 12<br />

PrestigeEliteBM10-Bold 45 71 10 12<br />

PrestigeEliteBM10-BoldItalic 46 72 10 12<br />

PrestigeEliteBM7.2-Roman 7 25 7.2 16.67<br />

PrestigeEliteBM7.2-Italic 47 — 7.2 16.67<br />

PrestigeEliteBM7.2-Bold 48 73 7.2 16.67<br />

PrestigeEliteBM7.2-BoldItalic 49 — 7.2 16.67<br />

LetterGothicBM12-Roman 8 26 12 12


Font Selection<br />

Font Name Font Number Height (Pts.) Pitch (cpi)<br />

Port. Land.<br />

LetterGothicBM12-Italic 50 27 12 12<br />

LetterGothicBM12-Bold 9 28 12 12<br />

LetterGothicBM12-BoldItalic 51 79 12 12<br />

LinePrinterBM8.5-Roman 88 — 8.5 16.67<br />

Swiss721BM14.4-Bold 10 29 14.4 Prop.<br />

Swiss721BM14.4-BoldItalic 52 — 14.4 Prop.<br />

Swiss721BM12-Bold 11 30 12 Prop.<br />

Swiss721BM12-BoldItalic 53 — 12 Prop.<br />

Swiss721BM10-Bold 12 31 10 Prop.<br />

Swiss721BM10-BoldItalic 54 — 10 Prop.<br />

Swiss721BM8-Roman 13 32 8 Prop.<br />

Swiss721BM8-Italic 55 — 8 Prop.<br />

Swiss721BM8-Bold 56 74 8 Prop.<br />

Swiss721BM8-BoldItalic 57 — 8 Prop.<br />

Swiss721BM6-Roman 14 33 6 Prop.<br />

Swiss721BM6-Italic 58 — 6 Prop.<br />

Swiss721BM6-Bold 59 75 6 Prop.<br />

Swiss721BM6-BoldItalic 60 — 6 Prop.<br />

LinePrinterBM9-Roman 15 34 9 16.67<br />

LinePrinterBM9-Italic 61 35 9 16.67<br />

LinePrinterBM9-Bold 62 76 9 16.67<br />

LinePrinterBM9-BoldItalic 63 77 9 16.67<br />

LinePrinterBM7-Roman 16 36 7 21.43<br />

LinePrinterBM7-Italic 64 — 7 21.43<br />

LinePrinterBM7-Bold 65 78 7 21.43<br />

LinePrinterBM7-BoldItalic 66 — 7 21.43<br />

Font Selection<br />

There are several ways to select the fonts: one way is to use the appropriate keys on the<br />

printing system’s control panel; a second way is to place a PRESCRIBE command in the<br />

file to be printed, as in the examples in Chapter 1; a third way is to select a printing system<br />

driver within a software application. This third way is preferable because the fonts<br />

are integrated directly into the software. In the absence of this support, the user should<br />

read the following information on choosing and placing PRESCRIBE commands.<br />

Font Selection by PRESCRIBE Commands<br />

The PRESCRIBE commands associated with font selection include:<br />

• FSET (change current Font SETting by characteristic)<br />

• SFNT (Select current FoNT by typeface)<br />

• ALTF (select ALTernate Font) and SETF (SET alternate Font)<br />

• SCF (Save Current Font) and RPF (Return to Previous Font)<br />

• SCCS (Save Current Code Set) and RPCS (Return to Previous Code Set)<br />

4-7


Chapter 4 Fonts<br />

4-8<br />

• CSET (Change current symbol SET)<br />

• FTMD (set bitmap FonT MoDe)<br />

• FONT (select current FONT by number)<br />

• SFA (Set bitmap Font Attributes)<br />

The FTMD and SFA commands are only valid with bitmap fonts (which are simulated<br />

by resident scalable fonts).<br />

The following is a guideline to the use of these commands. Also, these commands are<br />

fully detailed in PRESCRIBE Command <strong>Reference</strong>.<br />

Selecting Fonts Using the SFNT Command<br />

Use the SFNT command to specify a font by typeface or to assign a font number to a<br />

scalable font, making it possible to select a scalable font with the FONT command (See<br />

Selecting Fonts with the FONT Command on page 4-10.).<br />

For example, to print text using the scalable Times font (TimesNewRoman) at 10 points,<br />

use the following sequence:<br />

!R! SFNT ’TimesNewRoman’, 10; EXIT;<br />

Here, TimesNewRoman represents the typeface name and 10 represents font height in<br />

the unit of points. Note that the SFNT command recognizes all character heights in terms<br />

of points, regardless of the specified unit value.<br />

The SFNT command is particularly useful when you want to assign the font number to a<br />

scalable font and alter its appearance by compressing, expanding, or obliquing it. The<br />

following example selects a scalable Dutch font, sizes it to 10 points, assigns it the font<br />

number 1001 and the Roman-8 symbol set, compresses it to 90 percent of its normal<br />

width, and obliques the font so that it tilts forward at an angle of 13.5 degrees.<br />

!R! SFNT ’TimesNewRoman’, 10, 1001, 277, .9, .3; EXIT;<br />

In this sequence, the assignment of font number 1001 enables it to be selected using the<br />

FONT command. Once this assignment has been made, it remains effective until<br />

changed with another SFNT command or until the power is turned off.<br />

Following the font number assignment, value 277 selects the symbol set Roman-8. A full<br />

list of symbol sets and values appear on the SFNT command page in PRESCRIBE<br />

Commands Command <strong>Reference</strong>.<br />

The value .9 following the symbol set parameter indicates compression to 90 percent of<br />

normal width. Compression can be specified in a range from 0.3 (30 percent) to 3<br />

(300%).<br />

Compression = 0.3 Compression = 1 Compression = 3<br />

Finally, the value .3 concluding the font selection sequence specifies a forward tilt of<br />

13.5 degrees. The angle for normal characters is 0. Negative values result in backwardtilting<br />

characters. The angle parameter accepts any value from –1 (–45°) to 1 (45°).<br />

Examples appear below.<br />

Angle = –1 Angle = 0 Angle = 1


Font Selection<br />

The parameters for symbol set, compression, and obliquing must be either all specified<br />

or all omitted.<br />

Selecting Fonts Using the FSET Command<br />

The FSET command provides a method of selecting fonts based on font characteristics<br />

and font location in the printing system.<br />

Font characteristics upon which selection is based appear in order of priority, from highest<br />

to lowest as follows:<br />

Characteristic Priority of selection<br />

Symbol set Highest<br />

Spacing 2 nd<br />

Pitch 3 rd<br />

Point size (height) 4 th<br />

Style 5 th<br />

Stroke weight 6 th<br />

Typeface family 7 th<br />

Location 8 th<br />

Orientation Lowest<br />

In selecting a font, the printing system searches the available fonts to match a characteristic<br />

based on the highest priority. If this matching produces only one font, that font is<br />

selected. If many fonts match this highest priority, then matching begins with the next<br />

highest characteristic. The printing system continues going down the list until only one<br />

font is left, then that font is selected.<br />

A font may reside in any of three locations: printing system ROM (for resident fonts, and<br />

option fonts, if installed), memory card (for card option fonts), and printing system RAM<br />

(for downloaded fonts). A font in printing system ROM has lower priority than an identical<br />

font on a memory card, and a memory card font has a lower priority than an identical<br />

font in printing system RAM. Also, assuming all other characteristics are the same, a<br />

scalable font has lower priority than a bitmap font (simulated).<br />

The last characteristic checked is the font orientation. If two fonts are found that differ<br />

only in orientation, the one selected is that which matches the page orientation. If only<br />

one font remains and its orientation does not match the orientation of the page, the printing<br />

system rotates the font to match the page orientation.<br />

The example below shows an FSET command sequence that selects the 12-point,<br />

upright, normal-weight, CGTimes font. (The FSET command sequences for selecting the<br />

resident fonts appear on the font lists.)<br />

FSET 1p12v0s0b4101T;<br />

The FSET command sequence may be followed by a CSET (Change current symbol<br />

SET) command which selects the desired HP symbol set. In the example below, the Windows<br />

symbol set is selected.<br />

CSET 9U;<br />

HP symbol set values can be referenced on the CSET command page in PRESCRIBE<br />

Commands Command <strong>Reference</strong>.<br />

4-9


Chapter 4 Fonts<br />

4-10<br />

Selecting Fonts with the FONT Command<br />

Bitmap Font Mode<br />

The FONT command uses font numbers to select fonts. A scalable font does not normally<br />

have the font number, therefore, you must take one extra step using the SFNT<br />

(Select FoNT by typeface) command. See Selecting Fonts Using the SFNT Command<br />

above. For example, to select the 10-point TimesNewRoman which was assigned with<br />

font number 1001, command:<br />

!R! SFNT ’TimesNewRoman’, 10, 1001;<br />

FONT 1001;<br />

EXIT;<br />

If you use a bitmap font, a change in fonts can also affect the character spacing, line<br />

spacing, and page orientation. This depends on the font mode (FTMD). With bitmap<br />

fonts, setting the font mode to 15 enables the printing system to adjust all these parameters<br />

automatically. When you select font 23 (landscape PrestigeEliteBM10-Roman), for<br />

example, the printing system automatically changes the character spacing to 12 characters<br />

per inch, the line spacing to about 7.25 lines per inch, and the page orientation to<br />

landscape.<br />

Remember that the font mode is only valid for bitmap fonts. Scalable fonts always adjust<br />

to the current page orientation. Also, with scalable fonts, you must use a line-spacing<br />

adjustment command to set the innate line spacing for the new font.<br />

Each emulation has a default font mode for bitmap fonts which takes effect when the<br />

emulation is enabled. Font mode 15 is the default font mode of the Line Printer emulation.<br />

The other emulations have lower default font mode values.<br />

If you use a variety of bitmap fonts, you will probably find font mode 13 most convenient.<br />

In font mode 13 character spacing and orientation are always correct, and the line<br />

spacing remains constant when you change fonts. Font mode 13 is the default font mode<br />

of the LaserJet emulation. To select font mode 13 in the other emulations, place the following<br />

sequence at the top of your program or file:<br />

!R! RES; FTMD 13; EXIT;<br />

(Place FTMD after RES, because RES resets the font mode.)<br />

One reason for selecting font mode 13 over font mode 15 is that a self adjusting line<br />

spacing feature can create disastrous affects with software applications designed to handle<br />

line spacing without the assistance of PRESCRIBE.<br />

For lower font mode, such as the default font modes in emulation modes 1 through 5,<br />

spacing and orientation adjustments may be necessary when you change fonts. Use the<br />

following commands:<br />

SCS (Set Character Spacing) or SCPI (Set Characters Per Inch), to adjust the character<br />

spacing, SLS (Set Line Spacing) or SLPI (Set Lines Per Inch), to adjust the line spacing,<br />

SPO (Set Page Orientation), to adjust the page orientation.<br />

The following sequences both use the FONT 19; command to select the 10-point Dutch<br />

801 font with landscape orientation and proportional character spacing. Neither sequence<br />

affects the line spacing.<br />

or<br />

!R! FONT 19; SPO L; SCS 0; EXIT;


!R! FTMD 13; FONT 19; EXIT;<br />

Font Selection<br />

For making many font changes within a document, use the ALTF (change to ALTernate<br />

Font) and SETF (SET alternate Font) commands instead of FONT. To switch repeatedly<br />

between fonts 6 and 8, for example, place the following sequence at the beginning of<br />

your document:<br />

!R! SETF 1,6; CMNT PrestigeEliteBM10-Roman;<br />

SETF 2, 8; CMNT LetterGothicBM12-Roman;<br />

EXIT;<br />

Then use !R! ALTF1; EXIT; within the document to select font 6 and !R! ALTF2; EXIT;<br />

to select font 8. The advantages of ALTF and SETF are that:<br />

• The numbers are easy to remember (1 and 2 instead of 6 and 8).<br />

• All the font number assignments are collected in one place, where they can be easily<br />

checked.<br />

• If you change your mind and decide to use LetterGothicBM12-Bold (font 9) instead<br />

of LetterGothicBM12-Roman, all you have to change is one SETF command (from<br />

SETF 2, 8; to SETF 2, 9;).<br />

In emulation modes 1, 2, and 5, the SETF command can team up in a very effective way<br />

with embedded word-processing commands. See Chapter 7 for details.<br />

The SCF (Save Current Font) and RPF (Return to Previous Font) commands enable font<br />

numbers to be managed in stack fashion. These commands are particularly useful at the<br />

beginning and end of macros, and when you are using embedded commands of wordprocessing<br />

software. To ensure that the saved font is retrieved with the correct code set,<br />

add the SCCS (Save Current Code Set) and RPCS (Return to Previous Code Set) commands<br />

to the SCF and RPF command, respectively.<br />

For instance, to select a font using embedded commands, you can save the current font,<br />

call a new font, enter the text and return to the previous font, as in the following<br />

sequence.<br />

!R! SCF; FONT 7; EXIT; (Text of footnote...)<br />

!R! RPF; EXIT;<br />

This sequence leaves the current font, prints the footnote in font 7 (PrestigeEliteBM7.2-<br />

Roman), then returns to the previous font.<br />

Placement of Font Commands<br />

It is important to note that most existing word-processing software will not recognize<br />

PRESCRIBE font selection commands. However, this software typically accommodates<br />

embedded print commands whereby the PRESCRIBE command placed in a document is<br />

recognized as a print command and not as document text. The following command<br />

sequence demonstrates the embedded commands which might appear in a document.<br />

Example of an appropriate command placement:<br />

... end of previous paragraph.<br />

!R! ALTF 2; EXIT;<br />

Title or Heading !R! ALTF 1; EXIT;<br />

Start of next paragraph ...<br />

The first ALTF command appears on a blank line. The second ALTF command is placed<br />

at the end of a short title or heading, so that it fits on the same line and does not affect the<br />

line count.<br />

4-11


Chapter 4 Fonts<br />

4-12<br />

Font Selection by Embedded Commands<br />

Word-processing programs with IBM and Epson printer drivers include support for a set<br />

of specific typefaces. The Kyocera printing system internally assigns these typefaces to<br />

match similar typefaces already in the printing system. Kyocera users may reassign these<br />

fonts to create a custom font list. To make this change, refer to the SETF command in<br />

PRESCRIBE Commands Command <strong>Reference</strong>.<br />

Word-processing programs that support the Diablo 630 printer use embedded ribboncolor<br />

commands. The printing system translates these internally into ALTF commands.<br />

By placing two SETF commands at the top of a file, you can designate any two desired<br />

fonts by ribbon-color commands.<br />

Word-processing programs that support the LaserJet printer have font description commands.<br />

Kyocera printing systems understand these commands. You can use them to<br />

select any of the fonts in the printing system.<br />

When you select fonts by selecting your software’s own commands, your software recognizes<br />

the command and is not thrown off in its tracking of characters per line or lines<br />

per page. The IBM, Epson, and LaserJet emulations support enough embedded commands<br />

to meet nearly all font selection needs. Only in the Line Printer emulation must<br />

you rely wholly on PRESCRIBE commands for font selection.<br />

Details on font selection by embedded command appear in Chapter 7.<br />

Creation of New Symbols and Characters<br />

With a little work, it is possible to design completely new bitmap characters by constructing<br />

their dot maps. This technique can be used to obtain special characters and<br />

symbols not provided in any of the symbol sets. The relevant command is the LDFC<br />

(LoaD Font Character) command.<br />

One LDFC command defines one character, specifying its font number, character code,<br />

dimensions, orientation, and bit map. An entire new font can be created by specifying an<br />

LDFC command for each character. The command format appears as follows.<br />

LDFC font, code, height, width, y-offset, x-offset,<br />

cell width, center, rotation, resolution; bit map;<br />

Some of the dimension parameters are specified in dots (1/300 inch). Other dimensions<br />

are specified in micro dots, a unit of measurement equal to 1/32 of 1 dot. These units are<br />

used regardless of the unit set by the UNIT command. The rotation parameter is a non<br />

executable parameter. It does not change the orientation of the character. Instead, it tells<br />

the printing system what the character’s orientation is, so that the printing system can<br />

adjust the page orientation correctly (when the font mode is 8 or higher), and can select<br />

the font in response to embedded word-processing commands for a particular rotation.<br />

The rotation parameter should be the same for all characters in the font.<br />

The bit map can be constructed by drawing the character on square-ruled paper (shown<br />

at right) and proceeding as explained below. To demonstrate, we shall encode the bit map<br />

for a small diamond-shaped character (the figure below).


Symbol Set<br />

Figure 4. 1. Character dot pattern<br />

Symbol Set<br />

The pattern is 13 dots high and 13 dots wide. The pattern is encoded as a series of 16-bit<br />

words. If necessary, blank cells may be added on the right to make the width a multiple<br />

of 16. For this reason, the three extra columns appear on the right (see the figure above).<br />

Each 16-bit word is encoded with three characters, representing the most significant six<br />

bits, the next six bits, and the least significant four bits, respectively, as shown in Defining<br />

Fill Patterns in Chapter 2.<br />

To obtain the character codes, divide the word into sections of six, six, and four bits and<br />

calculate the numerical value of each section (referred to as x, y, and z, respectively),<br />

treating it as a binary number in which the white dots are zeros and the black dots are<br />

ones. Then add an offset of 64 to the values of the six-bit sections and 48 to the values of<br />

the four-bit sections. The result is the ASCII code of the character representing that section<br />

(x, y, and z, respectively). Refer to the example of dot map and numerical derivation<br />

in Defining Fill Patterns in Chapter 2. The procedure for the numerical derivation is<br />

identical to creating fill patterns for XPAT.<br />

Six-bit sections consisting of all black dots, as in the middle row of this symbol, are a<br />

special case. They encode by using the ASCII code 127, which is the unprintable delete<br />

code. Character 47 (/) may therefore be used instead.<br />

The resolution may be specified for 300 or 600 (dpi) only in printing system models that<br />

support the 600-dpi resolution printing. LDFC generated 300 dpi characters may print<br />

when the default resolution is 300 or 600 dpi. It is not possible for 600 dpi LDFC generated<br />

characters to print at 300 dpi.<br />

The bit map data proceeds from left to right across the character pattern, then from top to<br />

bottom. The data can be formatted by inserting line-feeds, but not spaces. If we assign<br />

this character an x-offset of 0 and a y-offset and cell width of 500 micro dots each, and<br />

make it ASCII code 42 (*) of font 1000, it creates the following LDFC command:<br />

!R! LDFC 1000, 42, 13, 13, 500, 0, 500, 250, 0;<br />

@’0@’0Ap0Ap0Cx00|At0//J80|At0Cx0Ap0Ap0@’0@’0;<br />

UNIT C;<br />

BOX 4.35, 0.75, L;<br />

FONT 1000;<br />

TEXT ’ * * * * * * * * ’;<br />

EXIT;<br />

The page printing system can produce sets of alphabet, numeric, and symbol characters.<br />

These sets, with each character assigned to a particular code, are known as symbol sets.<br />

4-13


Chapter 4 Fonts<br />

4-14<br />

The following figure shows all the characters included in the most common symbol set,<br />

HP Roman-8.<br />

Figure 4. 2. Roman-8 Symbol Set<br />

In addition to a large selection of bitmap and scalable fonts, the printing system supports<br />

many symbol sets (also referred to as character sets). The variety of Kyocera supported<br />

symbol sets can be attributed to the numerous printer emulations. Most of those symbol<br />

sets are the same regarding the letters of the alphabet, digits, and basic punctuation<br />

marks, but they differ considerably in their special symbols which lie in the upper half of<br />

the character code table, consisting of character codes 128 through 254 (hex 80 through<br />

FE).<br />

Charts for the available symbol sets in each emulation appear in Chapter 7.<br />

Only the resident fonts can be assigned with a new symbol set. All downloaded fonts<br />

contain specific symbol sets.<br />

International Characters<br />

The INTL (print INTernationaL characters) command provides quick access to printing<br />

characters from a different character set, characters not found in the default symbol set<br />

(US ASCII). By simply using the INTL command with appropriate parameters for language<br />

and country code, the Kyocera user can access a wide variety of specific characters.<br />

The following sequence selects the ISO-4 U.K. symbol set for the Swiss721BM8-Roman<br />

font in the HP LaserJet emulation:<br />

!R! UNIT P; CMNT Emulation must be HPLJ;<br />

FONT 13;<br />

INTL 3, 1; CMNT ISO-4 U.K.;<br />

EXIT;<br />

The U.K. symbol set is identical to the US ASCII character set except that it has the<br />

pound currency symbol (\P) in place of the number sign (#).<br />

It should be noted that the symbol set selected by INTL is specific to the currently emulated<br />

printer (HP LaserJet in the above example). If the current emulation is changed to<br />

Diablo 630 for the example above (by a SEM command, for example), the INTL command<br />

selects the Diablo U.K. symbol set instead of HP ISO-4 U.K. symbol set.<br />

Selecting HP Symbol Sets<br />

The HP LaserJet emulation has considerably more supported symbol sets than can be<br />

accessed through the INTL command. To establish a symbol set, use one of the following<br />

commands.


• CSET (Change symbol SET)<br />

• SFNT (Select current FoNT by typeface)<br />

Symbol Set<br />

The CSET command selects a symbol set by specifying its identification code which<br />

closely resembles the command parameters of the HP printer control language. In the<br />

example below, the Windows symbol set is selected.<br />

CSET 9U;<br />

The CSET command may be preceded by an FSET font selection command. Remember<br />

that the symbol set has the highest priority in font selection. The following example still<br />

selects the ISO-4 U.K. symbol set for the Swiss742SWC-Roman font in the HP LaserJet<br />

emulation:<br />

!R! UNIT P;<br />

FSET 1p12v0s0b4148T; CMNT 4148 means Universe;<br />

CSET 1E; CMNT ISO-4 U.K.;<br />

EXIT;<br />

The SFNT command, primarily used to select and size a scalable font as stated previously,<br />

also provides the parameter that specifies a symbol set for the font. It has the following<br />

format:<br />

SFNT ’typeface’[, height[, font-number[, symbol-set, compression, angle]]];<br />

In the above format, the symbol-set parameter specifies the symbol set for the font designated<br />

by typeface. The symbol-set value must be given together with the compression<br />

and angle parameters. In the example below, the symbol-set value 37 assigns the ISO-4<br />

U.K. symbol set to the Universe medium font.<br />

!R! UNIT P;<br />

SFNT ‘Universe-Md’, 12, 2000, 37, 1, 0;<br />

CMNT 37=ISO-4 U.K.;<br />

EXIT;<br />

The symbol set values are tabled in LaserJet Symbol Sets in Chapter 7.<br />

4-15


4-16<br />

This page is left blank intentionally.


Chapter 5<br />

Barcodes<br />

This chapter is a tutorial for encoding data into linear barcode and two-dimensional barcodes<br />

(PDF barcodes) by using PRESCRIBE commands. The former part of this chapter<br />

deals with how to implement the linear barcodes, the latter part explains the PDF417.<br />

They are step-by-step guide with a direct and practical approach.


Chapter 5 Barcodes<br />

Linear Barcodes<br />

5-2<br />

Note<br />

The printing system is capable of printing a wide variety of barcodes, with human-readable<br />

text if desired. The user need only specify the type of barcode and the data to be<br />

encoded. The printing system performs the rest of the work, including bar and space generation,<br />

symbol translation, insertion of start and stop codes, checksum calculation, interleaving,<br />

padding, zero suppression, and parity reversal.<br />

The scanability of barcodes is affected by the quality of the paper and the type of scanner<br />

used. Parameters of the BARC command enable the width of the bars and spaces to be<br />

adjusted to compensate for these factors. A certain amount of testing and experimentation<br />

may be needed to find the right parameter values for a particular set of conditions.<br />

PRESCRIBE uses the BARC (draw BARCode) command to execute barcodes. This<br />

printing system feature is described fully in this chapter.<br />

The BARC command uses the following format.<br />

BARC type, flag, ’string’[, short, tall[, bar1, bar2, bar3, bar4, space1, space2, space3,<br />

space4]];<br />

The BARC command prints specified data in barcode form. The cursor is located at the<br />

top left corner of the barcode for types 0 to 38, 40 and 41, and at the bottom left corner of<br />

the barcode for type 39, and does not move.<br />

The type, flag, and string parameters are always required. The other parameters are<br />

optional. The type parameter is a number from 0 to 42 designating one of the barcode<br />

types listed in Numbers outside the range from 0 to 42 are regarded as type 15 (MSI barcode<br />

with no check digit).<br />

The flag parameter specifies whether (Y or y) or not (N or n) to print a human-readable<br />

text under the barcode. The text is printed in the printing system’s current font. Any<br />

desired font can be obtained by placing a font selection command before the BARC<br />

command. The flag parameter for barcodes 39 and 40 (USPS) must be N.<br />

The string parameter gives the barcode data enclosed in apostrophes or quotation marks.<br />

The allowable length of the string and the characters that can be included depend on the<br />

barcode type. lists the allowed lengths and character sets.<br />

also lists a default character that is used to fill out strings shorter than the minimum<br />

length and which may be substituted for any illegal characters in the string.<br />

If the string is too long, it is truncated to the maximum allowed length.<br />

Examples:<br />

!R! UNIT I; BARC 11, N, ’123456’; EXIT;<br />

!R! BARC 0, Y, ’12345678910’; EXIT;


The short and tall parameters specify the short and tall bar heights in the unit designated<br />

by the UNIT command (default: inches). The short and tall parameters must be both<br />

specified or both omitted. If they are omitted, the default values as shown in Table 5.3.<br />

must be specified.<br />

Only barcode types 0 to 12, 35 to 38, and 39 have two bar heights. For types 13 to 34, 40,<br />

and 41, the bar height is determined by the short parameter and the tall parameter is<br />

ignored. Even when all bars are the same height, however, the command syntax requires<br />

that when a short parameter is specified, the tall parameter must be specified too.<br />

Examples:<br />

!R! UNIT I; BARC 15, N, ’1234567890’, .2, .2; EXIT;<br />

!R! UNIT I; BARC 8, Y, ’123456’, .6, .7; EXIT;<br />

When two bar heights with human-readable text are used, in some cases the tall bars may<br />

overlap the text.<br />

The bar1 to bar4 and space1 to space4 parameters adjust the width of the bars and<br />

spaces. Fine adjustment of these parameters may be needed to obtain scannable barcodes<br />

for a particular scanner and type of paper. The dots unit (UNIT D;) is convenient. Barcode<br />

40 (USPS FIM) ignores all these parameters and therefore has a constant height and<br />

space.<br />

Some barcode types have only two classes of widths (bar1, bar2, space1, space2). Others<br />

have three or four classes. Regardless of the barcode type, when any width parameter<br />

is specified all eight width parameters must be specified together. In the case of two<br />

classes of widths, dummy values must be specified for bar3, bar4, space3, and space4.<br />

The bar and space width parameters should be specified in ascending order. The maximum<br />

specifiable value is 200 dots.<br />

1 ≤ bar1 ≤ bar2 ≤ bar3 ≤ bar4 ≤200 (dots)<br />

1 ≤ space1 ≤ space2 ≤ space3 ≤ space4 ≤ 200 (dots)<br />

5-3


Chapter 5 Barcodes<br />

5-4<br />

If the bar and space width parameters are omitted, the printing system uses suitable<br />

default values. Table 5.3. indicates the number of width classes and the default values for<br />

each barcode type.<br />

Barcode 19 (Code 39) has two width classes, which are set to 5 and 10 dots respectively<br />

in the example below. Bar1 and space1 are both 5 dots, and bar2 and space2 are 10 dots.<br />

Bar3, space3, bar4, and space4 are all given dummy values of 10.<br />

Examples:<br />

!R! UNIT D;<br />

BARC 19, Y, ’0123ABC’, 60, 60, 5, 10, 10, 10, 5, 10, 10, 10;<br />

EXIT;<br />

The above widths are doubled in the next example.<br />

!R! UNIT D;<br />

BARC 19, Y, ’0123ABC’, 60, 60, 10, 20, 20, 20, 10, 20, 20, 20;<br />

EXIT;<br />

Barcode 36 (EAN 8 with a five-digit supplement) has four width classes, which are set to<br />

10, 20, 30, and 40 dots in the example below. Two bar heights are also used.<br />

!R! UNIT D;<br />

BARC 36, N, ’012345678912’, 180, 220, 10, 20, 30, 40, 10,<br />

20, 30, 40;<br />

EXIT;<br />

Barcode 39 (USPS POSTNET) prints a POSTNET barcode on a mail piece. The United<br />

States Postal Service (USPS) utilizes POSTNET (POSTal Numeric Encoding Technique)<br />

to process bulk mail and business reply envelopes quickly and efficiently.<br />

Though this barcode accepts any values within the range specified on the previous page,<br />

we recommend that all parameters except type, flag, and string not be specified as the<br />

scanability of the barcode is most effective with the default values. Also the flag parameter<br />

for this barcode must be N (do not print human-readable text). See the figure on 8. for<br />

POSTNET barcode location.


Barcode 41 (USPS FIM) prints a Facing Identification Mark pattern which may be<br />

printed on the envelope adjacent to the stamp. The combination of a FIM and the POST-<br />

NET (barcode 39) barcode enables faster processing by the USPS.<br />

When generating a FIM pattern, all parameters except type, flag, and string are ignored.<br />

The flag parameter must be N. Characters permitted for the string parameter are ‘A’, ‘B’,<br />

‘C’, and ‘D’ only, and each represents one of four different FIM patterns. For example,<br />

Courtesy Replay Mail and stamped reply mail require the FIM-A pattern, while Business<br />

Reply Mail and unstamped (prepaid) return mail require the FIM-C pattern. Also see the<br />

figure on 8 for FIM location.<br />

Barcode 43 (Customer) has four bar heights. Only the shortest and tallest bar heights are<br />

specifiable, the heights for the intermediate two bars being adjusted automatically. Any<br />

values entered for bar and space widths are ignored and defaulted to 1.68 points respectively.<br />

The rules for the order of specifiable bar and space widths, bar1≤bar2≤bar3≤bar4<br />

and space1≤space2≤space3≤space4, must be adhered to, however.<br />

Table 5.1. Barcode Types (Sheet 1 of 2)<br />

No. Type<br />

0 UPC A<br />

1 UPC A with two-digit supplement<br />

2 UPC A with five-digit supplement<br />

3 UPC D-1<br />

4 UPC D-2<br />

5 UPC D-3<br />

6 UPC D-4<br />

7 UPC D-5<br />

8 UPC E<br />

9 UPC E with two-digit supplement<br />

10 UPC E with five-digit supplement<br />

11 EAN-8<br />

12 EAN-13<br />

13 DUN-14 (Distribution Unit Number, EAN)<br />

14 DUN-16 (Distribution Unit Number, EAN)<br />

15 MSI with no check digit<br />

16 MSI with single mod-10 check digit<br />

17 MSI mod-10 followed by mod-10 check digit<br />

18 MSI mod-11 followed by mod-10 check digit<br />

19 Code 39 with no check digit (USD-3)<br />

20 Code 39 with mod-43 check digit (USD-3)<br />

21 Interleaved two of five (USD-1) with no check digit (See No. 41.)<br />

22 Identicon two of five with no checksum<br />

23 Code 128 (USD-6) manual code change<br />

24 Code 128 (USD-6) automatic code change<br />

25 Code 11 with only ’c’ checksum (USD-8)<br />

26 Code 11 with both ’c’ and ’k’ checksums (USD-8)<br />

27 Code 93 with both ’c’ and ’k’ checksums (USD-7)<br />

28 CODABAR with no check digits (USD-4)<br />

29 Matrix two of five with no checksum<br />

30 Datalogic two of five with no checksum<br />

31 Industrial two of five with no checksum<br />

5-5


Chapter 5 Barcodes<br />

5-6<br />

Table 5.1. Barcode Types (Sheet 2 of 2)<br />

No. Type<br />

32 Ames with no checksum<br />

33 Delta distance ’a’ (IBM) with no checksum<br />

34 Delta distance ’a’ (IBM) with checksum<br />

35 EAN 8 with two-digit supplement<br />

36 EAN 8 with five-digit supplement<br />

37 EAN 13 with two-digit supplement<br />

38 EAN 13 with five-digit supplement<br />

39 POSTNET (USPS)<br />

40 FIM (USPS)<br />

41 Interleaved two of five (USD-1) with checksum<br />

42 UCC/EAN 128<br />

43 Customer<br />

44 Wide gap CODABAR<br />

Table 5.2. Length, Character Set, and Default (Sheet 1 of 2)<br />

Type Length Character set Default<br />

0 11 0123456789 0<br />

1 13<br />

2 16<br />

3 13<br />

4 18<br />

5 22<br />

6 25<br />

7 29<br />

8 6<br />

9 8<br />

10 11<br />

11 7<br />

12 12<br />

13 13<br />

14 15<br />

15 1-14<br />

16 1-14<br />

17 1-14<br />

18 1-14<br />

19 1–40 $%+-./0123456789ABCDEFGHIJK LMNOPQRSTUVWXYZ Space<br />

and space<br />

20 1–40<br />

21 2–26 0123456789 0<br />

22 1–25<br />

23 1–40 All printable characters (ASCII codes 32 to 126) Space<br />

24 2–40<br />

25 1–45 -0123456789 Space<br />

26 1–45<br />

27 1–50 All printable characters (ASCII codes 32 to 126) Space<br />

28 3–32 $+-./0123456789:abcdetn* –


Table 5.2. Length, Character Set, and Default (Sheet 2 of 2)<br />

Type Length Character set Default<br />

0123456789 0<br />

29<br />

30<br />

31<br />

1–25<br />

1–25<br />

1–25<br />

32 1–25 -0123456789 0<br />

33 1–25 0123456789KLMO 0<br />

34 1–25<br />

35 9 0123456789 0<br />

36 12<br />

37 14<br />

38 17<br />

39 139 0123456789 –<br />

40 1 One of the following FIM pattern types:<br />

A – Country Reply Mail with POSTNET.<br />

B – Business Reply, Penalty and Franked Mail without POST-<br />

NET.<br />

C – Business Reply, Penalty and Franked Mail with POSTNET.<br />

D – OCR Readable Mail without POSTNET.<br />

0<br />

41 125 0123456789 0<br />

42 80 All printable characters (ASCII codes 32 to 126)<br />

43 1-20 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ –<br />

44 3-32 $+-./0123456789:abcdetn* and space –<br />

5-7


Chapter 5 Barcodes<br />

5-8<br />

Table 5.3. Location of POSTNET and FIM<br />

POSTNET<br />

(BARC 39)<br />

Clear Zone<br />

( 5 / 8” × 4- 1 / 2”)<br />

Not drawn to scale<br />

Preferred location<br />

for left-most bar<br />

1 /8”<br />

1 /4”<br />

5 /8”<br />

FIM (BARC 40)<br />

Clear Zone<br />

Barcode read area<br />

4- 1 / 2”<br />

1”- 1 / 4”<br />

Table 5.4. Bar Height and Width Classes<br />

Preferred base height<br />

4” max.<br />

2”± 1 / 8”<br />

1”- 3 / 4”<br />

Stamp<br />

3- 1 / 4” min.<br />

Type Tall bars Width classes Default (dots)<br />

1 2 3 4 1 2 3 4<br />

0 Yes Yes Yes Yes Yes 6 12 18 24<br />

1 Yes Yes Yes Yes Yes 6 12 18 24<br />

2 Yes Yes Yes Yes Yes 6 12 18 24<br />

3 Yes Yes Yes Yes Yes 6 12 18 24<br />

4 Yes Yes Yes Yes Yes 6 12 18 24<br />

5 Yes Yes Yes Yes Yes 6 12 18 24<br />

6 Yes Yes Yes Yes Yes 6 12 18 24<br />

7 Yes Yes Yes Yes Yes 6 12 18 24<br />

8 Yes Yes Yes Yes Yes 6 12 18 24<br />

9 Yes Yes Yes Yes Yes 6 12 18 24<br />

10 Yes Yes Yes Yes Yes 6 12 18 24<br />

11 Yes Yes Yes Yes Yes 6 12 18 24<br />

12 Yes Yes Yes Yes Yes 6 12 18 24<br />

13 — Yes Yes — — 6 12 (18) (24)<br />

14 — Yes Yes — — 6 12 (18) (24)<br />

15 — Yes Yes — — 6 12 (18) (24)<br />

16 — Yes Yes — — 6 12 (18) (24)<br />

17 — Yes Yes — — 6 12 (18) (24)<br />

18 — Yes Yes — — 6 12 (18) (24)<br />

19 — Yes Yes — — 6 12 (18) (24)<br />

20 — Yes Yes — — 6 12 (18) (24)<br />

21 — Yes Yes — — 6 12 (18) (24)<br />

3”<br />

7 /16 ”<br />

3 /16”<br />

5 /8 ”min.


Table 5.4. Bar Height and Width Classes<br />

Type Tall bars Width classes Default (dots)<br />

1 2 3 4 1 2 3 4<br />

22 — Yes Yes — — 6 12 (18) (24)<br />

23 — Yes Yes Yes Yes 6 12 18 24<br />

24 — Yes Yes Yes Yes 6 12 18 24<br />

25 — Yes Yes Yes — 6 14 21 (21)<br />

26 — Yes Yes Yes — 6 14 21 (21)<br />

27 — Yes Yes Yes Yes 6 12 18 24<br />

28 — Yes Yes — — 6 18 (18) (18)<br />

29 — Yes Yes — — 6 12 (18) (24)<br />

30 — Yes Yes — — 6 12 (18) (24)<br />

31 — Yes Yes — — 6 12 (18) (24)<br />

32 — Yes Yes — — 6 12 (18) (24)<br />

33 — Yes Yes Yes — 6 12 18 (24)<br />

34 — Yes Yes Yes — 6 12 18 (24)<br />

35 Yes Yes Yes Yes Yes 6 12 18 24<br />

36 Yes Yes Yes Yes Yes 6 12 18 24<br />

37 Yes Yes Yes Yes Yes 6 12 18 24<br />

38 Yes Yes Yes Yes Yes 6 12 18 24<br />

41 — Yes Yes — — 6 12 (18) (24)<br />

42 — Yes Yes Yes Yes 6 12 18 24<br />

44 — Yes Yes — — 6 18 (18) (18)<br />

Table 5.5. Bar Height, Width, Pitch, and Spacing for types 39, 40, and 43<br />

Type Height Width Pitch Spacing<br />

39 Tall: 0.125" Short: 0.05" 0.02" 21 bars/inch 0.0475"<br />

40 5/8" 0.031" 1/16" (Tilt: ±5°)<br />

43 Tall: 10.2 pt. Short: 3.4 pt. 1.68 pt. – 1.68 pt.<br />

5-9


Chapter 5 Barcodes<br />

Two-dimensional Barcodes<br />

5-10<br />

PDF 417 is a two-dimensional stacked barcode symbology capable of encoding over a<br />

kilobyte of data per label. This is important for applications where a barcode must be<br />

more than merely an identifier, an index to reference a database.<br />

The portable data file approach is well suited to applications where it is impractical to<br />

store item information in a database or where the database is not accessible when and<br />

where the item's barcode is read. Because a PDF417 symbol can store so much data, item<br />

data such as the content of a shipping manifest or equipment maintenance history can be<br />

carried on the item, without requiring access to a remote database.<br />

Encoding data into a PDF417 barcode is a two-step process. First, data is converted into<br />

codeword values of 0-928, which represent the data. This is high-level encoding. Then<br />

the values are physically represented by particular bar/space patterns, which is low-level<br />

encoding. Decoding is the reverse process.<br />

In addition, PDF417 is an error-correcting symbology designed for real-world applications<br />

where portions of labels can get destroyed in handling. It performs error correction<br />

by making calculations, if necessary, to reconstruct undecoded or corrupted portions of<br />

the symbol.<br />

PDF417 Symbol Description<br />

module<br />

codeword<br />

At first glance, a PDF417 symbol looks like a set of stacked barcodes. When we look<br />

closer to analyze how the symbol is put together, there are several key elements. These<br />

are rows, start patterns, stop patterns, codewords, and modules, whose definitions are<br />

explained below.<br />

The narrowest width of a bar or space in the barcode. All bars or spaces are multiples (up<br />

to six times) of this width. The nominal unit of measure.<br />

A single group of bars and spaces (or elements) representing one or more numbers, letters,<br />

or other symbols (i.e., codeword values for the data to be encoded). Each PDF417<br />

codeword contains four bars and four spaces, for a total of 17 module widths. Each codeword<br />

starts with a bar and ends with a space. See figure below.<br />

1-module width<br />

3-module wide bar<br />

0 0 0 1 0 1 0 1 0 0 0 1 1 1 1 1 1


start pattern<br />

stop pattern<br />

row<br />

A unique pattern of light and dark elements which indicates the leftmost part of a barcode<br />

label.<br />

A unique pattern of light and dark elements which indicates the rightmost part of a barcode<br />

label.<br />

A lateral set of elements made up of a start pattern, codewords, and a stop pattern. Each<br />

PDF417 symbol must have at least 3 rows. See figure below.<br />

Quiet zone<br />

Start pattern<br />

In each row, between left and right row indicators, there may be from 1 to 30 data codewords.<br />

Collectively, among all rows, these codewords form data columns.<br />

Overall Symbol Structure<br />

Left row indicator<br />

codeword<br />

Data codeword<br />

Right row indicator<br />

codeword<br />

Quiet zone<br />

Row 1<br />

Row 2<br />

Row 3<br />

Row 4<br />

Quiet zone<br />

Any PDF417 symbol is made up of at least 3 rows, and at most 90 rows. The minimum<br />

number of codewords in a row is 3; this includes the left row indicator codeword, 1 data<br />

codeword, and the right row indicator.<br />

Every symbol contains 1 codeword (the first data codeword in row 0) indicating the total<br />

number of data codewords within the symbol, and at least 2 error-detection codewords.<br />

General PDF417 symbol structure is indicated in the following diagram:<br />

Stop pattern<br />

Quiet zone<br />

5-11


Chapter 5 Barcodes<br />

5-12<br />

Start<br />

L0<br />

L1<br />

Lm-2<br />

Lm-1<br />

Printing a Two-dimensional Barcode<br />

Functions of XBCP<br />

Left row indicators Data codeword area Right row indicators<br />

dn-1 dn-2<br />

Error correction area<br />

d0<br />

Ck-1 Ck-2 Rm-2<br />

C1 C0 Rm-1<br />

XBAR, XBCP, XBUF, and ENDB commands support two-dimensional barcode printing.<br />

Each command does the following to put data together for printing a barcode.<br />

XBAR Prints a two-dimensional barcode from the given data string. Must<br />

be followed by an ENDB command.<br />

XBCP Specifies various options for the barcode to be printed using XBAR<br />

depending on the mode following the command (0 through 19). See<br />

Macro PDF417 on page 14.<br />

XBUF Defines a buffer name for a data input for XBAR command.<br />

ENDB Terminates a XBAR command sequence.<br />

The mode parameter in XBCP command format identifies the various functions as listed<br />

below. These commands are detailed in the PRESCRIBE Commands Command<br />

<strong>Reference</strong>.<br />

XBCP mode Meaning<br />

XBCP 0 Reset<br />

XBCP 1 Narrowest element width<br />

XBCP 2 Error correction (by percentage)<br />

XBCP 3 Error correction (by predetermined level)<br />

XBCP 4 Number of rows<br />

XBCP 5 Number of columns<br />

XBCP 6 Aspect ratio of height and width<br />

XBCP 7 Bar height by a ratio of element width<br />

XBCP 8 Number of rows and columns (XBCP 4 and 5)<br />

XBCP 9 Truncation<br />

XBCP 10 through 19 These modes give additional control options used to support Macro<br />

PDF417 barcodes. See more details in section Macro PDF417.<br />

R0<br />

R1<br />

Stop


Positioning the Barcodes<br />

The following commands are positioning commands the PRESCRIBE language provides.<br />

These commands are useful and sometimes essential for proper positioning of the<br />

barcodes onto a medium such as label. More detailed discussion on these (and some<br />

other) positioning commands can be found in the PRESCRIBE Commands Command<br />

<strong>Reference</strong>.<br />

By default the cursor is located at the top left corner of the barcode and stays there after<br />

printing is done.<br />

MAP Moves the cursor to a position relative to the top and left margins.<br />

MRP Moves the cursor from the current to a specified relative position.<br />

MZP Moves the cursor to a position relative to the top and left edge limits<br />

of the page.<br />

UNIT Sets the unit of measurement used in the PRESCRIBE commands<br />

including the above. The initial unit is inches. The other units are<br />

related to inches as: 1 inch=2.54 centimeters=72 points=300 or 600<br />

dots (depending on the printing system model).<br />

Limitations of Two-dimensional Barcode<br />

Item Description<br />

Encodable character set 256 international characters and binary data<br />

Code type Continuous<br />

Character self checking Yes<br />

Bi-directional decoding Yes<br />

Number of row indicator codewords<br />

required per row<br />

2<br />

Number of symbol checksum<br />

codewords required<br />

2<br />

Minimum number of rows per<br />

symbol<br />

3<br />

Maximum number of rows per<br />

symbol<br />

90<br />

Minimum number of data columns 1<br />

Maximum number of data columns<br />

30<br />

Number of symbol length descriptors<br />

required<br />

1<br />

Smallest nominal element width 0.0075 inch or 0.191 mm<br />

Smallest nominal element height 0.01 inch or 0.254 mm<br />

Maximum data characters per<br />

symbol<br />

Assuming 928 codewords – 1 symbol length descriptor<br />

– 2 symbol checksum codewords = 925 data codewords.<br />

Binary/ASCII plus mode: 1108 bytes.<br />

Extended alphanumeric compaction mode (EXC):<br />

1850 ASCII characters. Numeric compaction mode:<br />

2725 digits.<br />

For Macro PDF417, which transparently distributes information among a number of<br />

PDF417 symbols, the above storage limits are increased to more than one million bytes<br />

in Binary/ASCII Plus mode and morethan 2.5 million bytes in EXC mode.<br />

5-13


Chapter 5 Barcodes<br />

5-14<br />

Macro PDF417<br />

Note<br />

Macro PDF417 provides a powerful mechanism for creating a distributed representation<br />

of files too large to be presented by a single PDF417 barcode. Macro PDF417 barcodes<br />

differ from ordinary PDF417 barcodes in that they contain additional control options<br />

which are added by modes 10 through 19 of the XBCP command. This allows a reader to<br />

make use of this information to correctly reconstruct and verify the file, independent of<br />

the barcode scanning order.<br />

The terminology PRESCRIBE macro and macro PDF are not the same. Refer to the<br />

PRESCRIBE Commands Command <strong>Reference</strong> for the PRESCRIBE macro commands<br />

(MCRO, ENDM, etc.).<br />

The following modes of XBCP are used for Macro PDF417 to represent additional control<br />

options for XBAR. Note that implementation of these parameters are optional except<br />

XBCP 17 and XBCP 18.<br />

XBCP 10 File name<br />

XBCP 11 Block count<br />

XBCP 12 Time stamp<br />

XBCP 13 Sender ID<br />

XBCP 14 Addressee ID<br />

XBCP 15 File size<br />

XBCP 16 Check sum<br />

XBCP 17 File ID<br />

XBCP 18 Macro PDF417 execution<br />

XBCP 19 Distributed barcodes positioning<br />

Creating a Macro PDF 417 Representation<br />

A Macro PDF417 creation begins with giving fileid using XBCP 17 for the ensuing<br />

Macro PDF417 sequences. Each one XBAR command sequence is needed for each<br />

divided barcode which is succeeded by a XBCP 18 statement that defines a separate<br />

block index for each barcode. The block index is needed to ensure that the divided barcodes<br />

are reconstructed in the correct order as the whole file when the barcodes are read.<br />

The basic command sequence for Macro PDF417 is as follows.<br />

...<br />

XBCP 17, ’fileid’; Gives the same file ID to all distributed barcodes.<br />

MZP x1, y1; Position the first barcode at (x1, y1).<br />

XBCP 18, 0; Block index for the first barcode.<br />

XBAR; data_string;ENDB; Encode and print the first divided barcode.<br />

MZP x2, y2; Position the second barcode at (x2, y2).<br />

XBCP 18, 1; Assign block index 1 to the second barcode.<br />

XBAR; data_string;ENDB; Encode and print the second divided barcode.<br />

MZP x3, y3; Position the second barcode at (x3, y3).<br />

XBCP 18, 2;<br />

...<br />

Assign block index 2 to the second barcode.<br />

The largest allowed block index is 99,998. Thus, up to 99,999 Macro PDF417 barcodes<br />

may comprise the distributed representation of a data file.


Some samples for Macro PDF417 are provided in PRESCRIBE Commands Command<br />

<strong>Reference</strong> on the XBCP page.<br />

5-15


Chapter 5 Barcodes<br />

5-16


Chapter 6<br />

Permanent Parameters<br />

The printing system maintains a number of parameters in a non-volatile (flash) memory.<br />

These parameters control the initial state of the environment at power-up, including the<br />

initial emulation mode, page orientation, character set, buffer allocations in memory,<br />

interface parameters, and other options.<br />

The parameters may be changed permanently with the FRPO (Firmware RePrOgram)<br />

command. Some FRPO parameters affect only the current interface (interface-dependent)<br />

and some affect all interfaces at once (non-interface-dependent). If the printing system<br />

is shared with other users, remember that any changes to any non-interfacedependent<br />

parameters may interfere with the print jobs of the other users. This chapter<br />

explains the FRPO command and gives examples of its use.<br />

The current settings of the FRPO parameters are listed as option values on the printing<br />

system’s service status page. Refer to the tables in this chapter to interpret the values. To<br />

print a service status page, command:<br />

!R! STAT 1; EXIT;<br />

Before changing any FRPO parameter, print out a service status page, so you will know<br />

the parameter values before the changes are made. To return FRPO parameters to their<br />

factory default values, send the FRPO INIT (FRPO-INITialize) command.


Chapter 6 Permanent Parameters<br />

FRPO Parameters<br />

6-2<br />

Note<br />

The FRPO command changes the value of one parameter in permanent memory. A<br />

separate command is required for each parameter change. The parameters, their<br />

meanings, and the specifiable values are listed below.<br />

In these tables, the Interface-dependent parameters affect the environment on the current<br />

interface only. Any changes made to the parameters on one interface will not change<br />

parameters on the other interfaces. To change a similar parameter on another interface,<br />

first switch to that interface then issue the FRPO command.<br />

The Interface-independent parameters affect all interfaces simultaneously. If the printing<br />

system is shared with other users, remember that changes made to non-interfacedependent<br />

parameters can affect users on other interfaces as well.<br />

Certain parameters are available only when the printing system is installed with the relevant<br />

option equipment.<br />

Interface-dependent Parameters<br />

Table 6.1. Interface-dependent Parameters (Sheet 1 of 3)<br />

Environment Parameter Value Factory setting<br />

Top margin a A1 Integer value in inches 0<br />

A2 Fraction value in 1/100 inches 0<br />

Left margina A3 Integer value in inches 0<br />

A4 Fraction value in 1/100 inches 0<br />

Page lengtha A5 Integer value in inches 13 (17) b<br />

A6 Fraction value in 1/100 inches 61 (30) b<br />

Page widtha A7 Integer value in inches 13 (17) b<br />

A8 Fraction value in 1/100 inches 61 (30) b<br />

Page orientationa C1 0: Portrait, 1: Landscape 0<br />

Default font No. a C5 First two digits of power-up font 00<br />

C2 Middle two digits of power-up font 00<br />

C3 Last two digits of power-up font 00<br />

Operation panel<br />

settings saving<br />

C6 0: Not saved at power-off 1<br />

1: Saved at power-off<br />

PCL font rangec C8 0: Includes proportional bitmap fonts 0<br />

1: Excludes proportional bitmap fonts in range<br />

KC-GL optionsa G0 0: Mode A; formfeed to SP0 0<br />

1: Mode B; formfeed to SP0<br />

2: Mode A; no formfeed to SP0<br />

3: Mode B; no formfeed to SP0<br />

4: Fixed mode A; formfeed<br />

5: Fixed mode B; formfeed<br />

6: Fixed mode A; no formfeed<br />

7: Fixed mode B; no formfeed<br />

8: Mode A; formfeed<br />

9: Mode B; formfeed<br />

10: Mode A; no formfeed<br />

11: Mode B; no formfeed<br />

12: Fixed mode A; formfeed<br />

13: Fixed mode B; formfeed<br />

14: Fixed mode A; no formfeed<br />

15: Fixed mode B; no formfeed<br />

KC-GL pen widtha G1 through G8 0 to 99 dot 01/02/03/04/<br />

05/06/07/08<br />

Interface release timeout<br />

J2 0 to 99 in units of 5 seconds 6


Table 6.1. Interface-dependent Parameters (Sheet 2 of 3)<br />

KC-GL enlarge modea Environment Parameter Value Factory setting<br />

J9 0: Off 0<br />

1: A2<br />

2: A1<br />

3: A0<br />

4: B3<br />

5: B2<br />

6: B1<br />

7: B0<br />

Duplex mode N4 0: Simplex mode 0<br />

1: Long-edge binding<br />

2: Short-edge binding<br />

Default emulation<br />

mode<br />

P1 0: Line Printer 6<br />

1: IBM Proprinter X24E<br />

2: Diablo 630<br />

5: Epson LQ-850<br />

6: HP LaserJet<br />

8: KC-GL<br />

9: KPDL<br />

Carriage-return action P2 0: Ignores 0x0d 1<br />

1: Carriage-return<br />

2: Carriage-return+linefeed<br />

Linefeed action P3 0: Ignores 0x0d 1<br />

1: Linefeed<br />

2: Linefeed+carriage-return<br />

Automatic emulation<br />

sensing d<br />

P4 0: AES disabled 0<br />

1: AES enabled<br />

Alternative emulation P5 Same as the P1 values except that 9 is ignored. 6 (HP LJ)<br />

Automatic emulation<br />

switching trigger<br />

Emulation switching<br />

after receiving !R!<br />

P7 0: Page eject commands 10<br />

1: None<br />

2: Page eject and Prescribe EXIT<br />

3: Prescribe EXIT<br />

4: Page eject commands<br />

5: Formfeed (^L)<br />

6: Page eject, Prescribe EXIT and formfeed<br />

7: Prescribe EXIT and formfeed<br />

8: Page eject commands; if AES fails, resolves<br />

to alternative emulation (P5)<br />

9: None; if AES fails, resolves to alternative<br />

emulation<br />

10: Page eject commands; if AES fails, resolves<br />

to KPDL<br />

P8 0: Current emulation<br />

1: Default emulation (P1)<br />

2: Alternative emulation (P5)<br />

Sorter sharing S0 0: Stand alone<br />

1: Multi users<br />

2: Multiple interfaces<br />

Sorter mode S1 0: Sorter 0<br />

1: Collator<br />

2: Stacker<br />

3: Mailbox<br />

Sorter message S2 0: Remove sorter paper messaged 0<br />

1: Remove sorter paper deactivated except at<br />

power-up<br />

2: Remove sorter paper deactivated<br />

Sorter overfilling S3 0: Interrupts printing until trays are emptied 0<br />

behavior<br />

1: Bypasses printing to the face-down tray<br />

Job separate mode S8 0: Whole pages<br />

0<br />

1: 1st page only<br />

Line spacinga U0 Lines per inch (integer value) 6<br />

Line spacinga U1 Lines per inch (fraction value) 0<br />

Character spacinga U2 Characters per inch (integer value) 10<br />

Character spacinga U3 Characters per inch (fraction value) 0<br />

Country code U6 0: US-ASCII 0<br />

1: France<br />

2: Germany<br />

6-3


Chapter 6 Permanent Parameters<br />

6-4<br />

Table 6.1. Interface-dependent Parameters (Sheet 3 of 3)<br />

Environment Parameter Value Factory setting<br />

Code set at power up in<br />

daisywheel emulation<br />

Font pitch for fixedpitch<br />

scalable fonts<br />

3: UK<br />

4: Denmark<br />

5: Sweden<br />

6: Italy<br />

7: Spain<br />

8: Japan<br />

9: US Legal<br />

10: IBM PC-850 (Multilingual)<br />

11: IBM PC-860 (Portuguese)<br />

12: IBM PC-863 (Canadian French)<br />

13: IBM PC-865 (Norwegian)<br />

14: Norway<br />

15: Denmark 2<br />

16: Spain 2<br />

17: Latin America<br />

50 – 99:HP PCL symbol set coding (See page 7-<br />

37.)<br />

U7 0: Same as the default emulation mode (P1) 0<br />

1: IBM<br />

2: Daisywheel<br />

3: HP Roman8 (US ASCII)<br />

4: Same as 3<br />

5: Epson LQ-850<br />

6: HP Roman-8<br />

U8<br />

7 – 99:HP PCL symbol set coding (See page 7-<br />

37.)<br />

Integer value in cpi: 0 – 99 10<br />

U9 Fraction value in 1/100 cpi: 0 – 99 0<br />

Font height for the<br />

default scalable fonta V0<br />

V1<br />

Integer value in 100 points: 0–9<br />

Integer value in points: 0–99<br />

0<br />

12<br />

V2 Fraction value in 1/100 points: 0, 25, 50, or 75 0<br />

Default scalable fonta, e V3 Name of typeface of up to 32 characters, enclosed<br />

with single or double quotation marks<br />

—<br />

a Ignored in some emulation modes.<br />

b For models supporting A3 and ledger size paper.<br />

c C8—PCL font range<br />

The printing system offers several categories of resident fonts — PCL, KPDL and (simulated)<br />

bitmap fonts. The C8 parameter allows to prioritize font selection (evaluation) by excluding one<br />

or more font categories to simplify the printing system font environment.<br />

For example, the command sequence C8, 1; lets the printing system to exclude bitmap fonts<br />

when font selection is performed in HP LaserJet emulation. (This will provide the closest<br />

matching PCL5 environment for font selection.)<br />

d P4/P5—Automatic Emulation Switching<br />

The FRPO P4 command establishes Automatic Emulation Switching (AES) between KPDL and<br />

the alternative emulation. With the P4 value of 1, the printing system will switch from KPDL<br />

emulation to non-KPDL emulation, or vice versa. Switching is triggered by the command<br />

specified by the FRPO P7 value.<br />

The FRPO P5 value specifies the alternative emulation to which the printing system switches<br />

from KPDL. The factory default for P5 is the HP LaserJet.<br />

The automatic emulation switching mode may not operate properly if the print job contains<br />

PRESCRIBE commands.


e V0-V3 — Default (power-up) font<br />

These parameters define the default font at power up. The V3 parameter accepts a scalable font<br />

name of up to 32 characters and defines it to be the power-up font. The factory-set default font<br />

is Courier. The V0, V1, and V2 parameters specify the height of the font. The default size is<br />

012.00 points (00, 12, 00, respectively).<br />

The V0-V3 parameters are ignored if the specified font is not present at power-up, and the<br />

printing system selects Courier as the default font for V3.<br />

The example below gives the PRESCRIBE sequence which changes the default font to<br />

TimesNewRoman, 14.25 points:<br />

!R! FRPO V3, ’TimesNewRoman’;<br />

FRPO V0, 0;<br />

FRPO V1, 14;<br />

FRPO V2, 25;<br />

EXIT;<br />

The power-up font can be a simulated bitmap font by giving a font number to the C5, C2 and<br />

C3 parameters in the same manner as for V0, 1 and 2. This will set the V3 value to null.<br />

Interface-independent Parameters<br />

Table 6.2. Interface-independent Parameters (Sheet 1 of 8)<br />

Environment Parameter Value Factory setting<br />

Downloadable PCL font<br />

compression<br />

Message language<br />

selection at power-on<br />

Default pattern<br />

resolution (PAT, FPAT,<br />

GPAT)<br />

Minimum memory<br />

allocation for resource<br />

protection/(in duplex<br />

mode)<br />

B0 0: Off 0 (countries excluding<br />

1: On<br />

Asia) or 1 (Asia)<br />

B7 0: Automatically enters message language<br />

selection menu at the initial power-on. After<br />

a language is selected, B7=1 is set<br />

automatically.<br />

1<br />

1: Does not automatically enter message<br />

language selection menu at power-on.<br />

B8 0: 300 dpi 0<br />

1: 600 dpi<br />

3: 1200 dpi<br />

B9 0: 12 MB or more (16 MB or more) 0 or 1<br />

1: 10 MB (14 MB)<br />

2: 8 MB (12 MB)<br />

3: 6 MB (10 MB)<br />

4: 4 MB (8 MB)<br />

5: 2 MB (6 MB)<br />

Copy count C0 Number of copies to print:1-999 1<br />

KPDL font range C9 0: KPDL fonts only 0<br />

1: KPDL and PCL fonts<br />

Serial line control D0 0: XON is sent every 5 seconds during the<br />

printing system is ready or waiting. Error is<br />

ignored.<br />

0<br />

1: XON is sent every 5 seconds during the<br />

printing system is ready or waiting. Error is<br />

valid.<br />

10: XON is not sent. Error is ignored.<br />

11: XON is not sent. Error is valid.<br />

A4 full page bleeda D1 0: Off<br />

0<br />

1: On<br />

Audio alarm D2 0: Off 1<br />

1: On<br />

Paper size error D3 0: Not notified 0<br />

1: Notified<br />

2: Complies with MS certification<br />

Print density D4 Number from 1 (Light) to 5 (Dark) 3<br />

Service status page D5 0: Not printed 1<br />

1: Printed<br />

Paper jam retry timing D6 0: End of page 0<br />

1: Fuser sensor activated<br />

2: Fuser sensor deactivated<br />

3: Page ejection<br />

4: Same as 0; non-engine-dependent<br />

Host buffer size H0 0 to 99 in units of 10MB (0 to 990MB) 0<br />

6-5


Chapter 6 Permanent Parameters<br />

6-6<br />

Table 6.2. Interface-independent Parameters (Sheet 2 of 8)<br />

Environment Parameter Value Factory setting<br />

Serial interface baud<br />

rate<br />

H1 3: 300 bps (not valid for some models) 96<br />

6: 600 bps (not valid for some models)<br />

12: 1200 bps<br />

24: 2400 bps<br />

48: 4800 bps<br />

96: 9600 bps<br />

19: 19200 bps<br />

38: 38400 bps<br />

57: 57600 bps<br />

11: 115200 bps<br />

Serial interface data bits H2 7 or 8 8<br />

Serial interface stop bits H3 1 or 2 1<br />

Serial interface parity H4 0: None 0<br />

1: Odd<br />

2: Even<br />

3: Ignore<br />

Serial interface protocol H5 0: Combination of 1 and 3 below 0<br />

1: DTR, positive true<br />

2: DTR, negative true<br />

3: XON/XOFF<br />

4: ETX/ACK<br />

5: XON/XOFF recognized only as protocol<br />

Buffer nearly-full<br />

threshold<br />

H6 Percentage of the received data buffer size. 90<br />

Buffer nearly-empty<br />

threshold<br />

H7 Percentage of the received data buffer size. 70<br />

Total host buffer size H8 0 to 99 in units of the size defined by FRPO S5 5 (monochrome<br />

model), 10<br />

(monochrome model<br />

with network<br />

Interface), or 12 (color<br />

model)<br />

Form feed time-out<br />

value<br />

H9 Value in units of 5 seconds (0 to 99). 6<br />

Memory card partition<br />

reading at power-up b<br />

I0 Partition name on a memory card to be read<br />

automatically at power-up. Maximum of 15<br />

printable ASCII characters (20H through 7EH),<br />

enclosed in single or double quotation marks.<br />

Event log panel menu I1 0: Off 0<br />

1: On<br />

Character width I2 0: Normal 0<br />

1: HP LaserJet compatible<br />

Sleep timer I5 0: Off 1<br />

1: On<br />

End-of-job<br />

interpretation for option<br />

interface OPT2<br />

End-of-job<br />

interpretation for print<br />

server interface<br />

Reduce/enlarge ratio<br />

(Models supporting A3<br />

size only)<br />

I7 Interprets EOJ given by NIC to the following: 0<br />

0: None<br />

1: ^L (0CH)<br />

2: ^D (04H)<br />

3: ^L and ^D<br />

7: ^D and ^L<br />

I8 Interprets EOJ issued by print server to the<br />

following:<br />

0<br />

0: None<br />

1: ^L (0CH)<br />

2: ^D (04H)<br />

3: ^L and ^D<br />

7: ^D and ^L<br />

J0 0: 100% 0<br />

5: 70%<br />

6: 81%<br />

7: 86%<br />

8: 94%<br />

9: 98%<br />

Status send control c M1 0: Reports status in KPDL mode only. 0<br />

1: Reports status in all emulations.<br />

20: Treats all CTRL-T commands as data in all<br />

emulations.<br />


Table 6.2. Interface-independent Parameters (Sheet 3 of 8)<br />

Default interface M2 1: Default Serial or Option Serial 2 or 3<br />

2: Parallel<br />

3: Default Network or Option Network<br />

4: Option Network or Option2 Network<br />

5: USB<br />

Host buffer moded Environment Parameter Value Factory setting<br />

M3 0: Automatic 0<br />

1: Fixed<br />

First buffer size M4 Size of the first buffer 3 (model with network<br />

interface) or 5 (other)<br />

Second (First) e buffer<br />

size<br />

M5 Size of the second (first) buffer 10 (model with<br />

network interface) or 5<br />

(other)<br />

M6 Size of the third (second) buffer 1<br />

Third (Second) buffer<br />

size<br />

Forth (Third) buffer size M7 Size of the forth (third) buffer number 5<br />

Fifth (Forth) buffer size M8 Size of the fifth (forth) buffer number 5<br />

KIR mode N0 0: Off 2<br />

2: On<br />

Duplex binding N4 0: Off 0<br />

1: Long edge<br />

2: Short edge<br />

Sleep timer time-out<br />

time<br />

N5 Value in units of 5 minutes: 1 to 48 [5 to 240 min.] 6<br />

Ecoprint level N6 0: Off 0<br />

2: On<br />

Duplex N7 0: Normal 0<br />

1: Reverse output pages.<br />

2: Allows duplex from the MP tray.<br />

3: Allows duplex from the MP tray; reversing<br />

the output pages.<br />

Printing resolution N8 0: 300 dpi 1<br />

1: 600 dpi<br />

3: 1200 dpi<br />

PCL resource protection N9 0: Off 0<br />

1: Protects permanent PCL resources and<br />

resets the environment.<br />

2: Protects permanent and temporary PCL<br />

resources.<br />

Parallel interface mode O0 0: Normal 5<br />

1: High-speed<br />

5: Nibble (High)<br />

70: Auto (Negotiation)<br />

Message language P0 0: English 0<br />

1: French<br />

2: German<br />

3: Danish<br />

4: Swedish<br />

5: Italian<br />

6: Spanish<br />

Command recognition<br />

character<br />

P9 ASCII code from 33 to 99 82 (R)<br />

Default stacker R0 1: Face-down tray 1<br />

2: Face-up tray<br />

3: Bulk tray<br />

Auto cassette switching R1 0: Cassette not switched when empty. 0<br />

1: Main cassette and the first feeder cassette.<br />

2: Main cassette and the second feeder<br />

cassette.<br />

3: The first feeder cassette and the second<br />

feeder cassette.<br />

4: Main cassette, the first feeder cassette, and<br />

the second feeder cassette.<br />

5: Main cassette and the third feeder cassette.<br />

6: The first feeder cassette and the third feeder<br />

cassette.<br />

7: The second feeder cassette and the third<br />

feeder cassette.<br />

6-7


Chapter 6 Permanent Parameters<br />

6-8<br />

Table 6.2. Interface-independent Parameters (Sheet 4 of 8)<br />

8: Main cassette, the first feeder cassette, and<br />

the third feeder cassette.<br />

9: Main cassette, the second feeder cassette,<br />

and the third feeder cassette.<br />

10: The first feeder cassette, the second feeder<br />

cassette, and the third feeder cassette.<br />

11: Main cassette, the first feeder cassette, the<br />

second feeder cassette, and the third feeder<br />

cassette.<br />

12: Main cassette and the fourth feeder cassette.<br />

13: The first feeder cassette and the fourth feeder<br />

cassette.<br />

14: The second feeder cassette and the fourth<br />

feeder cassette.<br />

15: The third feeder cassette and the fourth<br />

feeder cassette.<br />

16: Main cassette, the first feeder cassette, and<br />

the fourth feeder cassette.<br />

17: Main cassette, the second feeder cassette,<br />

and the fourth feeder cassette.<br />

18: Main cassette, the third feeder cassette, and<br />

the fourth feeder cassette.<br />

19: The first feeder cassette, the second feeder<br />

cassette, and the fourth feeder cassette.<br />

20: The first feeder cassette, the third feeder<br />

cassette, and the fourth feeder cassette.<br />

21: The second feeder cassette, the third feeder<br />

cassette, and the fourth feeder cassette.<br />

22: Main cassette, the first feeder cassette, the<br />

second feeder cassette, and the fourth feeder<br />

cassette.<br />

23: Main cassette, the first feeder cassette, the<br />

third feeder cassette, and the fourth feeder<br />

cassette.<br />

24: Main cassette, the second feeder cassette,<br />

the third feeder cassette, and the fourth<br />

feeder cassette.<br />

25: The first feeder cassette, the second feeder<br />

cassette, the third feeder cassette, and the<br />

fourth feeder cassette.<br />

26: Main cassette, the first feeder cassette, the<br />

second feeder cassette, the third feeder<br />

cassette, and the fourth feeder cassette.<br />

99: Switched according to the page size<br />

command in data.<br />

Default paper size R2 0: Size of the default paper cassette (See R4.) 0<br />

1: Monarch (3-7/8 × 7-1/2 inches)<br />

2: Business (4-1/8 × 9-1/2 inches)<br />

3: International DL (11 × 22 cm)<br />

4: International C5 (16.2 × 22.9 cm)<br />

5: Executive (7-1/4 × 10-1/2 inches)<br />

6: US Letter (8-1/2 × 11 inches)<br />

7: US Legal (8-1/2 × 14 inches)<br />

8: A4 (21.0 × 29.7 cm)<br />

9: JIS B5 (18.2 × 25.7 cm)<br />

10: A3 (29.7 × 42 cm)<br />

11: B4 (25.7 × 36.4 cm)<br />

12: US Ledger (11 × 17 inches)<br />

13: A5 (14.8 × 21 cm)<br />

14: A6 (10.5 × 14.8 cm)<br />

15: JIS B6 (12.8 × 18.2 cm)<br />

16: Commercial #9 (3-7/8 × 8-7/8 inches)<br />

17: Commercial #6 (3-5/8 × 6-1/2 inches)<br />

18: ISO B5 (17.6 × 25 cm)<br />

19: Custom (11.7 × 17.7 inches) f<br />

30: C4 (22.9 × 32.4 cm) f<br />

31: Hagaki (10 × 14.8 cm) f<br />

32: Ofuku-Hagaki (14.8 × 20 cm) f<br />

Environment Parameter Value Factory setting<br />

33: Officio II<br />

36: A3 Wide


Table 6.2. Interface-independent Parameters (Sheet 5 of 8)<br />

Environment Parameter Value Factory setting<br />

37: Ledger Wide<br />

50: Statement<br />

51: Folio<br />

52: Youkei 2<br />

53: Youkei 4<br />

Default margin settings R3 0: HP compatible margins. 0<br />

1: Full PCL printable area.<br />

2: Character pitch given by U2 and U3.<br />

3: Full PCL printable area with character<br />

pitches given by U2 and U3.<br />

10: IBM HT reference point as the left margin.<br />

11: Full PCL printable area for HP emulation;<br />

HT reference point as the left margin in IBM<br />

emulation.<br />

12: Uses Courier font for IBM emulation, using<br />

the pitch given by U2 and U3.<br />

Default cassette R4 0: Multi-purpose tray 1<br />

1: Cassette 1<br />

2: Cassette 2<br />

3: Cassette 3<br />

4: Cassette 4 or Envelope/universal feeder<br />

5: Cassette 5<br />

6: Cassette 6<br />

99: Envelope/universal feeder (FS-9000)<br />

Page protect R5 1 – 3: Automatic<br />

4 – 5: On<br />

1<br />

MP tray paper size R7 Same as the R2 values except: 0 0<br />

0: Maximum paper size of the printing system<br />

Daisywheel data length R8 7: 7-bit 7<br />

8: 8-bit<br />

Default envelope feeder<br />

paper size<br />

R9 Same as the R2 values except below 0<br />

0: A4 or Letter<br />

A4/letter equation S4 0: Off 0<br />

1: On<br />

Host buffer size S5 0: 10kB (x H8) 1<br />

1: 100kB (x H8)<br />

2: 1024kB (x H8)<br />

RAM disk capacity S6 0 to 1024 (MB) 50<br />

RAM disk S7 0: Disabled 0<br />

1: Enabled<br />

Serial interface mode S9 0: Normal 0<br />

1: Barcode reader<br />

MP tray mode T0 0: Cassette mode 1<br />

1: First mode (overrides other paper sources)<br />

Cassette 1 paper sizeg T1 6: Letter 6 (U.S.A) or 8 (Euro<br />

and other)<br />

7: Legal<br />

8: A4<br />

9: B5<br />

13: A5<br />

Cassette 2 paper sizeg T2 Same as above. 6 (U.S.A) or 8 (Euro<br />

and other)<br />

Wide A4 T6 0: Off 0<br />

1: On<br />

MP tray directionh T8 0: Short edge 1<br />

1: Long edge<br />

Paper thickness T9 0: Normal 0<br />

1: Thick<br />

2: Thin<br />

3: Extra thick<br />

Status page print at U5 0: Not printed automatically 0<br />

power-up<br />

1: Printed automatically at power-up<br />

Default Courier weight V9 0: Dark<br />

0<br />

1: Normal<br />

6-9


Chapter 6 Permanent Parameters<br />

6-10<br />

Table 6.2. Interface-independent Parameters (Sheet 6 of 8)<br />

Environment Parameter Value Factory setting<br />

1<br />

Color mode W1 0: Monochrome (grayscale)<br />

1: Color (CMYK)<br />

2: Quick color (CMY)<br />

Color quality W2 0: Normal<br />

1: Quick color<br />

2: Picture<br />

3: Presentation<br />

Color matching W3 0: None<br />

1: Auto<br />

2: Vivid color<br />

3: Display<br />

Monitor simulation W4 0: None<br />

1: SMPTE240M<br />

2: HDTV (sRGB)<br />

3: SONY Trinitron<br />

4: Apple AGB<br />

5: NTSC<br />

6: KC RGB<br />

7: Custom<br />

Ink simulation W5 1: None<br />

2: SWOP<br />

3: Euroscale<br />

4: TOYO<br />

5: DIC<br />

Gloss mode W6 0: Low (normal)<br />

1: High<br />

Paper type for the MP<br />

tray<br />

Paper type for paper<br />

cassettes 1 to 6<br />

Paper type for<br />

Envelope Feeder/<br />

Universal Feeder<br />

X0 1: Plain 1<br />

2: Transparency<br />

3: Preprinted<br />

4: Label<br />

5: Bond<br />

6: Recycle<br />

7: Vellum<br />

8: Rough<br />

9: Letterhead<br />

10: Color<br />

11: Prepunched<br />

12: Envelope<br />

13: Cardstock<br />

21: Custom1<br />

22: Custom2<br />

23: Custom3<br />

24: Custom4<br />

25: Custom5<br />

26: Custom6<br />

27: Custom7<br />

28: Custom8<br />

X1 – X6 1: Plain 1<br />

3: Preprinted<br />

5: Bond<br />

6: Recycled<br />

8: Rough<br />

9: Letterhead<br />

10: Color<br />

11: Prepunched<br />

21: Custom1<br />

22: Custom2<br />

23: Custom3<br />

24: Custom4<br />

25: Custom5<br />

26: Custom6<br />

27: Custom7<br />

28: Custom8<br />

X7 1: Plain 1<br />

3: Preprinted<br />

4: Label<br />

5: Bond<br />

6: Recycled<br />

8: Rough<br />

0<br />

0<br />

2 (For the FS-8000C, 0<br />

and 2 only)<br />

1<br />

0


Table 6.2. Interface-independent Parameters (Sheet 7 of 8)<br />

Environment Parameter Value Factory setting<br />

9: Letterhead<br />

10: Color<br />

11: Prepunched<br />

12: Envelope<br />

13: Cardstock<br />

21: Custom1<br />

22: Custom2<br />

23: Custom3<br />

24: Custom4<br />

25: Custom5<br />

26: Custom6<br />

27: Custom7<br />

28: Custom8<br />

PCL paper source X9 0: Performs paper selection depending on<br />

media type.<br />

1: Performs paper selection depending on<br />

paper sources.<br />

2: Performs paper selection which is<br />

compatible with HP-LJ8000.<br />

3: Combination of value 1 and 2.<br />

8: Performs paper selection in driver priority<br />

mode.<br />

9: Combination of value 1 and 8.<br />

10: Combination of value 2 and 8.<br />

11: Combination of value 1, 2 and 8.<br />

Automatic continue for Y0 0: Off<br />

‘Press GO’<br />

1: On<br />

Automatic continue Y1 number from 000 to 495 in increments of 5<br />

timer<br />

seconds<br />

Quick fuser heater Y2 0: On<br />

1: Off<br />

Error message for<br />

device error<br />

Y3 0: Does not display an error message and pause<br />

the job when the device error occurs.<br />

1: Displays an error message when duplex<br />

printing is not executed because of a possible<br />

limitation.<br />

2: Displays an error message and pause the job<br />

when running out of staples.<br />

3: Combination of value 1 and 2.<br />

4: Displays an error message and pause the job<br />

when the waste punch box is full.<br />

5: Combination of value 1 and 4.<br />

6: Combination of value 2 and 4.<br />

7: Combination of value 1, 2 and 4.<br />

8: Displays an error message and pause the job<br />

when the maximum number of stapling is<br />

exceeded.<br />

9: Combination of value 1 and 8.<br />

10: Combination of value 2 and 8.<br />

11: Combination of value 1, 2 and 8.<br />

12: Combination of value 4 and 8.<br />

13: Combination of value 1, 4 and 8.<br />

14: Combination of value 2, 4 and 8.<br />

15: Combination of value 1, 2, 4 and 8.<br />

16: Displays an error message when stapling,<br />

puching, offset or rotate collate is not<br />

executed because of a possible limitation<br />

except 2, 4 and 8.<br />

17: Combination of value 1 and 16.<br />

18: Combination of value 2 and 16.<br />

19: Combination of value 1, 2 and 16.<br />

20: Combination of value 4 and 16.<br />

21: Combination of value 1, 4 and 16.<br />

22: Combination of value 2, 4 and 16.<br />

23: Combination of value 1, 2, 4 and 16.<br />

24: Combination of value 8 and 16.<br />

25: Combination of value 1, 8 and 16.<br />

26: Combination of value 2, 8 and 16.<br />

27: Combination of value 1, 2, 8 and 16.<br />

28: Combination of value 4, 8 and 16.<br />

29: Combination of value 1, 4, 8 and 16.<br />

30: Combination of value 2, 4, 8 and 16.<br />

31: Combination of value 1, 2, 4, 8 and 16.<br />

8 (model supporting<br />

driver priority mode)<br />

or 0 (other)<br />

0<br />

6<br />

0 or 1<br />

0<br />

6-11


Chapter 6 Permanent Parameters<br />

6-12<br />

Table 6.2. Interface-independent Parameters (Sheet 8 of 8)<br />

Environment Parameter Value Factory setting<br />

0<br />

Duplex operation for<br />

specified paper type<br />

(Prepunched, Preprinted<br />

and Letterhead)<br />

Default operation for<br />

PDF direct printing<br />

Y4 0: Leaves the job as is when the job which the<br />

specified paper type is specified in simplex<br />

mode.<br />

1: Adds blank pages and prints the job in<br />

duplex mode when the job which the<br />

specified paper type is specified in simplex<br />

mode.<br />

Y5 0: Enlarges or reduces the image to fit in the<br />

current paper size. Loads paper from the<br />

current paper cassette.<br />

1: Through the image. Loads paper which is the<br />

same size as the image.<br />

2: Enlarges or reduces the image to fit in the<br />

current paper size. Loads Letter, A4 or A3<br />

size paper depending on the image size.<br />

3: Through the image. Loads Letter, A4 or A3<br />

size paper depending on the image size.<br />

8: Through the image. Loads paper from the<br />

current paper cassette.<br />

9: Through the image. Loads Letter, Ledger or<br />

Legal size paper depending on the image<br />

size.<br />

10: Enlarges or reduces the image to fit in the<br />

current paper size. Loads Letter, Ledger or<br />

Legal size paper depending on the image<br />

size.<br />

e-MPS error Y6 0: Does not print the error report and display<br />

the error message.<br />

3<br />

1: Prints the error report.<br />

2: Displays the error message.<br />

3: Prints the error report and displays the error<br />

message.<br />

a Supported only by FS-1500 series, FS-1600 series, FS-3400 series, and FS-3600 series.<br />

b I0—Name of the partition in memory card<br />

The FRPO I0 specifies a memory card partition name to be automatically read at power up. Only one<br />

partition may be specified. The data read from the named partition at power up will be available to<br />

users accessing the currently-active interface.<br />

The command uses the following format:<br />

FRPO I0, ’partition-name’;<br />

Note that a comma must be placed after the I0 parameter. The partition name should not exceed 15<br />

printable ASCII characters (20H through 7EH) and be enclosed by single or double quotation marks.<br />

Partition names are case-sensitive so the correct upper and lowercase characters must be used in the<br />

FRPO I0 string.<br />

The FRPO M2 parameter enables the printing system to read the partition name into a port apart from<br />

the currently active one. For instance, if the active port were the parallel port but the M2 parameter<br />

specified the serial port, then the memory card data would be available to users accessing the serial<br />

interface.<br />

c M1—Status send control<br />

The FRPO M1 parameter enables the user to receive printing system status information through the<br />

serial interface. By sending CTRL-T (Hex 14) from the host computer to the printing system, the user<br />

can receive status information about ready or waiting states, the total page count for the printing<br />

system, the default page size, and the available memory size in bytes.<br />

d M3—Host buffer mode<br />

The M3 parameter determines the automatic or fixed host buffer mode.<br />

If the M3 value is 0 (automatic), the first data arriving from the computer go into buffer #1, regardless<br />

of which interface they arrive on. While buffer #1 is in use, if data also begin to arrive on a second<br />

interface they are stored in buffer #2. The printing system will print these data after it has finished<br />

printing the job received through buffer #1. The general rule is that data go to the available buffer.<br />

If the M3 value is 1 (fixed), buffer #1 is fixed to receive only the data arriving in the parallel interface;<br />

and buffer #2 is fixed in the option interface (if installed). The first data arriving on one of the<br />

interfaces go into its fixed, dedicated buffer and the printing system begins printing these data and<br />

continues as above.<br />

The factory setting of the total host buffer size is 60 kilobytes or 500 kilobytes depending on the<br />

model. This can be altered by the FRPO H8 command. If you alter the buffer size, you must reset the<br />

printing system to bring the change in effect.<br />

0


e M5/M6/M7/M8—Host buffer size<br />

The printing system utilizes each one buffer for its interfaces. This enables simultaneous receiving<br />

of data from the different host computers. The FRPO M5, M6, M7, and M8 parameters determine<br />

the ratio among the sizes allocated to these buffers. Parameters M6 and M7 are provided for option<br />

interfaces.<br />

For example, to allocate the buffers with size ratio of 5:1, use the following format:<br />

!R! FRPO M3, 1; FRPO M5, 5; FRPO M6, 1; EXIT;<br />

f Ignored in some emulation modes.<br />

g Models of low-end category only.<br />

h A3/ledger models only.<br />

6-13


Chapter 6 Permanent Parameters<br />

6-14


The printing systems emulate the operation of seven other printers:<br />

• HP LaserJet (mode 6)<br />

• HP 7550A (mode 8)<br />

• IBM Proprinter X24E (mode 1)<br />

• Epson LQ-850 (mode 5)<br />

• Diablo 630 (mode 2)<br />

• Standard line printer (mode 0)<br />

• KPDL (mode 9) [PostScript compatible]<br />

Chapter 7<br />

Emulation<br />

Word-processing and graphics software for any of the above printers also works with the<br />

printing system. All you need to do is to set the printing system to emulate the printer<br />

your software supports and select the appropriate printer driver.<br />

In rare cases when your software does not support any of the printers above, install your<br />

software to drive the standard line printer and use PRESCRIBE commands to control<br />

line spacing, character spacing, etc.<br />

Inappropriate selection of printer drivers and printer-based emulations will produce<br />

undesirable results.<br />

When shipped from the factory, the printing system is set to emulate the HP LaserJet. For<br />

best results, look for an appropriate printer driver in your software application.<br />

You can also find the appropriate printer driver for your model in the CD-ROM supplied<br />

with the product. Or, you are encouraged to visit our Internet home page to directly<br />

download the printer driver of the latest version.<br />

This chapter first explains how to select an emulation. Then it gives some general information<br />

applying to all the emulation modes. Finally, it goes over each of the modes,<br />

explaining the printing system’s word-processing capabilities and showing its character<br />

sets. Tables of control codes and escape sequences are also given at the end of each emulation<br />

section.


Chapter 7 Emulation<br />

Selecting an Emulation<br />

7-2<br />

When installing a printing system, you can select an emulation that best suits the requirement<br />

by the application software. In most cases, the emulation will be the factory default<br />

setting (mode 6: HP LaserJet). Refer to the following diagram to locate the next level<br />

emulation in case you need to change the emulation.<br />

For example, in printing environments using the HP plotter model HP 7550A (KC-GL),<br />

the user should select mode 8. In PostScript printing environments, mode 9 should be<br />

selected (an option on some models) .<br />

To set an emulation mode, send the printing system the FRPO commands listed in the<br />

table below.<br />

Table 7.1. Emulation Switching Command Sequence<br />

Mode Emulation FRPO Commands<br />

0 Line Printer !R! FRPO P1, 0; FRPO P3, 1; EXIT;<br />

1 IBM Proprinter X24E !R! FRPO P1, 1; FRPO P3, 2; EXIT;<br />

2 Diablo 630 !R! FRPO P1, 2; FRPO P3, 1; EXIT;<br />

5 Epson LQ-850 !R! FRPO P1, 5; FRPO P3, 2; EXIT;<br />

6 HP LaserJet !R! FRPO P1, 6; FRPO P3, 1; EXIT;<br />

8 HP 7550A !R! FRPO P1, 8; FRPO P3, 1; EXIT;<br />

9 KPDL !R! FRPO P1, 9; EXIT;<br />

The emulation mode can also be changed from the printing system’s operator panel.


Automatic emulation sensing<br />

Line Printer Emulation (Mode 0)<br />

In printing systems that permit the selection of KPDL emulation, the automatic emulation<br />

sensing (AES) can be activated so that print jobs using other emulations will automatically<br />

print in the correct emulation. Refer to the AES related FRPO command<br />

parameters, P4 and P5, in Interface-independent Parameters on page 5 in Chapter 6.<br />

General Information on Emulation<br />

The printing system’s capability for supporting seven printer emulations is remarkably<br />

complete; although a few differences are noteworthy:<br />

• The printing system cannot print on paper larger than the size of its cassette. In particular,<br />

it cannot print on continuous forms.<br />

• The 600 dpi and 1200 dpi resolutions are supported only with HP LaserJet and KPDL<br />

emulations. Even for the models with 600 dpi and 1200 dpi support, printing occurs<br />

only with the 300 dpi resolution in Line Printer, IBM Proprinter, Diablo, and Epson<br />

emulation modes.<br />

• The printing system’s fonts do not duplicate the appearance of the fonts of the emulated<br />

printers exactly. For a fixed font, the printing system provides the same character<br />

spacing as the printer under emulation. This is not always true for proportional<br />

spacing. When proportional spacing is used, your word processing software, using an<br />

HP LaserJet driver, may be unable to properly right justify proportional text.<br />

• The printing system supports scalable (outline) fonts. With the assistance of PRE-<br />

SCRIBE commands, the scalable fonts are available for printing in any one of the<br />

emulation modes. (See Chapter 4 for details.)<br />

• The graphics commands which create a path are also supported in all emulation<br />

modes. Instructions on how to create a path are described in Chapter 2.<br />

• In all emulations, the printing system’s margins differ slightly between emulations.<br />

The margins can be adjusted with PRESCRIBE margin commands. However, they<br />

cannot be moved outside the paper edge limits.<br />

• PRESCRIBE commands can also be used for supplementary font control. Examples<br />

are given in each section (FONT, SFNT, etc.).<br />

Line Printer Emulation (Mode 0)<br />

To set the power-up emulation for Line Printer, send the printing system the following<br />

PRESCRIBE command sequence:<br />

!R! FRPO P1, 0 ; FRPO P3, 1; FRPO U6, 1; EXIT;<br />

The Line Printer character set options are the same as for the IBM emulation. FRPO U6,<br />

1 selects the full IBM US ASCII character set, which includes many international characters,<br />

graphic symbols, and mathematical symbols in addition to standard ASCII. If you<br />

leave the U6 parameter at its 0 factory setting, you will get a subset excluding some<br />

international characters and symbols. The other options are US Legal (FRPO U6, 9;) and<br />

the Danish character set (FRPO U6, 4;). See Section for details.<br />

The line printer emulation is virtually featureless. It uses only the control codes listed<br />

below.<br />

7-3


Chapter 7 Emulation<br />

7-4<br />

Table 7.2. Line Printer Control Codes<br />

Character code<br />

(decimal)<br />

Abbreviation Meaning<br />

8 BS Backspace<br />

10 LF Linefeed<br />

12 FF Formfeed<br />

13 CR Carriage return<br />

Other control codes are ignored. In particular, the escape code (ESC: character code 27)<br />

is ignored. If the printing system receives the escape sequence ESC A, for example, it<br />

ignores the escape code and prints the letter A. Therefore, this emulation requires PRE-<br />

SCRIBE commands for controlling the printing system.<br />

In font mode (FTMD) 15, the printing system automatically gives the innate character<br />

spacing, line spacing, and page orientation for each bitmap font, and character spacing<br />

and page orientation for each scalable font.<br />

If a line overruns the right margin, word wrap occurs automatically in this emulation.<br />

IBM Proprinter X24E Emulation (Mode 1)<br />

To set the power-up emulation for IBM Proprinter X24E, send the printing system the<br />

following PRESCRIBE command sequence:<br />

!R! FRPO P1, 1; FRPO P3, 1; EXIT;<br />

The IBM symbol sets include IBM PC-8 plus international characters, mathematical<br />

symbols, Greek letters, and graphic symbols, so you can print things like:<br />

Symbol sets PC-850, PC-860, PC-863, PC-865, US ASCII, and Denmark allow all ruling<br />

characters (hex B0 to DF) and underscore characters (5F) to be printed in the correct<br />

pitch for creating continuous lines.<br />

The symbol set may be selected with the INTL command or the operator panel keys. Permanent<br />

setting of the symbol set is made with the FRPO U6 and U7 commands but not<br />

with the Proprinter escape sequences.<br />

The following symbol sets list shows the support for the IBM emulation.<br />

Table 7.3. IBM Proprinter X24E Symbol Sets<br />

Symbol set Message display FRPO command<br />

US ASCII IBM PC-8 FRPO U6, 0; FRPO U7, 1;<br />

Denmark IBM PC-8 (D/N) FRPO U6, 4; FRPO U7, 1;<br />

US Legal US Legal FRPO U6, 9; FRPO U7, 1;<br />

IBM PC-850 (Multilingual) IBM PC-850 FRPO U6, 10; FRPO U7, 1;<br />

IBM PC-860 (Portuguese) IBM PC-860 FRPO U6, 11; FRPO U7, 1;


Table 7.3. IBM Proprinter X24E Symbol Sets<br />

IBM Proprinter X24E Emulation (Mode 1)<br />

Symbol set Message display FRPO command<br />

IBM PC-863 (Canadian French) IBM PC-863 FRPO U6, 12; FRPO U7, 1;<br />

IBM PC-865 (Norwegian) IBM PC-865 FRPO U6, 13; FRPO U7, 1;<br />

By giving a particular value for the U6 and U7 parameters, it is possible to use another<br />

symbol set which the Diablo does not have. For details, see LaserJet Symbol Sets on<br />

page 37.<br />

At power-up or after a reset, the printing system defaults to LetterGothic (12 points, 10<br />

cpi). This default font emulates the IBM printer’s Sans-serif 10cpi font. The default font<br />

cannot be changed in the IBM Proprinter X24E emulation. (The FRPO C5, C2, and C3<br />

commands will be ignored in the IBM Proprinter X24E emulation.)<br />

The printing system also emulates three other IBM-printer fonts: Courier, Prestige Elite,<br />

and Courier Proportional (See the table on next page). These fonts can be obtained by<br />

embedded commands or by using a printer driver from your word-processing software<br />

that supports the IBM Proprinter X24E. No PRESCRIBE commands are needed. An<br />

embedded command gives double-wide versions and another give double-high version<br />

of all four fonts. Samples are shown on the next page.<br />

Figure 7. 4. IBM Proprinter Emulation Print Samples<br />

The IBM Proprinter X24E emulation supports embedded commands for doublewide/double-high<br />

printing, emphasized printing, double-strike printing, superscripts,<br />

7-5


Chapter 7 Emulation<br />

7-6<br />

subscripts, underlining, backspace, vertical and horizontal tabulation, line spacing, and<br />

paper length.<br />

The font mode set for the IBM Proprinter X24E emulation is 0 (the printing system<br />

adjusts nothing automatically for font attributes) unless you change it by the FTMD<br />

command. If you do not need exact character spacing, you can improve the appearance<br />

of some fonts by changing the font mode to 13.<br />

!R! FTMD 13; EXIT;<br />

It should be noted that for FTMD 13; the default Draft Sans-serif font will be printed in<br />

12 cpi, and the Courier Proportional font will be printed in fixed pitch.<br />

To use some of the page printing system’s other fonts, you can select them with font<br />

selection commands, but a more convenient method is available. You can substitute other<br />

fonts for the four embedded fonts with SETF (SET alternate Font) commands. This<br />

works because the printing system obtains these fonts from the following default values<br />

of the SETF command:<br />

Table 7.5. IBM Proprinter Fonts<br />

Font name Character spacing ALTF No.<br />

Draft Sans-serif 10 cpi, 12 cpi 0<br />

Courier 10 cpi 1<br />

Prestige Elite 12 cpi 2<br />

Draft Sans-serif Condensed (15 cpi) 3<br />

Courier Prop. Proportional 4<br />

A substitute font can be any resident font if you use the SFNT command to assign the<br />

font number. (See the SFNT command page in PRESCRIBE Commands Command<br />

<strong>Reference</strong>.)<br />

To assign a font number to resident fonts for substituting the emulated fonts in IBM Proprinter<br />

X24E emulation, all the option parameters (including symbol-set, compression,<br />

and angle) for the SFNT command must be specified.<br />

Landscape orientation is another feature the printing system can offer that the IBM<br />

printer cannot. If you command !R! SPO L; EXIT; the printing system rotates the current<br />

font and prints text in landscape orientation.<br />

The printing system supports the IBM printer’s bit-image graphics in portrait orientation,<br />

so graphics software using the IBM Proprinter X24E emulation will print charts, graphs,<br />

and pictures without the need for PRESCRIBE commands. The print model and clipping<br />

features of the PRESCRIBE path mode graphics will be ignored with the IBM bit-image<br />

graphics, however.<br />

If you attempt to print beyond the right margin, the characters will wrap around and print<br />

on the next line.<br />

IBM Proprinter X24E Control Codes<br />

This section provides IBM Proprinter X24E control codes which is supported by the<br />

printing system under X24E Proprinter emulation.


Table 7.6. IBM Proprinter X24E Control Codes<br />

IBM Proprinter X24E Emulation (Mode 1)<br />

Command Function Code (hex) Supported<br />

BEL Beeper 07 –<br />

BS Backspace 08 Yes<br />

HT Horizontal Tab 09 Yes<br />

LF Line Feed 0A Yes<br />

VT Vertical Tab 0B Yes<br />

FF Form Feed 0C Yes<br />

CR Carriage Return 0D Yes<br />

SO Double-Wide Printing by line 0E Yes<br />

SI Condensed Printing 0F Yes<br />

DC1 Select Printer 11 –<br />

DC2 10 CPI Print 12 Yes<br />

DC4 Cancel Double-Wide Printing 14<br />

by line<br />

Yes<br />

CAN Cancel Data 18 –<br />

ESC * m n1 n2 data Select Graphic Mode (AGM<br />

only)<br />

1B 2A m n1 n2 data –<br />

ESC - n Continuous Underline 1B 2D n Yes<br />

ESC 0 1/8 Inch Line Spacing 1B 30 Yes<br />

ESC 1 7/72 Inch Line Spacing 1B 31 Yes<br />

ESC 2 Start Text Line Spacing 1B 32 Yes<br />

ESC 3 n Graphics Line Spacing 1B 33 n Yes<br />

ESC 4 Set Top of Form 1B 34 Yes<br />

ESC 5 n Automatic Line Feed 1B 35 n Yes<br />

ESC 6 Select Character Set 2 1B 36 Yes<br />

ESC 7 Select Character Set 1 1B 37 Yes<br />

ESC : 12 CPI Printing 1B 3A Yes<br />

ESC = Character Font Image Download<br />

1B 3D –<br />

ESC A n Set Text Line Spacing 1B 41 n Yes<br />

ESC B n1 n2...n64 null Set Vertical Tabs 1B 42 n1 n2...n64 0 Yes<br />

ESC C n m Set Form Length in Line or<br />

Inches<br />

1B 43 nm Yes<br />

ESC D n1 n2...n29 null Set Horizontal Tabs 1B 44 n1 n2...n28 0 Yes<br />

ESC E Emphasized Printing 1B 45 Yes<br />

ESC F Cancel Emphasized Printing 1B 46 Yes<br />

ESC G Double-Strike printing 1B 47 Yes<br />

ESC H Cancel Double-Strike Printing 1B 48 Yes<br />

ESC I n Select Print Mode 1B 49 n Yes<br />

ESC J n Graphics Variable Line Spacing<br />

1B 4A n Yes<br />

ESC K n1 n2 v1 v2...vn Normal-Density Bit-Image<br />

Graphics<br />

1B 4B n1 n2 v1 v2...vn Yes<br />

ESC L n1 n2 v1 v2...vn Dual-Density Bit-Image<br />

Graphics<br />

(Half-Speed)<br />

1B 4C n1 n2 v1 v2...vn Yes<br />

ESC N n Set Automatic Perforation<br />

Skip<br />

1B 4E n Yes<br />

ESC O Cancel Automatic Perforation 1B 4F<br />

Skip<br />

Yes<br />

ESC P n Proportional Space Mode 1B 50 n Yes<br />

ESC Q n Deselect Printer 1B 51 n –<br />

ESC R Set All Tabs to Power on Settings<br />

1B 52 Yes<br />

ESC S n Subscript or Superscript Printing<br />

1B 53 n Yes<br />

ESC T Cancel Subscript or Superscript<br />

1B 54 Yes<br />

7-7


Chapter 7 Emulation<br />

7-8<br />

Table 7.6. IBM Proprinter X24E Control Codes<br />

Command Function Code (hex) Supported<br />

ESC U n Set Print Direction 1B 55 n –<br />

ESC W n Continuous Double-Wide<br />

Printing<br />

1B 57 n Yes<br />

ESC X n m Set Horizontal Margins 1B 58 n m Yes<br />

ESC Y n1 n2 v1 v2...vn Dual-Density Bit-Image<br />

Graphics<br />

(Normal Speed)<br />

1B 59 n1 n2 v1 v2...vn Yes<br />

ESC Z n1 n2 v1 v2...vn High-Density Bit-Image<br />

Graphics<br />

1B 5A n1 n2 v1 v2...vn Yes<br />

ESC [@ n1 n2 m1 m2 m3 m4 Double-High Printing 1B 5B 40 n1 n2 m1 m2 m3 m4 Yes<br />

ESC [K n1 n2 in id p1 p2 Set Initial Condition 1B 5B 4B n1 n2 in id p1 p2 Yes<br />

ESC [T n1 n2 0 0 c1 c2 Set Code Page 1B 5B 54 n1 n2 0 0 c1 c2 Yes<br />

ESC [\ n1 n2 t1 t2 g1 g2 Set Vertical Unit 1B 5B 7C n1 n2 t1 t2 g1 g2 Yes<br />

ESC [g n1 n2 m data High-Resolution Graphics 1B 5B 67 n1 n2 m data Yes<br />

ESC \ n1 n2 Print Continuously From All<br />

Characters Chart<br />

1B 7C n1 n2 Yes<br />

ESC ^ Print Single Character from<br />

All Characters Chart<br />

1B 5E Yes<br />

ESC_n Continuous Overline 1B 2D n Yes<br />

ESC d n1 n2 Relative Move Inline Forward 1B 64 n1 n2 Yes<br />

ESC j Stop Printing 1B 6A –<br />

ESC e n1 n2 Relative Mode Inline Backward<br />

1B 65 n1 n2 Yes


IBM PC-8 (D/N) (373)<br />

IBM Symbol Sets<br />

IBM PC-8 (341)<br />

IBM Proprinter X24E Emulation (Mode 1)<br />

7-9


Chapter 7 Emulation<br />

IBM PC-850 (405) IBM PC-860 (30)<br />

7-10


IBM PC-863 (62) IBM PC-865 (94)<br />

IBM Proprinter X24E Emulation (Mode 1)<br />

7-11


Chapter 7 Emulation<br />

Diablo 630 Emulation (Mode 2)<br />

7-12<br />

Note<br />

To set the power-up emulation for Diablo 630, send the printing system the following<br />

PRESCRIBE command sequence:<br />

!R! FRPO P1, 2; FRPO P3, 1; EXIT;<br />

The Diablo uses ten symbol sets as shown below. To select one of these symbol sets, use<br />

the INTL command or the operator panel keys. Permanent setting of the symbol set is<br />

made with the FRPO U6 and U7 parameters.<br />

The factory setting for the symbol set at power-up is IBM PC-8 for all emulation modes.<br />

Table 7.7. Diablo 630 Emulation Symbol Sets<br />

Symbol set Message display FRPO commands<br />

US DIABLO US FRPO U6, 0; FRPO U7, 2;<br />

France DIABLO France FRPO U6, 1; FRPO U7, 2;<br />

Germany DIABLO Germany FRPO U6, 2; FRPO U7, 2;<br />

UK DIABLO U.K. FRPO U6, 3; FRPO U7, 2;<br />

Denmark DIABLO Denmark FRPO U6, 4; FRPO U7, 2;<br />

Sweden DIABLO Sweden FRPO U6, 5; FRPO U7, 2;<br />

Italy DIABLO Italy FRPO U6, 6; FRPO U7, 2;<br />

Spain DIABLO Spain FRPO U6, 7; FRPO U7, 2;<br />

Japan DIABLO Japan FRPO U6, 8; FRPO U7, 2;<br />

US Legal US Legal FRPO U6, 9; FRPO U7, 2;<br />

The U0—U3 parameters of the FRPO command will be ignored in the Diablo emulation.<br />

The line and character spacing are always 6 lines and 10 characters per inch at power-up<br />

and after a reset.<br />

In Diablo emulation, the printing system supports the embedded commands of word-processing<br />

software essentially the same way as the Diablo 630 printer does for the following<br />

features:<br />

• Margins<br />

• Horizontal and vertical tabulation<br />

• Line and character spacing, including proportional spacing<br />

• Half line feed, reverse line feed, and reverse half line feed<br />

• Backspace and fine backspace<br />

• Bold (shadow), double-strike, and underlining<br />

• Graphics mode<br />

If you attempt to print beyond the right margin, the characters will not be printed.<br />

A feature the printing system has that the Diablo does not is the landscape orientation. To<br />

print in landscape orientation, send the command SPO L; and select a landscape font.<br />

Example:<br />

To print in landscape, send the following command:<br />

!R! SPO L; EXIT;<br />

The automatic centering, justification and Hyplot mode of the Diablo printer are not supported.


Diablo 630 Emulation (Mode 2)<br />

Fonts can be selected by placing font commands in the file to be printed, or using SETF<br />

(set alternate font) and ALTF (change to alternate font) commands. To substitute scalable<br />

fonts for the embedded fonts using SETF command, employ the FSET command to<br />

apply the appropriate font number for that scalable font. The default font mode (FTMD)<br />

is 0, so the printing system will not adjust character spacing, line spacing, or page orientation.<br />

The red/black ribbon feature of the Diablo 630 printer is implemented in an interesting<br />

way. The printing system translates the black ribbon command internally into an ALTF 0<br />

command, and the red ribbon command into an ALTF 1 command. It also uses two pairs<br />

of SETF default values:<br />

Ribbon color Simulated bitmap font SETF default value<br />

Black CourierBM12-Roman SETF 0, 1;<br />

Red Dutch 801BM10-Roman SETF 1, 2;<br />

Accordingly, if you use the embedded command that asks for red ribbon, you will get<br />

bitmap font 2, Dutch801BM10-Roman, which the printing system emulates using a resident<br />

scalable font. This font is proportionally spaced, so you should also specify proportional<br />

spacing with an embedded command. When you change back to black ribbon, the<br />

printing system changes to bitmap font 1, CourierBM12-Roman, also emulated using a<br />

scalable font.<br />

With SETF commands you can select any two fonts you like which correspond to the<br />

black and red ribbons. For example, you can have black mean normal CGTimes and red<br />

mean CGTimes italicized. The appropriate setup is shown below, together with a short<br />

file and the printed result.<br />

!R!<br />

SFNT ’CGTimes’, 10, 3000;<br />

SFNT ’CGTimes-It’, 10, 3001;<br />

SETF 1, 3000; CMNT Red: 10-point CGTimes;<br />

SETF 0, 3001; CMNT Black: 10-point CGTimes Italic;<br />

EXIT;<br />

^[A10,000 Maniacs: ^[BOur Time in Eden ^[A(Elektra)<br />

^[AGarth Brooks: ^[BThe Chase ^[A(Liberty)<br />

^[ARed Hot Chill Peppers: ^[BWhat Hits!? ^[A(EMI)<br />

For red-ribbon, put ESC A (^[A in binary notation) at the point you would start to print<br />

in normal CGTimes, and put ESC B (^[B in binary notation) at the point to end using the<br />

font.<br />

Figure 7. 8. Diablo Font Printout<br />

7-13


Chapter 7 Emulation<br />

7-14<br />

Diablo 630 Control Codes<br />

Table 7.9. Diablo 630 Control Codes (Sheet 1 of 2)<br />

Command Function Code (hex) Supported<br />

NUL Buffer code 00 Yes<br />

ETX End of text 03 Yes<br />

ACK Acknowledge 06 Yes<br />

BEL Sound bell 07 –<br />

BS Backspace 08 Yes<br />

HT Horizontal tab 09 Yes<br />

LF Line feed 0A Yes<br />

VT Vertical tab 0B Yes<br />

FF Form feed 0C Yes<br />

CR Carriage return 0D Yes<br />

SO Supplementary extended character set 0E –<br />

SI Primary extended character set 0F –<br />

DC1 XON 11 Yes<br />

DC2 Enter printwheel table download mode 12 –<br />

DC3 XOFF 13 Yes<br />

DC4 Exit printwheel table download mode 14 –<br />

NAK Printer error condition 15 Yes<br />

EM Access supplementary character set 19 –<br />

DEL Same as NUL 7F Yes<br />

ESC BS Backspace 1/120 inch 1B 08 Yes<br />

ESC HT n Absolute horizontal tab to column n 1B 09 n Yes<br />

ESC LF Reverse line feed 1B 0A Yes<br />

ESC VT n Absolute vertical tab to line n 1B 0B n Yes<br />

ESC FF n Set n lines per page 1B 0C n Yes<br />

ESC CR P Remote reset 1B 0D 50 Yes<br />

ESC SO DC2 Enter printwheel table download mode 1B 0E 12 –<br />

ESC SO M Enter program mode 1B 0E 4D –<br />

ESC DC1 n Set offset to n 1B 11 n Yes<br />

ESC SYN n Select printwheel type 1B 16 n –<br />

ESC EM 1 Upper cassette (for sheet 1) 1B 19 31 Yes<br />

ESC EM 2 Lower cassette (for sheet 2) 1B 19 32 Yes<br />

ESC EM E Manual paper feed (for envelope) 1B 19 45 Yes<br />

ESC EM R Eject page 1B 19 52 Yes<br />

ESC SUB SO Memory test 1B 1A 0E –<br />

ESC SUB 1 Request status byte 1 1B 1A 31 –<br />

ESC SUB 3 Request status byte 3 1B 1A 33 –<br />

ESC SUB I Initialize printer 1B 1A 49 Yes<br />

ESC SUB R Remote error reset 1B 1A 52 –<br />

ESC GS A Disable NAK error response from printer 1B 1D 41 –<br />

ESC GS B Reenable NAK error response from printer 1B 1D 42 –<br />

ESC RS n Set (n-1)/48-inch line spacing 1B 1E n Yes<br />

ESC US n Set (n-1)/120-inch character spacing 1B 1F n Yes<br />

ESC % Increase carriage setting time 1B 25 –<br />

ESC & Bold and shadow printing OFF 1B 26 Yes<br />

ESC , Set plot precision 1B 2C –<br />

ESC - Set vertical tab at current position 1B 2D Yes<br />

ESC . n Change plot character 1B 2E n –<br />

ESC / Auto backward printing ON 1B 2F –<br />

ESC \ Auto backward printing OFF 1B 5C –<br />

ESC 0 Set right margin at current position 1B 30 Yes<br />

ESC 1 Set horizontal tab at current position 1B 31 Yes<br />

ESC 2 Clear all vertical and horizontal tabs 1B 32 Yes


Table 7.9. Diablo 630 Control Codes (Sheet 2 of 2)<br />

Diablo 630 Emulation (Mode 2)<br />

Command Function Code (hex) Supported<br />

ESC 3 Graphics mode ON 1B 33 Yes<br />

ESC 4 Graphics mode OFF 1B 34 Yes<br />

ESC 5 Forward printing mode 1B 35 Yes<br />

ESC 6 Backward printing mode 1B 36 Yes<br />

ESC 7 Print suppression 1B 37 –<br />

ESC 8 Clear horizontal tab at current position 1B 38 Yes<br />

ESC 9 Set left margin at current position 1B 39 Yes<br />

ESC < Reverse printing mode ON 1B 3C –<br />

ESC > Reverse printing mode OFF 1B 3E –<br />

ESC = Auto-center 1B 3D –<br />

ESC ? Auto carriage return ON 1B 3F Yes<br />

ESC ! Auto carriage return OFF 1B 21 Yes<br />

ESC A Alternate font 1 (for red ribbon) 1B 41 Yes<br />

ESC B Alternate font 0 (for black ribbon) 1B 42 Yes<br />

ESC C Clear top and bottom margins 1B 43 Yes<br />

ESC D Reverse half linefeed 1B 44 Yes<br />

ESC E Underline ON 1B 45 Yes<br />

ESC G Hyplot ON–absolute move 1B 47 –<br />

ESC G BEL Hyplot ON–absolute plot 1B 47 07 –<br />

ESC L Set bottom margin at current position 1B 4C Yes<br />

ESC M Auto-justify 1B 4D –<br />

ESC N Restore normal carriage settling time 1B 4E –<br />

ESC O Bold printing ON 1B 4F Yes<br />

ESC P Proportional spacing ON 1B 50 Yes<br />

ESC Q Proportional spacing OFF 1B 51 Yes<br />

ESC R Underline OFF 1B 52 Yes<br />

ESC S Reset character spacing 1B 53 Yes<br />

ESC T Set top margin at current position 1B 54 Yes<br />

ESC U Half linefeed 1B 55 Yes<br />

ESC V Hyplot ON–relative move 1B 56 –<br />

ESC V BEL Hyplot–relative plot 1B 56 07 –<br />

ESC W Shadow printing ON 1B 57 Yes<br />

ESC X Bold, shadow, and underline OFF 1B 58 Yes<br />

ESC Y Printwheel spoke-0 character 1B 59 –<br />

ESC Z Printwheel spoke-95 character 1B 5A –<br />

7-15


Chapter 7 Emulation<br />

Diablo France (61)<br />

Diablo 630 Symbol Sets<br />

7-16<br />

DIABLO US (29)


Diablo Germany (93) Diablo U. K. (125)<br />

Diablo 630 Emulation (Mode 2)<br />

7-17


Chapter 7 Emulation<br />

Diablo Denmark (157) Diablo Sweden (189)<br />

7-18


Diablo Italy (221) Diablo Spain (253)<br />

Diablo 630 Emulation (Mode 2)<br />

7-19


Chapter 7 Emulation<br />

Diablo Japan (285)<br />

7-20


Epson LQ-850 Emulation (Mode 5)<br />

Epson LQ-850 Emulation (Mode 5)<br />

To set printing system to power up in the LQ-850 emulation with the LQ German symbol<br />

set, command:<br />

!R! FRPO P1, 5; FRPO P3, 2; FRPO U6, 2; EXIT;<br />

The Epson LQ-850 emulation uses 13 symbol sets that include both plain and italic characters.<br />

The desired symbol set can be selected with the U6 parameter of the FRPO command<br />

or changed temporarily with the INTL command or from the operator panel keys.<br />

The Epson LQ-850 supports the following Epson symbol sets. Tables of the basic symbols<br />

are given at the end of this section.<br />

The factory setting for the symbol set at power-up is IBM PC-8 for all emulation modes.<br />

Table 7.10. Epson LQ-850 Emulation Symbol Sets<br />

Symbol set Message display FRPO commands<br />

U.S.A. LQ US FRPO U6, 0; FRPO U7, 0;<br />

France LQ France FRPO U6, 1; FRPO U7, 0;<br />

Germany LQ Germany FRPO U6, 2; FRPO U7, 0;<br />

U.K. LQ U.K. FRPO U6, 3; FRPO U7, 0;<br />

Denmark 1 LQ Denmark FRPO U6, 4; FRPO U7, 0;<br />

Sweden LQ Sweden FRPO U6, 5; FRPO U7, 0;<br />

Italy LQ Italy FRPO U6, 6; FRPO U7, 0;<br />

Spain 1 LQ Spain FRPO U6, 7; FRPO U7, 0;<br />

Japan LQ Japan FRPO U6, 8; FRPO U7, 0;<br />

Norway LQ Norway FRPO U6, 14; FRPO U7, 0;<br />

Denmark II LQ Denmark2 FRPO U6, 15; FRPO U7, 0;<br />

Spain II LQ Spain2 FRPO U6, 16; FRPO U7, 0;<br />

Latin America Latin America FRPO U6, 17; FRPO U7, 0;<br />

The printing system supports the Epson graphics character sets (code page tables) of PC<br />

437 (Epson Extended Graphics), PC 850 (Multilingual), PC 860 (Portugal), PC 863<br />

(Canada-French), and PC 865 (Norway). These sets are available only through the use of<br />

Epson control codes. Another Epson control code also provides the US Legal character<br />

set. The Korean character set is not supported.<br />

When power is first switched on or after a reset, the printing system always defaults in<br />

the Courier font (10 cpi). This default font emulates LQ-850’s Draft, 10 cpi and cannot<br />

be changed for the LQ-850 emulation.<br />

The printing system also emulates the other four LQ-850 fonts (five in all). These fonts<br />

can be selected by embedded commands in the word processing software or using an<br />

Epson LQ-850 printer driver. Double-wide and double-high effects are available for all<br />

five fonts.<br />

7-21


Chapter 7 Emulation<br />

7-22<br />

Figure 7. 11. Epson LQ-850 Font Printout<br />

The five LQ-850 fonts actually use the printing system’s resident fonts. The font mode in<br />

the Epson emulation is 0. (The printing system does not automatically adjust character<br />

spacing.) If you do not need exact character spacing, you can improve the appearance of<br />

these fonts by changing to font mode 13. The printing system generates double-wide and<br />

double-high effects for these emulating fonts.<br />

To use other printing system fonts, select them with font commands (FONT, SFNT, and<br />

FSET). Since the printing system emulates certain LQ-850 fonts in different spacings by<br />

using the same resident font, it should be noted that substituting one font will also<br />

change the other fonts emulated by that font. For example, if you change the Draft 15 cpi<br />

font which is emulated by the PrestigeEliteBM7.2-Roman font, this will also affect the<br />

other 15 cpi LQ-850 fonts using the same ALTF 7; setting.<br />

Table 7.12. Epson LQ-850 Fonts (Sheet 1 of 2)<br />

Font name Character spacing ALTF No.<br />

Draft/Epson Courier 10 cpi, Proportional 0<br />

12 cpi 1<br />

15 cpi 7<br />

Condensed 10 cpi 8<br />

Condensed 12 cpi, Condensed proportional 9<br />

Epson Roman 10 cpi, proportional 2<br />

12 cpi 3<br />

15 cpi 7<br />

Condensed 10 cpi 8<br />

Condensed 12 cpi, Condensed proportional 9<br />

Epson Sans Serif 10 cpi, 12 cpi, proportional 4<br />

15 cpi 5<br />

Condensed 10 cpi 8<br />

Condensed 12 cpi, Condensed proportional 9


Table 7.12. Epson LQ-850 Fonts (Sheet 2 of 2)<br />

Epson LQ-850 Emulation (Mode 5)<br />

Font name Character spacing ALTF No.<br />

Epson Prestige 10 cpi, 12 cpi, Proportional 6<br />

15 cpi 7<br />

Condensed 10 cpi 8<br />

Condensed 12 cpi, Condensed proportional 9<br />

You can alter these default SETF assignments to suit your own purposes. In the example<br />

below, four of the SETF assignments are changed to proportional fonts, and the font<br />

mode is changed to 15. The sample text is then printed by selecting pica for the title, elite<br />

for the first paragraph, compressed for the second paragraph, compressed elite for the<br />

third paragraph, and elite for the last paragraph.<br />

!R! SETF 0, 12; CMNT Draft 10cpi: Swiss721BM12-Bold;<br />

SETF 1, 2; CMNT Draft 12cpi: Dutch801BM10-Roman;<br />

SETF 7, 13; CMNT Draft 15cpi: Swiss721BM8-Roman;<br />

SETF 8, 14; CMNT Condensed 10cpi: Swiss721BM6-Roman;<br />

EXIT;<br />

To select a scalable font for the SETF assignments, first assign a font number to the scalable<br />

font by sending the command SFNT commands to the printing system as shown<br />

below. The font number assigned should not duplicate a number already in use.<br />

!R! SFNT ’Swiss742SWC-Bold’, 12, 3000, 277, 1, 0;<br />

SFNT ’Dutch801SWC-Roman’, 10, 3001, 277, 1, 0;<br />

SFNT ’Swiss742SWC-Roman’, 8, 3002, 277, 1, 0;<br />

SFNT ’Swiss742SWC-Roman’, 6, 3003, 277, 1, 0;<br />

EXIT;<br />

All option parameters for SFNT (including symbol-set, compression, and angle) are<br />

required for assigning font numbers to a scalable font when altering the SETF assignments<br />

for the Epson emulation.<br />

Landscape printing is possible in the LQ-850 mode. If you send the command<br />

!R! SPOL; EXIT; the printing system rotates fonts and prints them in landscape orientation.<br />

In portrait orientation, the printing system supports Epson bit-image graphics, so with<br />

graphics software for the LQ-850 printer, you can use it to print charts, graphs, and pictures.<br />

The 9-bit graphics mode is also supported.<br />

If you attempt to print beyond the right margin, the characters wrap around and are<br />

printed on the next line.<br />

7-23


Chapter 7 Emulation<br />

7-24<br />

EPSON LQ-850 Control Codes<br />

Table 7.13. Epson LQ-850 Control Codes<br />

Command Function Code (hex) Supported<br />

Printer Operation<br />

ESC @ Initialize Printer 1B 40 Yes<br />

DC 1 Select Printer 11 –<br />

DC 3 Deselect Printer 13 –<br />

DEL Delete Character 7F –<br />

ESC < Select Unidirectional Mode (one line) 1B 3C Yes<br />

ESC U n<br />

MSB Control<br />

Turn Unidirectional Mode On/Off 1B 55 –<br />

ESC EM n Control Cut Sheet Feeder 1B 19 –<br />

ESC = Set MSB to 0 1B 3D Yes<br />

ESC > Set MSB to 1 1B 3E Yes<br />

ESC #<br />

Data Control<br />

Cancel MSB Control 1B 35 Yes<br />

BEL Beeper 07 –<br />

CR Carriage Return 0D Yes<br />

CAN<br />

Vertical Motion<br />

Cancel Line 18 –<br />

FF Form feed 0C Yes<br />

ESC C n Set Page Length in Lines 1B 43 Yes<br />

ESC C null n Set Page Length in Inches 1B 43 00 Yes<br />

ESC N n Set Skip Over Perforation 1B 4E Yes<br />

ESC O Cancel Skip Over Perforation 1B 4F Yes<br />

LF Line Feed 0A Yes<br />

ESC + n Set n/360-inch Line Spacing 1B 2B Yes<br />

ESC 0 Select 1/8-inch Line Spacing 1B 30 Yes<br />

ESC 2 Select 1/6-inch Line Spacing 1B 32 Yes<br />

ESC 3 n Set n/180-inch Line Spacing 1B 33 Yes<br />

ESC A n Set n/60-inch Line Spacing 1B 41 Yes<br />

ESC J n Perform n/180-inch Line Feed 1B 4A Yes<br />

VT Tab Vertically 0B Yes<br />

ESC B n1 n2...n16 null Set Vertical Tabs 1B 42 Yes<br />

ESC b n1 n2...n16 null Set Vertical Tabs in Channels 1B 62 Yes<br />

ESC / n<br />

Horizontal Motion<br />

Select Vertical Tab Channel 1B 2F Yes<br />

ESC l n Set Left Margin 1B 6C Yes<br />

ESC Q n Set Right Margin 1B 51 Yes<br />

BS Backspace 08 Yes<br />

ESC $ n1 n2 Set Absolute Print Position 1B 24 Yes<br />

ESC \ n1 n2 Set Relative Print Position 1B 5C Yes<br />

HT Tab Horizontally 09 Yes<br />

ESC D n1 n2...n32 null<br />

Overall Printing Style<br />

Set Horizontal Tabs 1B 44 Yes<br />

ESC l n Set Left Margin 1B 6C Yes<br />

ESC Q n Set Right Margin 1B 51 Yes<br />

BS Backspace 08 Yes<br />

ESC $ n1 n2 Set Absolute Print Position 1B 24 Yes<br />

ESC \ n1 n2 Set Relative Print Position 1B 5C Yes<br />

HT Tab Horizontally 09 Yes<br />

ESC D n1 n2...n32 null Set Horizontal Tabs 1B 44 Yes<br />

Print Size and Character Width<br />

ESC P Select 10 CPI 1B 50 Yes


Table 7.13. Epson LQ-850 Control Codes<br />

Epson LQ-850 Emulation (Mode 5)<br />

Command Function Code (hex) Supported<br />

ESC M Select 12 CPI 1B 4D Yes<br />

ESC g Select 15 CPI 1B 67 Yes<br />

ESC p n Turn Proportional Mode On/Off 1B 70 Yes<br />

SI Select Condensed Mode 0F Yes<br />

ESC SI Select Condensed Mode 1B 0F Yes<br />

DC2 Cancel Condensed Mode 12 Yes<br />

SO Select Double-wide Mode (one line) 0E Yes<br />

ESC SO Select Double-wide Mode (one line) 1B 0E Yes<br />

ESC W n Turn Double-wide Mode On/Off 1B 57 Yes<br />

DC4 Cancel Double-wide Mode (one line) 14 Yes<br />

ESC w n Turn Double-high Mode On/Off 1B 77 Yes<br />

Print Enhancement<br />

ESC E Select Emphasized Mode 1B 45 Yes<br />

ESC F Cancel Emphasized Mode 1B 46 Yes<br />

ESC G Select Double-strike Mode 1B 47 Yes<br />

ESC H Cancel Double-strike Mode 1B 48 Yes<br />

ESC S n Select Superscript or Subscript 1B 53 Yes<br />

ESC T Cancel Superscript/Subscript Mode 1B 54 Yes<br />

ESC (- n1 n2 m d1 d2 Select Score 1B 28 2D Yes<br />

ESC - n Turn Underline Mode On/Off 1B 2D Yes<br />

ESC q<br />

Word Processing<br />

Select Character Style 1B 67 Yes<br />

ESC a n Select Justification 1B 61 –<br />

ESC SP n<br />

Character Tables<br />

Set Intercharacter Space 1B 20 Yes<br />

ESC t n Select Character Set 1B 74 Yes<br />

ESC 4 Select Italic Mode 1B 34 Yes<br />

ESC 5 Cancel Italic Mode 1B 35 Yes<br />

ESC R<br />

User-defined Characters<br />

Select an International Character Set 1B 52 Yes<br />

ESC & null d1 d2...dn Define User-defined Characters 1B 26 –<br />

ESC : null n null Copy ROM to RAM 1B 3A –<br />

ESC % n Select User-defined Set 1B 25 –<br />

ESC 6 Enable Printable Characters 1B 36 Yes<br />

ESC 7<br />

Graphics<br />

Enable Upper Control Codes 1B 37 Yes<br />

ESC K n1 n2 v1 v2...vn Select Single-density Graphics Mode 1B 4B Yes<br />

ESC L n1 n2 v1 v2...vn Select Double-density Graphics Mode 1B 4C Yes<br />

ESC Y n1 n2 v1 v2...vn Select High-speed Double-density Graphics Mode 1B 59 Yes<br />

ESC Z n1 n2 v1 v2...vn Select Quadruple-density Graphics Mode 1B 5A Yes<br />

ESC * m n1 n2 v1 v2...vn Select Graphics Mode 1B 2A Yes<br />

ESC ? m n Reassign Graphics Mode 1B 3F Yes<br />

7-25


Chapter 7 Emulation<br />

LQ France (60)<br />

LQ-850 Symbol Sets<br />

7-26<br />

LQ US (28)


LQ Germany (92) LQ U.K. (124)<br />

Epson LQ-850 Emulation (Mode 5)<br />

7-27


Chapter 7 Emulation<br />

LQ Italy (220) LQ Spain (252)<br />

7-28


Chapter 7 Emulation<br />

LQ Japan (284) LQ Norway (316)<br />

7-29


Chapter 7 Emulation<br />

LQ Denmark 2 (348) LQ Spain 2 (380)<br />

7-30


Latin America (412) LQ Denmark (156)<br />

Epson LQ-850 Emulation (Mode 5)<br />

7-31


Chapter 7 Emulation<br />

LQ Sweden (188)<br />

7-32


HP LaserJet Emulation (Mode 6)<br />

HP LaserJet Emulation (Mode 6)<br />

On shipment from the factory, the printing system is set to power up in the HP LaserJet<br />

(PCL 6) emulation. The Kyocera printing systems support to emulate the following HP<br />

printer language as tabled below:<br />

Table 7.14. HP LaserJet Emulation by Model<br />

No. Model Printer Language Resolution (dpi) Fonts<br />

1 FS-1000 PCL6, KPDL (Optional) 600, 300 AGFA80 Fonts<br />

2 FS-1000+ PCL6, KPDL (Optional) 600, 300 AGFA80 Fonts<br />

3 FS-1010 PCL 6, KPDL Fast 1200, 600, 300 AGFA80 Fonts<br />

4 FS-1050 PCL 6, KPDL Fast 1200, 600, 300 AGFA80 Fonts<br />

5 FS-1200 PCL 6, KPDL 600, 300 AGFA80 Fonts<br />

6 FS-1714M PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

7 FS-1750 PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

8 FS-1800 PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

9 FS-1800+ PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

10 FS-1900 PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

11 FS-3718M PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

12 FS-3750 PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

13 FS-3800 PCL 6, KPDL Fine 1200, Fast 1200, 600, 300 AGFA80 Fonts<br />

14 FS-5900C PCL 5C, KPDL 1200 (KPDL), 600 Bitstream45<br />

15 FS-6900 PCL 6, KPDL 600, 300 Bitstream45<br />

16 FS-8000C PCL 5C, KPDL 3 600 (bi-level), 600 (Contone) AGFA161<br />

17 FS-9100DN PCL 6C, KPDL 3 Fast 1200, 600, 300 AGFA161<br />

18 FS-9500DN PCL 6C, KPDL 3 Fast 1200, 600, 300 AGFA161<br />

19 KM-C830 PCL 5C, KPDL 3 600 (bi-level), 600 (Contone) AGFA161<br />

20 KM-1510 PCL 6, KPDL 600, 300 AGFA80 Fonts<br />

21 KM-1530 PCL 6, KPDL 600, 300 AGFA80 Fonts<br />

22 KM-1810 PCL 6, KPDL 600, 300 AGFA80 Fonts<br />

23 KM-2030 PCL 6, KPDL 600, 300 AGFA80 Fonts<br />

24 KM-2530 PCL 6C, KPDL 3 Fast 1200, 600, 300 AGFA161<br />

25 KM-3530 PCL 6C, KPDL 3 Fast 1200, 600, 300 AGFA161<br />

26 KM-4230 PCL 6, KPDL 600 AGFA80 Fonts<br />

27 KM-5230 PCL 6, KPDL 600 AGFA80 Fonts<br />

28 KM-6230 PCL 6, KPDL 600 AGFA80 Fonts<br />

The factory default symbol set is PC-8. To change this default symbol set, use the FRPO<br />

command with the U6 and U7 parameters. The default font is Courier.<br />

To set the printing system to power up in LaserJet mode, send the following PRE-<br />

SCRIBE command:<br />

!R! FRPO P1, 6; FRPO P3, 1; EXIT;<br />

To use the TimesNewRoman font of 14.25 points as the default font, add the following<br />

lines:<br />

FRPO V3, ’TimesNewRoman’;<br />

FRPO V1, 14;<br />

FRPO V2, 25;<br />

See Chapter 6 for details of the FRPO V parameters.<br />

The symbol set can be changed after power-up with the CSET or INTL command, or<br />

from the operator panel keys, or with LaserJet symbol sets typically accessed through<br />

software.<br />

7-33


Chapter 7 Emulation<br />

7-34<br />

The printing system also supports as many HP symbol sets as the LaserJet regularly supports<br />

and still other symbol sets can be provided in downloaded fonts. (A full list of the<br />

supported symbol sets appear in section LaserJet Symbol Sets on page 37.) These symbol<br />

sets can be used by appropriate font selection commands as explained below.<br />

Fonts can be selected with PRESCRIBE commands, or through the printer driver provided<br />

with your software. The following font sample was created through driver support.<br />

Figure 7. 15. HP LaserJet Word-Processing Printout<br />

Additional soft fonts can be downloaded from external sources before printing begins.<br />

The printing system selects the fonts by a set of command codes (escape sequences) that<br />

describe the font attributes: character height, orientation, weight, character set, etc. (similar<br />

to the parameters used with the FSET command of PRESCRIBE). The printing system’s<br />

resident fonts include the HP resident fonts and many of the fonts from the HP font<br />

cartridges.<br />

The printing system supports the same soft fonts as the HP LaserJet printers. In addition,<br />

the printing system understands the LaserJet command codes and can use them to select<br />

any of its resident or downloaded fonts.<br />

Since the LaserJet font selection codes are fairly complex (Refer to LaserJet Font Selection<br />

section.), software that supports the Laser Jet usually provides a simplified set of<br />

font selection commands which the software translates into LaserJet command codes.<br />

Software-provided font selection commands will work for the printing system as they<br />

would for the HP LaserJet series printers. If a requested font is not present in the printing<br />

system’s memory, the page printing system will choose from the characteristics of the<br />

closest matching font.


LaserJet Fonts<br />

HP LaserJet Emulation (Mode 6)<br />

The LaserJet emulation supports 600/1200 dpi raster graphics for printing system models<br />

with the 300/600/1200 dpi resolution support. There is also support of delta row compression<br />

and compressed raster data for run length encoding and TIFF.<br />

The printing system supports the LaserJet vector graphics, which draw vertical or horizontal<br />

ruled lines and create rectangles filled with a pattern or gray scale.<br />

The margins in this emulation differ from the A parameters of the FRPO command. They<br />

recognize the page size of the default cassette. If you attempt to print beyond the right<br />

margin, the characters will be discarded.<br />

Cassette<br />

size<br />

Line per<br />

page<br />

Letter 60 80<br />

A4 64 77<br />

(Assuming 6 lines per inch and 10 characters per inch)<br />

The proportional spacing is not identical to the LaserJet’s proportional spacing. Rightmargin<br />

justification may not be correct when using the LaserJet printer driver (when a<br />

LaserJet driver is selected within the application software).<br />

The printing system emulates the LaserJet fonts as listed below.<br />

Table 7.16. LaserJet Fonts<br />

LaserJet Font Selection<br />

Font Selection<br />

Character per<br />

line<br />

No. HP LaserJet Font Kyocera Font Style Type Face Number<br />

1 Arial Arial Medium, Bold, Italic, BoldItalic 16602<br />

2 TimesNewRoman TimesNewRoman Medium, Bold, Italic, BoldItalic 16901<br />

3 Symbol Symbol Medium 16686<br />

4 Wingdings Wingdings Medium 31402<br />

5 CG Times CG Times Medium, Bold, Italic, BoldItalic 4101<br />

6 Univers Univers-Md Medium, Bold, Italic, BoldItalic 4148<br />

7 Univers Cond Univers-Cd Medium Condensed, Bold Condensed, Italic<br />

Condensed, BoldItalic Condensed<br />

4148<br />

8 Courier Courier Medium, Bold, Italic, BoldItalic 4099<br />

9 Letter Gothic Letter Gothic Medium, Bold, Italic 4102<br />

10 Albertus Albertus-Md Medium, ExtraBold 4362<br />

11 Antique Olive Antique Olive Medium, Bold, Italic 4168<br />

12 Clarendon Cond Clarendon-Cd BoldCondensed 4140<br />

13 Coronet Coronet Italic 4116<br />

14 Garamond Garamond Antiqua, Halbfett, Kursiv, KursivHalbfett 4197<br />

15 Marigold Marigold Medium 4297<br />

16 CG Omega CG Omega Medium, Bold, Italic, BoldItalic 4113<br />

Resolution does not effect the availability of scalable fonts. Bitmap fonts generated by<br />

LDFC present one limitation. If the printing system uses a 300-dpi resolution, LDFCgenerated<br />

600 dpi bitmap fonts may not be used. Whether these 600 dpi bitmaps are<br />

7-35


Chapter 7 Emulation<br />

7-36<br />

LDFC fonts or downloaded bitmap fonts by the user, they will constantly print unpredictably<br />

if the printing system uses the resolution of 300 dpi.<br />

Font Priority<br />

On the printing systems with the 600/1200 dpi resolution support, font selection in the<br />

HP LaserJet format adds an additional step to the font prioritization format. In font selection,<br />

the printing system evaluates the characteristics of the font and, by a process of<br />

matching features, reduces selection to a single font. The highest priority characteristic is<br />

symbol set, followed by spacing, pitch, point size, font style, stroke weight, and typeface.<br />

The LaserJet emulation (mode 6) adds resolution to this priority list. This additional priority<br />

is not available in the printing systems not supporting the 600/1200 dpi resolutions.<br />

For example, the printing system might face a font selection scenario of four near identical<br />

types of the Dutch801 font (by the KPDL emulation):<br />

• CGTimes (LaserJet compatible Intelli font)<br />

• Times (PostScript compatible font)<br />

• TimesNewRoman (LaserJet compatible TrueType font)<br />

These fonts have several common attributes and there is a possibility that selecting a<br />

Times may insert the TimesNewRoman font instead as a result of the internal font evaluation<br />

procedure. It is therefore important to understand how fonts are selected by the<br />

printing system. (See Chapter 4 for a discussion of the printing system’s internal font<br />

evaluation.)<br />

The final (lowest) priority for font priority is the font source. The source refers to the<br />

place where the font is accessed. The following table shows how this characteristic is<br />

ordered.<br />

Ordering<br />

priority<br />

Source Priority within same<br />

source<br />

1 Downloaded and LDFC-generated fonts Smaller font ID<br />

2 Memory card fonts Top slot > bottom slot<br />

3 Resident and optional fonts Alphabetic order<br />

Users should note two differences in the source priority of font selection. Ordering priority<br />

1 uses the original HP method whereby the internal number assigned to a font would<br />

be evaluated and the lowest number given the higher priority. This method applies to<br />

fonts downloaded to the printing system and, any LDFC-generated fonts. Ordering priority<br />

3 evaluates the font in alphabetic order. This method applies to the resident fonts and<br />

the KPDL fonts.<br />

An FRPO command (FRPO C8;) can modify this evaluation method by turning off evaluation<br />

of either the resident or scalable fonts, or KPDL fonts or both. The resident scalable<br />

fonts are not affected by this FRPO command. These fonts were designed by Agfa<br />

and observe the alphabetic ordering method used by Agfa.<br />

Regular and Dark Courier/Letter Gothic<br />

The stroke weight (bolding) of Courier and Letter Gothic is changeable between regular<br />

and dark. The default is regular and matches the Hewlett-Packard. It can be changed to<br />

dark which was the default stroke weight of Courier and Letter Gothic in order Kyocera<br />

printing systems by changing the FRPO V9 parameter.


LaserJet Font Escape Sequences<br />

HP LaserJet Emulation (Mode 6)<br />

The example below shows an HP font selection escape sequence that selects a LetterGothic<br />

font with fixed-pitch, 12-cpi, 12-point, upright-style, normal stroke weight.<br />

Characteristic Value (example) Escape Sequence<br />

Symbol set Roman-8 ESC(8U<br />

Spacing Fixed ESC(s0P<br />

Pitch 12-cpi ESC(s12H<br />

Height 12-point ESC(s12V<br />

Style Upright ESC(s0S<br />

Stroke weight Normal ESC(s0B<br />

Typeface Letter Gothic ESC(s4102T<br />

To select this LetterGothic font, send the following escape sequence to the printing system:<br />

ESC(8U ESC(s0P ESC(s12H ESC(s12V ESC(s0S ESC(s0B ESC(s4102T<br />

Any escape sequence with two similar consecutive letters after the ESC parameter can be<br />

combined as in the transformation of the LetterGothic font below:<br />

ESC(8U ESC(s0p12h12v0s0b4102T<br />

The FSET command of PRESCRIBE utilizes a similar font selection method. (The symbol<br />

set selection is made with the CSET command.) Note the similarities in the FSET<br />

command sequence below:<br />

FSET 0p12h12v0s0b4102T;<br />

Several other LaserJet codes should be considered for font management. See the Font<br />

Management section of the HP LaseJetPrinter commands on page 56 and onwards.<br />

LaserJet Symbol Sets<br />

Symbol set has the highest priority in the HP font selection. The factory default symbol<br />

set is IBM PC-8 (10U) for the LaserJet emulation. The LaserJet printer has many other<br />

symbol sets not directly accessed by the INTL command. Temporary selection of one of<br />

these symbol sets can be made with the CSET (Change symbol SET) command or from<br />

the operator panel keys. You can also assign one of these symbol sets to a particular font<br />

using the FSET (change current Font SETting) command. More information on these<br />

commands appear in Chapter 4.<br />

By giving a particular value for the FRPO U6 and U7 parameters, you can set one of the<br />

HP symbol sets as the power-up symbol set. In general, symbol set value is:<br />

(Escape sequence value field value × 32 + (Decimal value of escape sequence termination<br />

character – 64) [=(U7 – 50) × 100 + U6])<br />

Symbol Sets for Bitmap Fonts<br />

The printing system substitutes with a scalable font when a bitmap font is required for<br />

downward compatibility. The following symbol sets are supported when substituted bitmap<br />

fonts are in use. To power up the printing system in one of these symbol set, use the<br />

following FRPO U6 and U7 values.<br />

7-37


Chapter 7 Emulation<br />

7-38<br />

Table 7.17. Symbol Sets for Bitmap Fonts<br />

Symbol Set HP Symbol Set ID (Value) FRPO U6 Value FRPO U7 Value<br />

ISO 60 Norway 0D (4) 4 50<br />

HP Extension 0E (5) 5<br />

ISO 25 France 0F (6) 6<br />

HP German 0G (7) 7<br />

ISO 15 Italian 0I (9) 9<br />

ISO 14 Japan 0K (11) 11<br />

ECMA-94 Latin 1 0N (14) 14<br />

ISO 11 Sweden 0S (19) 19<br />

ISO 6 ASCII 0U (21) 21<br />

ISO 61 Norway 1D (36) 36<br />

ISO 4 U.K. 1E (37) 37<br />

ISO 69 France 1F (38) 38<br />

ISO 21 Germany 1G (39) 39<br />

HP Spanish 1S (51) 51<br />

US Legal 1U (53) 53<br />

ISO 57 China 2K (75) 75<br />

ISO 17 Spain 2S (83) 83 50<br />

ISO 2 IRV 2U (85) 85 50<br />

ISO 10 Sweden 3S (115) 15 51<br />

ISO 16 Portugal 4S (147) 47 51<br />

Roman-9 4U (179) 79 51<br />

ISO 84 Portugal 5S (179) 79 51<br />

ISO 85 Spain 6S (211) 11 52<br />

PC Set 1 8Q (273) 73 52<br />

HP Roman-8 8U (277) 77 52<br />

PC Extension 9Q (305) 5 53<br />

IBM PC-8 10U (341) 41 53<br />

IBM PC-8 (D/N) 11U (373) 73 53<br />

IBM PC-850 12U (405) 5 54<br />

PC-858 13U (437) 37 54<br />

Symbol Sets for Scalable Fonts<br />

The following table lists symbol set support for resident scalable fonts. To power up the<br />

printing system in one of these symbol set, use the following FRPO U6 and U7 values.<br />

.<br />

Table 7.18. Symbol Sets for Scalable Fonts (Sheet 1 of 2)<br />

Symbol Set HP Symbol Set ID (Value) FRPO U6 Value FRPO U7 Value<br />

ISO 60 Norway 0D (4) 4 50<br />

ISO 15 Italian 0I (9) 9<br />

ECMA-94 Latin 1 0N (14) 14<br />

ISO 11 Sweden 0S (19) 19<br />

ISO 6 ASCII 0U (21) 21<br />

ISO 4 U. K. 1E (37) 37<br />

ISO 69 France 1F (38) 38<br />

ISO 21 Germany 1G (39) 39<br />

US Legal 1U (53) 53<br />

ISO Latin 2 2N (78) 78<br />

ISO 17 Spain 2S (83) 83


Table 7.18. Symbol Sets for Scalable Fonts (Sheet 2 of 2)<br />

Symbol Set HP Symbol Set ID (Value) FRPO U6 Value FRPO U7 Value<br />

PC Cyrillic 3R (114) 14 51<br />

PS math 5M (173) 73<br />

ISO Latin 5 5N (174) 74<br />

Windows Latin 5 5T (180) 80<br />

MS Publishing 6J (202) 2 52<br />

ISO Latin 6 6N (206) 6<br />

Desktop 7J (234) 34<br />

Greek-8 8G (263) 63<br />

Math-8 8M (269) 69<br />

Turkish-8 8T (276) 76<br />

HP Roman-8 8U (277) 77<br />

Windows Latin 2 9E (293) 93<br />

Windows Greek 9G (295) 95<br />

PC-1004 9J (298) 98<br />

ISO Latin 9 9N (302) 2 53<br />

Win Cyrillic 9R (306) 6<br />

PC Turkish 9T (308) 8<br />

Windows 9U(309) 9<br />

PC-851 Greek 10G (327) 27<br />

PS text 10J (330) 30<br />

ISO Cyrillic 10N (334) 34<br />

PC-855 Serbia 10R (338) 38<br />

IBM PC-8 10U (341) 41<br />

PC-869 Greek 11G (359) 59<br />

IBM PC-8 D/N 11U (373) 73<br />

PC-8 Greek 12G (391) 91<br />

Macintosh 12J (394) 94<br />

ISO Greek 12N (398) 98<br />

USSR-GOST 12R (402) 2 54<br />

IBM PC-850 12U (405) 5<br />

ABICOMP Brazil 13P (432) 32<br />

PC-8 Bulgarian 13R (434) 34<br />

PC-8 Greek/ 437G 14G (455) 55<br />

ABICOMP Int. 14P (464) 64<br />

PC Ukrainian 14R (466) 66<br />

Pi Font 15U (501) 1 55<br />

PC-857 Turkish 16U (533) 33<br />

PC-852 Latin 2 17U (565) 65<br />

ISO-10646 18N (590) 90<br />

PC-853 Turkish 18U (597) 97<br />

WinBalt 19L (620) 20 56<br />

Windows Latin 1 19U (629) 29<br />

PC-860 Portugal 20U (661) 61<br />

PC-861 Iceland 21U (693) 93<br />

PC-863 Canada 23U (757) 57 57<br />

PC-8 Polish 24Q (785) 85<br />

PC-865 Norway 25U (821) 21 58<br />

PC-775 26U (853) 53<br />

PC-8 PC Nova 27Q (881) 81<br />

Example:<br />

To power up in the TimesNewRoman font for the Windows symbol set:<br />

HP LaserJet Emulation (Mode 6)<br />

7-39


Chapter 7 Emulation<br />

7-40<br />

!R! FRPO V3, ’TimesNewRoman’;<br />

FRPO U6, 9; FRPO U7, 53;<br />

STAT;<br />

EXIT;<br />

The STAT command in the third line prints a status page that enables the user to confirm<br />

changes made with the preceding sequences. The power-up font and symbol set are<br />

shown in the Interfaces section.<br />

Resource Protection<br />

The resource protection feature is Kyocera’s implementation of the HP’s resource saving.<br />

The feature preserves resources during emulation switching. The protected<br />

resources, user-defined symbol sets and patterns, fonts, and macros, remain intact when<br />

the user switches to and from the HP LaserJet emulation.<br />

A permanent default can be set for resource protection using the following FRPO command:<br />

!R! FRPO N9, 1; EXIT; or !R! FRPO N9, 2; EXIT;<br />

The MENU key on the printing system’s control panel may also be used to establish<br />

resource protection.<br />

The following table summarizes the features and functions of the resource protection<br />

mode in the HP LaserJet emulation.<br />

Table 7.19. Resource Protection and FRPO N9 Value<br />

Resource (Property) Emulation N9 = 0 N9 = 1 N9 = 2<br />

Soft fonts (Permanent)<br />

Soft fonts (Temporary)<br />

Macros (Permanent)<br />

Macros (Temporary)<br />

User patterns (Permanent)<br />

User patterns (Temporary)<br />

User symbol set (Permanent)<br />

User symbol set (Temporary)<br />

HPLJ<br />

HPLJ<br />

HPLJ<br />

HPLJ<br />

HPLJ<br />

HPLJ<br />

HPLJ<br />

HPLJ<br />

Deleted<br />

Deleted<br />

Deleted<br />

Deleted<br />

Deleted<br />

Deleted<br />

Deleted<br />

Deleted<br />

Retained<br />

Deleted<br />

Retained<br />

Deleted<br />

Retained<br />

Deleted<br />

Retained<br />

Deleted<br />

Retained<br />

Retained<br />

Retained<br />

Retained<br />

Retained<br />

Retained<br />

Retained<br />

Retained<br />

Print environment HPLJ Deleted Deleted Retained<br />

Permanent dictionary KPDL Retained Retained Retained<br />

A detailed description of the FRPO N9 command follows. Note that the factory default<br />

setting for the N9 command is 0.<br />

N9 = 0, resource protection is off. No resources will be protected during emulation<br />

switching, regardless of whether they are temporary<br />

or permanent. When the user returns to the mode 6<br />

emulation, the print environment will be reset. The<br />

print environment includes items such as number of<br />

copies, orientation, and margins.


N9 = 1, permanent PCL resources<br />

are protected.<br />

N9 = 2, permanent and temporary<br />

PCL resources are protected.<br />

HP LaserJet Emulation (Mode 6)<br />

Resource protection becomes operational under any of the following emulation switching<br />

conditions:<br />

• An SEM command is sent to the printing system.<br />

• The emulation is changed by the user from the operator panel keys.<br />

• An automatic emulation sensing (AES) function is used for switching between KPDL<br />

and PCL.<br />

• An HP LaserJet PJL command @PJL ENTER LANGUAGE = ?? is received.<br />

The KPDL permanent dictionary is always protected, regardless of the values for N9.<br />

The amount of memory saved under resource protection is limited by the user memory<br />

available. Resource protection requires extra memory for storing downloaded fonts and<br />

macros. This memory requirement extends beyond the standard memory that accompanies<br />

the printing system. The requirement varies based upon optional features installed in<br />

the printing system.<br />

Note that a print environment using resource protection but whose space has been limited<br />

by user memory items like macros, symbol sets and fonts, will render the resource<br />

protection feature non-operational.<br />

The property value (temporary or permanent) assigned to a resource must be given in the<br />

PCL command language. PRESCRIBE provides no commands for making a temporary<br />

or permanent designation. As a result, resource protection mode applies only to those<br />

resources generated with the HP PCL command language. A description of the memory<br />

requirements and property values for typical models appear in the following table.<br />

Minimum memory requirement for Resource Protection<br />

The printing system will store in memory all<br />

resources marked as permanent (soft fonts, macros,<br />

user patterns and symbol sets) and protect these<br />

resources during emulation switching. All resources<br />

marked as temporary (soft fonts, macros, user patterns,<br />

and symbol sets) will be lost during emulation<br />

switching. The print environment will be reset when<br />

it is returned to the mode 6 emulation.<br />

The printing system will store in memory all<br />

resources, both temporary and permanent, and protect<br />

them during emulation switching. Instead of<br />

resetting the mode 6 environment upon switching<br />

back, the printing system will restore the previous<br />

print environment. This option demands a large<br />

share of printing system memory.<br />

The following tables are memory requirements for typical printing system models. For<br />

information on memory requirement on other printing system models, refer to the operation<br />

manual supplied with the printing system.<br />

Table 7.20. Example: FS-1000 Series<br />

Printing Condition Resolution<br />

300 dpi 600 dpi<br />

HPLJ 4 2 Mbytes 2 Mbytes<br />

HPLJ 4, duplex mode=None, raster memory=A4/Letter 2 Mbytes 6 Mbytes<br />

HPLJ 4, duplex mode=None, raster memory=Legal 2 Mbytes 7 Mbytes<br />

HPLJ 4, duplex mode=on, raster memory=A4/Letter 3 Mbytes 10 Mbytes<br />

7-41


Chapter 7 Emulation<br />

7-42<br />

Switching the Print Resolution<br />

Note<br />

Table 7.20. Example: FS-1000 Series<br />

Printing Condition Resolution<br />

300 dpi 600 dpi<br />

HPLJ 4, duplex mode=on, raster memory=Legal 3 Mbytes 11 Mbytes<br />

HPLJ 4/KPDL, duplex mode=None, raster memory=A4/Letter 2 Mbytes 6 Mbytes<br />

HPLJ 4/KPDL, duplex mode=None, raster memory=Legal 2 Mbytes 7 Mbytes<br />

HPLJ 4/KPDL, duplex mode=on, raster memory=A4/Letter 3 Mbytes 10 Mbytes<br />

HPLJ 4/KPDL, duplex mode=on, raster memory=Legal 3 Mbytes 11 Mbytes<br />

HPLJ 4/KPDL, resource protection, duplex mode=None 10 Mbytes 10 Mbytes<br />

HPLJ 4/KPDL, resource protection, duplex mode=on 14 Mbytes 14 Mbytes<br />

Table 7.21. Example: FS-9500DN<br />

Printing Condition Resolution<br />

300 dpi 600 dpi 1200 dpi<br />

Fast mode Fine mode<br />

PCL 6, duplex mode=None 8 MB 8 MB 8 MB 8 MB<br />

PCL 6, duplex mode=On 8 MB 8 MB 8 MB 12 MB<br />

KPDL, duplex mode=None 8 MB 8 MB 8 MB 8 MB<br />

KPDL, duplex mode=On 8 MB 8 MB 12 MB 12 MB<br />

PCL 6/KPDL resource protection,<br />

duplex mode=None<br />

— 10 MB 10 MB 10 MB<br />

PCL 6/KPDL, resource protection,<br />

duplex mode=On<br />

— 14 MB 14 MB 14 MB<br />

Because the printing systems with the 1200 dpi resolution support print at 300, 600, 1200<br />

dpi, the printing system provides an FRPO command to establish a default at either level<br />

of resolution.<br />

For fine 1200 dpi resolution, command:<br />

!R! FRPO N8, 3; EXIT;<br />

For 600 dpi resolution, command:<br />

!R! FRPO N8, 1; EXIT;<br />

For 300 dpi resolution, command:<br />

!R! FRPO N8, 0; EXIT;<br />

When the printing resolution is changed between 1200 dpi, 600 dpi, and 300 dpi, the<br />

printing system loads the PJL current environment values.<br />

In addition to the FRPO N8 command as explained above, printing systems that permit<br />

the resolution to be set at either 300, 600, or 1200 are provided with the RESL (change<br />

RESoLution) command which switches the resolution on the fly. For details about this<br />

command, refer to PRESCRIBE Commands Command <strong>Reference</strong>.<br />

The amount of available printing system memory will determine whether the 600/1200 dpi<br />

default can be effective. If factors such as resource protection, duplexing, and raster memory<br />

reduce memory too low, then the printing system will remain at 300 dpi resolution.


HP LaserJet Reset State<br />

LaserJet PJL<br />

HP LaserJet Emulation (Mode 6)<br />

The printing system resets to the following states when it receives a PCL reset command.<br />

Shown in parentheses are the related FRPO parameters.<br />

Table 7.22. HP LaserJet Emulation Reset State<br />

Job control Number of copies 1<br />

Page control Cassette Upper (R4)<br />

Orientation Portrait (C1)<br />

Paper size Installed tray size (R2)<br />

VMI 6 lpi (U0/U1)<br />

HMI 10 cpi<br />

Top margin 50 dots<br />

Text length Paper size – (1/2-inch top + 1/2-inch bottom)<br />

Left margin Left logical<br />

Right margin Right logical<br />

Perforation skip On<br />

Line termination CR=CR, LF=LF, FF=FF<br />

Fonts Font Courier<br />

Symbol set IBM PC-8 (U6/U7)<br />

Underline mode Off<br />

Font management Font id 0<br />

Character code 0<br />

Raster graphics Raster graphics resolution 75<br />

Rectangular area fill Horizontal rectangle size 0<br />

Vertical rectangle size 0<br />

Area fill id 0<br />

Macro Macro id 0<br />

Troubleshooting command End of line wrap Off<br />

Display functions Off<br />

The HP LaserJet emulation loads a Printer Job Language (PJL) that controls communication<br />

between the printing system and the system. The PJL works for both KPDL and HP<br />

LaserJet emulations. It enables the user to change some default states but, more importantly,<br />

allows current printing system states to be communicated back to the host system.<br />

The Kyocera printing systems described in this manual support only a subset of the HP<br />

PJL commands. To check supported PJL features, see the table that follows.<br />

Table 7.23. Supported PJL Commands<br />

Command Group Command Description<br />

Kernel Commands Universal Exit<br />

Language (UEL)<br />

Job Separation<br />

Commands<br />

Exits current printer language and returns control to PJL. Reset<br />

the PJL parser to start at the beginning of the line.<br />

COMMENT Tells PJL to accept the command line as a comment.<br />

ENTER Chooses a printer language for processing the current job.<br />

JOB Informs printing system of the start of a print job, resets the<br />

page count, allows naming of the job, supports non-printing<br />

mode for printing portions of jobs.<br />

EOJ Instructs printing system that the print job is complete, resets<br />

the page count.<br />

7-43


Chapter 7 Emulation<br />

7-44<br />

Table 7.23. Supported PJL Commands<br />

Command Group Command Description<br />

Environment DEFAULT Sets default for environment variables.<br />

Commands<br />

SET Sets an environment variable to a specified value during a PJL<br />

job.<br />

INITIALIZE Resets current and default PJL variables to factory default.<br />

RESET Defaults current PJL variables.<br />

Status Readback INQUIRE Requires the current value for a specified environment<br />

Commands<br />

variable.<br />

DINQUIRE Requires the default value for a specified environment<br />

variable.<br />

ECHO Returns the portion of the command to the host<br />

computer.<br />

INFO Requests a specified category of printing system information,<br />

such as printing system model, available printing system<br />

memory, configuration, status, environment variables, and<br />

unsolicited status variables.<br />

USTATUS Allows printing system to send unsolicited status messages for<br />

device status changes, end-of-job status, and the number of<br />

pages printed. Status can be sent at specified time intervals.<br />

USTATUSOFF Deactivates all unsolicited status.<br />

Device Attendance RDYMSG Specifies a message that replaces the Processing message on<br />

Commands<br />

the message display. Shown in offline state if the printing<br />

system is processing data (except in mode selection).<br />

OPMSG Displays specified message on the message display and sets<br />

printing system offline.<br />

STMSG Displays specified message on the message display and sets<br />

printing system offline. If status readback is on, returns name<br />

of the key that is used to return the printing system online.<br />

PJL File System FSDELETE Deletes printing system mass storage files.<br />

Commands<br />

FSDOWNLOAD Downloads files to the printing system mass storage system.<br />

FSINIT Initializes the printing system mass storage file system.<br />

FSMKDIR Creates a directory on the printing system mass storage file<br />

system.<br />

PJL command syntax<br />

A PJL command line containing the ENTER command appears as follows:<br />

PJL prefix Option name Option value Required line feed<br />

@PJL ENTER LANGUAGE = personality []<br />

Enter this portion verbatim Optional carriage return<br />

PJL syntax also uses the following control codes and special identifiers.<br />

Horizontal tab character (ASCII 9)<br />

Line feed character (ASCII 10)<br />

Carriage return character (ASCII 13)<br />

Space character (ASCII 32)<br />

Escape character (ASCII 27)<br />

Form feed character (ASCII 12)<br />

White space, a result of one of more or .


The PJL command syntax should follow one of four formats:<br />

Format 1:<br />

%-12345X<br />

This format uses the Universal Exit Language (UEL) only.<br />

Format 2:<br />

HP LaserJet Emulation (Mode 6)<br />

Printable characters (ASCII characters 33 through 255) and , starting<br />

with a printable character.<br />

^D KPDL end-of-file indication. It is not part of PJL, but is used to end KPDL<br />

instructions.<br />

@PJL []<br />

This format may be used to add a visual line break among the PJL command lines.<br />

Format 3:<br />

@PJL command [] [] <br />

This format is currently used for the COMMENT and ECHO commands only. For examples:<br />

Format 4:<br />

@PJL COMMENT ... <br />

@PJL ECHO ... <br />

@PJL command [command modifier : value] [option name<br />

[=value]] [] <br />

This format is used comprehensively for all of the other PJL commands.<br />

@PJL DEFAULT LPARM : PCL PTSIZE=14.25<br />

Rules for PJL Command Syntax<br />

This section provides the rules that should be observed in using PJL commands:<br />

• The prefix @PJL always must be uppercase. Other parts of the PJL command are not<br />

case-sensitive.<br />

• Spacing between characters (white space) should either be the space character<br />

(ASCII 32) or the horizontal tab character (ASCII 9).<br />

The placement of white space in PJL commands depends on its location within the command.<br />

Some white space is mandatory and some is optional:<br />

• White space is required between the @PJL prefix and the PJL command name, and<br />

between the PJL command name and command modifiers. For example:<br />

@PJL OPMSG DISPLAY or<br />

@PJL ENTER LANGUAGE = personality<br />

• If white space does not appear in any other place in the command, white space is<br />

optional.<br />

• If white space appears between two portions of a PJL command, it is not allowed. An<br />

example of white space use appears between the optional carriage return and required<br />

line feed character that terminate most commands.<br />

7-45


Chapter 7 Emulation<br />

7-46<br />

PJL variables<br />

PJL uses alphanumeric variables, numeric variables, and strings. The following explains<br />

the three types of variables and their ranges.<br />

Alphanumeric variables<br />

Any combination of letters and digits, with the rule that the first character must always<br />

be a letter. Letters can consist of the uppercase letters (ASCII 65 through 90) and lowercase<br />

letters (ASCII 97 through 122). Digits can consist of numbers 0 through 9 (ASCII<br />

48 through 57).<br />

Example of valid alphanumeric variables:<br />

Alpha 635<br />

X2000<br />

Examples of invalid alphanumeric variables:<br />

635Alpha<br />

(Alphanumeric variables must begin with a letter)<br />

X 2000<br />

(Space characters [ASCII 32] are not allowed in alphanumeric variables)<br />

Numeric variables<br />

Any number consisting of digits, with one optional decimal point and an optional plus<br />

(+) or minus (–) sign preceding the first digit. Only one decimal point may be used. It<br />

must also be placed somewhere after the first digit. Digits are unnecessary after the decimal<br />

point.<br />

Examples of valid numeric variables:<br />

0.123456<br />

–123.456<br />

+657000<br />

2468.<br />

Examples of invalid numeric variables:<br />

.123456<br />

(The decimal point must be preceded by at least 1 digit).<br />

–123.45.6<br />

(Only 1 decimal point is allowed in a numeric variable).<br />

+657,000<br />

(Commas should not be used in numeric variables).<br />

Strings<br />

Strings should be enclosed in quotation marks, and consist of any combination of characters<br />

of ASCII codes from 32 through 255 including 9 (horizontal tab) but excluding 34<br />

(quotation marks). Examples are as follows.<br />

Examples of valid strings:<br />

"Model:FS-9500DN" — Tabs are allowed in a string.<br />

"The Arlington Ball Park"<br />

Examples of invalid strings:<br />

"It is 3.5" long." — A string should not contain quotation marks.<br />

"Telephone number01234-5678"<br />

— is out of the valid range of ASCII characters for a string.


Invalid Commands<br />

HP LaserJet Emulation (Mode 6)<br />

Invalid commands are in two general types: those with syntax errors and those with syntax<br />

or semantic warnings. The printing system handles each of those types different<br />

ways.<br />

Syntax errors contain errors such as unrecognized commands and command modifiers,<br />

strings with missing closing double quotations, numeric values with missing digits<br />

before the decimal points, and numeric values encountered when alphanumeric values<br />

are to be expected. The printing system ignores the entire PJL commands when it<br />

receives commands having syntax errors. Some examples follow.<br />

The JOB command’s NAME option requires double quotations around its value part.<br />

Valid command:<br />

@PJL JOB NAME = "Job Number 50" <br />

Invalid command:<br />

@PJL JOB NAME = "Job Number 51 <br />

The closing quotation is required.<br />

Syntax warnings and semantic warnings are issued for such commands that have unsupported<br />

options, values out of range, values missing or of the incorrect type, or values<br />

added when none are allowed. When the printing system receives commands with syntax<br />

or semantic warnings, the part of the command including the warning is ignored.<br />

In the following example, the START option is valid for the JOB command.<br />

Valid command:<br />

@PJL JOB START = 1 <br />

While in the following, FINISH is not a valid option and ignored (END should be used).<br />

Invalid command:<br />

PJL Reset Status<br />

@PJL JOB START = 1 FINISH = HOME <br />

The following table shows the PJL and equivalent FRPO commands that initialize the<br />

environments.<br />

Table 7.24. PJL Reset Status<br />

Environment PJL command FRPO parameter<br />

Printing resolution RESOLUTION —<br />

Raster memory<br />

(HP Page protection)<br />

PAGEPROTECT FRPO R5<br />

Personality PERSONALITY —<br />

KIR (HP RET) RET FRPO N0<br />

Interface timeout TIMEOUT FRPO N9<br />

Copy COPIES FRPO C0<br />

Paper size PAPER FRPO R2<br />

Orientation ORIENTATION FRPO C1<br />

Manual feed MANUAL FEED FRPO R4<br />

Paper source MANUAL FEED FRPO R4<br />

Output stack OUTBIN FRPO R0<br />

7-47


Chapter 7 Emulation<br />

7-48<br />

Table 7.24. PJL Reset Status<br />

Environment PJL command FRPO parameter<br />

Duplex DUPLEX FRPO N4<br />

Default font FONTNUMBER FRPO V3<br />

Point size PTSIZE FRPO V0-2<br />

Pitch PITCH —<br />

Symbol set SYMSET FRPO U6/U7


HP LaserJet Printer Commands — PCL<br />

HP LaserJet Emulation (Mode 6)<br />

In the tables below, Yes means that the command is supported and No means that the<br />

command is not supported.<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 1 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

JOB CONTROL COMMANDS<br />

Reset<br />

Reset ESCE 1B 45 Yes Yes Yes Yes Yes<br />

Number of<br />

Copies<br />

# of Copies<br />

(1-999)<br />

ESC&l#X 1B 26 6C #...#<br />

58<br />

Yes Yes Yes Yes Yes<br />

Long-Edge<br />

(Left)<br />

# of<br />

Decipoints<br />

ESC&l#U 1B 26 6C #...#<br />

55<br />

Yes Yes Yes Yes Yes<br />

Offset (1/720”)<br />

Short-Edge<br />

(Top)<br />

# of<br />

Decipoints<br />

ESC&l#Z 1B 26 6C #...#<br />

5A<br />

Yes Yes Yes Yes Yes<br />

Offset (1/720”)<br />

Unit of # = Number of ESC&u#D 1B 26 75 #...# 44 Yes Yes Yes Yes Yes<br />

Measure units per inch<br />

Exit PCL — ESC%-12345X 1B 25 2D 31 32 Yes Yes Yes Yes Yes<br />

Language<br />

33 34 35 58<br />

Simplex/Duplex Operation<br />

Simplex/Dupl Simplex ESC&l0S 1B 26 6C 30 53 No Yes Yes Yes Yes<br />

ex Print<br />

Duplex<br />

Long-Edge-<br />

Binding<br />

Short-Edge-<br />

Binding<br />

ESC&llS<br />

ESC&l2S<br />

1B 26 6C 32 53<br />

1B 26 6C 32 53<br />

No<br />

No<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Page Side Next side ESC&a0G 1B 26 61 30 47 No Yes Yes Yes Yes<br />

Selection Front Side ESC&a1G 1B 26 61 31 47 No Yes Yes Yes Yes<br />

Back Side ESC&a2G 1B 26 61 32 47 No Yes Yes Yes Yes<br />

Job<br />

Separation<br />

— ESC&l1T 1B 26 6C 31 54 No No No Yes No<br />

PAGE CONTROL COMMANDS<br />

Page Length and Size<br />

Paper Source Current Tray<br />

(0)<br />

ESC&l0H 1B 26 6C 30 48 Yes Yes Yes Yes Yes<br />

Upper Paper<br />

Tray (1)<br />

ESC&l1H 1B 26 6C 31 48 Yes Yes Yes Yes Yes<br />

Manual<br />

Feeder (2)<br />

ESC&l2H 1B 26 6C 32 48 Yes Yes Yes Yes Yes<br />

Manual<br />

Feeder (3)<br />

ESC&l3H 1B 26 6C 33 48 Yes Yes Yes Yes Yes<br />

Lower (1)<br />

Tray (4)<br />

ESC&l4H 1B 26 6C 34 48 Yes Yes Yes Yes Yes<br />

Lower (2)<br />

Tray (5)<br />

ESC&l5H 1B 26 6C 35 48 No Yes Yes Yes No<br />

Envelope Tray ESC&l6H<br />

(6)<br />

1B 26 6C 36 48 No Yes Yes Yes No<br />

Auto Select<br />

(Media Type)<br />

ESC&l7H 1B 26 6C 37 48 No Yes Yes Yes Yes<br />

3rd Tray in PF- ESC&l20H<br />

60/4th Tray in<br />

PF-30<br />

1B 26 6C 32 30<br />

48<br />

No Yes No Yes No<br />

5th Tray in PF- ESC&l21H<br />

30<br />

1B 26 6C 32 31<br />

48<br />

No No No Yes No<br />

6th Tray in PF- ESC&l22H<br />

30<br />

1B 26 6C 32 32<br />

48<br />

No No No Yes No<br />

8000C<br />

7-49


Chapter 7 Emulation<br />

7-50<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 2 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Output Bin Destination<br />

Tray 1 (Face<br />

down)<br />

Destination<br />

Tray 2 (Face<br />

up)<br />

Destination<br />

Tray 3 (Opt.<br />

Face down)<br />

Destination<br />

Tray 1 (Face<br />

down)<br />

Destination<br />

Tray 2 (Face<br />

down)<br />

Destination<br />

Tray 3 (Face<br />

down)<br />

Destination<br />

Tray 4 (Face<br />

down)<br />

Destination<br />

Tray 5 (Face<br />

down)<br />

Destination<br />

Tray 6 (Face<br />

down)<br />

Destination<br />

Tray 7 (Face<br />

down)<br />

Destination<br />

Tray 8 (Face<br />

down)<br />

Destination<br />

Tray 9 (Face<br />

down)<br />

Media Type<br />

ESC&l1G 1B 25 6C 31 47 Yes Yes Yes Yes Yes<br />

ESC&l2G 1B 25 6C 32 47 No Yes Yes Yes Yes<br />

ESC&l3G 1B 26 6C 33 47 No No No Yes No<br />

ESC&l4G 1B 26 6C 34 47 No No No Yes No<br />

ESC&l5G 1B 26 6C 35 47 No No No Yes No<br />

ESC&l6G 1B 26 6C 36 47 No No No Yes No<br />

ESC&l7G 1B 26 6C 37 47 No No No Yes No<br />

ESC&l8G 1B 26 6C 38 47 No No No Yes No<br />

ESC&l9G 1B 26 6C 39 47 No No No Yes No<br />

ESC&l10G 1B 26 6C 31 30<br />

47<br />

ESC&l11G 1B 26 6C 31 31<br />

47<br />

ESC&l12G 1B 26 6C 31 32<br />

47<br />

Media Type Automatica ESC&n5Wd�<br />

Auto<br />

Plain ESC&n6Wd�<br />

Plain<br />

Transparency ESC&n13Wd�<br />

Transparency<br />

Preprinted ESC&n11Wd�<br />

Preprinted<br />

Labels ESC&n7Wd�<br />

Labels<br />

Bond ESC&n5Wd�<br />

Bond<br />

Recycled ESC&n9Wd�<br />

Recycled<br />

35 57 64 61 75<br />

74 6F<br />

36 57 64 50 6C<br />

61 69 6E<br />

31 33 57 64 54<br />

72 61 6E 73 70<br />

61 72 65 6E 63<br />

79<br />

31 31 57 64 50<br />

72 65 70 72 69<br />

6E 74 65 64<br />

37 57 64 4C 61<br />

62 65 6C 73<br />

35 57 64 42 6F<br />

6E 64<br />

39 57 64 52 65<br />

63 79 63 6C 65<br />

64<br />

Vellum ESC&n7Vellum 37 56 65 6C 6C<br />

75 6D 0D<br />

Rough ESC&n6Wd�<br />

Rough<br />

Letterhead ESC&n11Wd�<br />

Letterhead<br />

31 31 57 64 4C<br />

65 74 74 65 72<br />

68 65 61 64<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

No No No Yes No<br />

No No No Yes No<br />

No No No Yes No<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes


Table 7.25. HP LaserJet PCL Commands (Sheet 3 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Color ESC&n6Wd�<br />

Color<br />

Prepunched ESC&n11Wd�<br />

Prepunched<br />

Envelope ESC&n9Wd�<br />

Envelope<br />

Card stock ESC&n11Wd�<br />

Cardstock<br />

36 57 64 43 6F<br />

6C 6F 72<br />

31 31 57 64 50<br />

72 65 70 75 6E<br />

63 68 65 64<br />

31 30 57 64 43<br />

61 72 64 73 74<br />

6F 63 6B<br />

HP LaserJet Emulation (Mode 6)<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Custom 1 ESC&n8Wd�<br />

Custom1<br />

Yes Yes Yes Yes Yes<br />

Custom 2 ESC&n8Wd�<br />

Custom2<br />

Yes Yes Yes Yes Yes<br />

Custom 3 ESC&n8Wd�<br />

Custom3<br />

Yes Yes Yes Yes Yes<br />

Custom 4 ESC&n8Wd�<br />

Custom4<br />

Yes Yes Yes Yes Yes<br />

Custom 5 ESC&n8Wd�<br />

Custom5<br />

Yes Yes Yes Yes Yes<br />

Custom 6 ESC&n8Wd�<br />

Custom6<br />

Yes Yes Yes Yes Yes<br />

Custom 7 ESC&n8Wd�<br />

Custom7<br />

Yes Yes Yes Yes Yes<br />

Custom 8 ESC&n8Wd�<br />

Custom8<br />

Yes Yes Yes Yes Yes<br />

Page Size Executive ESC&l1A 1B 26 6C 31 41 Yes Yes Yes Yes Yes<br />

Letter ESC&l2A 1B 26 6C 32 41 Yes Yes Yes Yes Yes<br />

Legal ESC&l3A 1B 26 6C 33 41 Yes Yes Yes Yes Yes<br />

Ledger ESC&l6A 1B 26 6C 36 41 No No Yes Yes No<br />

A5 ESC&l25A 1B 26 6C 32 35<br />

41<br />

Yes Yes Yes Yes No<br />

A4 ESC&l26A 1B 26 6C 32 36<br />

41<br />

Yes Yes Yes Yes Yes<br />

A3 ESC&l27A 1B 26 6C 32 37<br />

41<br />

No No Yes Yes No<br />

JIS B5 ESC&l45A 1B 26 6C 34 35<br />

41<br />

Yes Yes Yes Yes Yes<br />

JIS B4 ESC&l46A 1B 26 6C 34 36<br />

41<br />

No No Yes Yes No<br />

Hagaki ESC&l71A 1B 26 6C 37 31<br />

41<br />

Yes Yes Yes Yes Yes<br />

Oufuku-<br />

Hagaki<br />

ESC&l72A 1B 26 6C 37 32<br />

41<br />

YOUKEI 2 ESC&l78A 1B 26 6C 37 38<br />

41<br />

YOUKEI 4 ESC&l79A 1B 26 6C 37 39<br />

41<br />

FOLIO ESC&l77A 1B 26 6C 37 37<br />

41<br />

STATEMENT ESC&l76A 1B 26 6C 37 36<br />

41<br />

OFICIO II ESC&l73A 1B 26 6C 37 33<br />

41<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

Yes Yes Yes Yes Yes<br />

No No No Yes No<br />

No No No Yes No<br />

No No No Yes No<br />

No No No Yes No<br />

No No No Yes No<br />

7-51


Chapter 7 Emulation<br />

7-52<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 4 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

International<br />

B5<br />

ESC&l100A 1B 26 6C 31 30<br />

30 41<br />

Custom ESC&l101A 1B 26 6C 31 30<br />

31 41<br />

Monarch ESC&l80A 1B 26 6C 38 30<br />

41<br />

COM 10 ESC&l81A 1B 26 6C 38 31<br />

41<br />

DL ESC&l90A 1B 26 6C 39 30<br />

41<br />

International<br />

C5<br />

ESC&l91A 1B 26 6C 39 31<br />

41<br />

1000<br />

1000+<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes No<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Page Length<br />

Orientation<br />

# of Lines ESC&l#P 1B 26 6C #...#<br />

050<br />

Yes Yes Yes Yes Yes<br />

Orientation Portrait ESC&l0O 1B 26 6C 30 4F Yes Yes Yes Yes Yes<br />

Landscape ESC&l1O 1B 26 6C 31 4F Yes Yes Yes Yes Yes<br />

Reverse<br />

Portrait<br />

ESC&l2O 1B 26 6C 32 4F Yes Yes Yes Yes Yes<br />

Reverse<br />

Landscape<br />

ESC&l3O 1B 26 6C 33 4F Yes Yes Yes Yes Yes<br />

Print Direction Degrees of<br />

Rotation<br />

(counterclock<br />

wise<br />

90°increments<br />

only)<br />

ESC&a#P 1B 26 61 #...# 50 Yes Yes Yes Yes Yes<br />

Character Text Horizontal ESC&c0T 1B 26 63 30 54 Yes Yes Yes Yes Yes<br />

Path Direction<br />

Vertical ESC&c-1T 1B 26 63 2D 31 Yes Yes Yes Yes Yes<br />

Rotated<br />

54<br />

Margins and Text Length<br />

Top Margin # of Lines ESC&l#E 1B 26 6C #...#<br />

45<br />

Yes Yes Yes Yes Yes<br />

Text Length # of Lines ESC&l#F 1B 26 6C #...#<br />

46<br />

Yes Yes Yes Yes Yes<br />

Left Margin # of Columns ESC&a#L 1B 26 61 #...#<br />

4C<br />

Yes Yes Yes Yes Yes<br />

Right Margin # of Columns ESC&a#M 1B 26 61 #...#<br />

4D<br />

Yes Yes Yes Yes Yes<br />

Clear<br />

Horizontal<br />

Margins<br />

ESC9 1B 39 Yes Yes Yes Yes Yes<br />

Perforation Skip Mode<br />

Perforation Disable ESC&l0L 1B 26 6C 30 4C Yes Yes Yes Yes Yes<br />

Skip<br />

Enable ESC&l1L 1B 26 6C 31 4C Yes Yes Yes Yes Yes<br />

Horizontal Column Spacing<br />

Horizontal<br />

Motion Index<br />

(HMI)<br />

# of 1/120”<br />

Increments<br />

ESC&lk#H 1B 26 6B #...#<br />

48<br />

Yes Yes Yes Yes Yes<br />

Vertical Line Spacing<br />

Vertical<br />

Motion Index<br />

(VMI)<br />

# of 1/48”<br />

Increments<br />

ESC&l#C 1B 26 6C #...#<br />

43<br />

Yes Yes Yes Yes Yes<br />

Line Spacing 1 line/inch ESC&l1D 1B 26 6C 31 44 Yes Yes Yes Yes Yes<br />

(Lines per<br />

inch)<br />

2 lines/inch<br />

3 lines/inch<br />

ESC&l2D<br />

ESC&l3D<br />

1B 26 6C 32 44<br />

1B 26 6C 33 44<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

Yes<br />

4 lines/inch ESC&l4D 1B 26 6C 34 44 Yes Yes Yes Yes Yes<br />

6 lines/inch ESC&l6D 1B 26 6C 36 44 Yes Yes Yes Yes Yes<br />

8 lines/inch ESC&l8D 1B 26 6C 38 44 Yes Yes Yes Yes Yes<br />

12 lines/inch ESC&l12D 1B 26 6C 31 32<br />

44<br />

Yes Yes Yes Yes Yes<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C


Table 7.25. HP LaserJet PCL Commands (Sheet 5 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Alphanumeric<br />

ID<br />

16 lines/inch ESC&l16D 1B 26 6C 31 36<br />

44<br />

24 lines/inch ESC&l24D 1B 26 6C 32 34<br />

44<br />

48 lines/inch ESC&l48D 1B 26 6C 34 38<br />

44<br />

# of bytes ESC&n#W<br />

[operation]<br />

[String]<br />

1B 26 6E #...#<br />

57<br />

HP LaserJet Emulation (Mode 6)<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

CURSOR POSITIONING<br />

Vertical and Horizontal<br />

Vertical # of Rows ESC&a#R 1B 26 61 #...# 52 Yes Yes Yes Yes Yes<br />

Position<br />

# of Dots ESC*p#Y 1B 2A 70 #...#<br />

59<br />

Yes Yes Yes Yes Yes<br />

# of<br />

Decipoints<br />

ESC&a#V 1B 26 61 #...# 56 Yes Yes Yes Yes Yes<br />

Horizontal # of Columns ESC&a#C 1B 26 61 #...# 43 Yes Yes Yes Yes Yes<br />

Position # of Dots ESC*p#X 1B 2A 70 #...#<br />

58<br />

Yes Yes Yes Yes Yes<br />

# of<br />

Decipoints<br />

ESC&a#H 1B 26 61 #...# 48 Yes Yes Yes Yes Yes<br />

Half Line Feed ESC= 1B 3D Yes Yes Yes Yes Yes<br />

End-of-Line Termination<br />

Line<br />

Termination<br />

CR = CR;<br />

LF = LF;<br />

FF = FF;<br />

ESC&k0G 1B 26 6B 30 47 Yes Yes Yes Yes Yes<br />

CR = CR + LF ESC&k1G<br />

LF = LF<br />

FF = FF<br />

1B 26 6B 31 47 Yes Yes Yes Yes Yes<br />

CR = CR;<br />

LF = CR + LF;<br />

FF = CR + FF<br />

ESC&k2G 1B 26 6B 32 47 Yes Yes Yes Yes Yes<br />

CR = CR + LF; ESC&k3G<br />

LF = CR + LF;<br />

FF = CR + FF<br />

Push/Pop Position<br />

1B 26 6B 33 47 Yes Yes Yes Yes Yes<br />

Push/Pop Push ESC&f#S 1B 26 66 30 53 Yes Yes Yes Yes Yes<br />

Position Pop ESC&f#S 1B 26 66 31 53 Yes Yes Yes Yes Yes<br />

FONT SELECTION<br />

Symbol Set Selection<br />

Primary<br />

Symbol Set<br />

ISO 60:<br />

Norwegian<br />

ESC(0D 1B 28 30 44 Yes Yes Yes Yes Yes<br />

ISO 4; United ESC(1E<br />

Kingdom<br />

1B 28 31 45 Yes Yes Yes Yes Yes<br />

Windows 3.1<br />

Latin 2<br />

ESC(9E 1B 28 39 45 Yes Yes Yes Yes Yes<br />

ISO 69:<br />

French<br />

ESC(1F 1B 28 31 46 Yes Yes Yes Yes Yes<br />

ISO 21:<br />

German<br />

ESC(1G 1B 28 31 47 Yes Yes Yes Yes Yes<br />

ISO 15: Italian ESC(0I 1B 28 30 49 Yes Yes Yes Yes Yes<br />

Microsoft<br />

publishing<br />

ESC(6J 1B 28 36 4A Yes Yes Yes Yes Yes<br />

DeskTop ESC(7J 1B 28 37 4A Yes Yes Yes Yes Yes<br />

PC1004 ESC(9J 1B 28 39 4A No No No Yes No<br />

PS Text ESC(10J 1B 28 31 30 4A Yes Yes Yes Yes Yes<br />

MC Text ESC(12J 1B 28 31 32 4A Yes Yes Yes Yes Yes<br />

Wingdings ESC(579L 1B 28 35 37 39<br />

4C<br />

No Yes Yes Yes Yes<br />

PS Math ESC(5M 1B 28 35 4D Yes Yes Yes Yes Yes<br />

7-53


Chapter 7 Emulation<br />

7-54<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 6 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

Math-8 ESC(8M 1B 28 38 4D Yes Yes Yes Yes Yes<br />

Symbol ESC(19M 1B 28 31 39 4D No Yes Yes Yes Yes<br />

ECMA-94<br />

Latin 1<br />

ESC(0N 1B 28 30 4E Yes Yes Yes Yes Yes<br />

ISO L2 ESC(2N 1B 28 32 4E Yes Yes Yes Yes Yes<br />

ISO L5 ESC(5N 1B 28 35 4E Yes Yes Yes Yes Yes<br />

ISO 8859-10<br />

Latin 6<br />

ESC(6N 1B 28 36 4E No No No Yes No<br />

ISO 11:<br />

Swedish<br />

ESC(0S 1B 28 30 53 Yes Yes Yes Yes Yes<br />

ISO 17:<br />

Spanish<br />

ESC(2S 1B 28 32 53 Yes Yes Yes Yes Yes<br />

Windows 3.1<br />

Latin 5<br />

ESC(5T 1B 28 35 54 Yes Yes Yes Yes Yes<br />

PC Turkish ESC(9T 1B 28 39 54 Yes Yes Yes Yes Yes<br />

ISO 6: ASCII ESC(0U 1B 28 30 55 Yes Yes Yes Yes Yes<br />

Legal ESC(1U 1B 28 31 55 Yes Yes Yes Yes Yes<br />

Roman-8 ESC(8U 1B 28 38 55 Yes Yes Yes Yes Yes<br />

Windows 3.0<br />

Latin 1<br />

ESC(9U 1B 28 39 55 Yes Yes Yes Yes Yes<br />

PC-8 ESC(10U 1B 28 31 30 55 Yes Yes Yes Yes Yes<br />

PC-8 D/N ESC(11U 1B 28 31 31 55 Yes Yes Yes Yes Yes<br />

PC 850 ESC(12U 1B 28 31 32 55 Yes Yes Yes Yes Yes<br />

Pi Font ESC(15U 1B 28 31 35 55 Yes Yes Yes Yes Yes<br />

PC-852 ESC(17U 1B 28 31 37 55 Yes Yes Yes Yes Yes<br />

Windows 3.1<br />

Latin 1<br />

(ANSI)<br />

ESC(19U 1B 28 31 39 55 Yes Yes Yes Yes Yes<br />

PC-775 ESC(26U 1B 28 32 36 55 No No No Yes No<br />

Windows 3.1J<br />

(Japanese)<br />

ESC(19K 1B 28 31 39 4B Yes Yes Yes Yes Yes<br />

Spacing<br />

Primary Fixed ESC(s0P 1B 28 73 30 50 Yes Yes Yes Yes Yes<br />

Spacing<br />

Pitch<br />

Proportional ESC(s1p 1B 28 73 31 50 Yes Yes Yes Yes Yes<br />

Primary Pitch # Characters/<br />

inch<br />

ESC(s#H 1B 28 73 #...# 48 Yes Yes Yes Yes Yes<br />

Set Pitch Mode 10.0 ESC&k0S 1B 26 6B 30 53 Yes Yes Yes Yes Yes<br />

Compressed<br />

(16.5-16.7)<br />

ESC&k2S 1B 26 6B 32 53 Yes Yes Yes Yes Yes<br />

Elite (12.0)<br />

Point Size<br />

ESC&k4S 1B 26 6B 34 53 Yes Yes Yes Yes Yes<br />

Primary<br />

Height<br />

Style<br />

# Points ESC(s#V 1B 28 73 #...# 56 Yes Yes Yes Yes Yes<br />

Primary Style Upright<br />

(Solid)<br />

ESC(s0S 1B 28 73 30 53 Yes Yes Yes Yes Yes<br />

Italic ESC(s1S 1B 28 73 31 53 Yes Yes Yes Yes Yes<br />

Condensed ESC(s4S 1B 28 73 34 53 Yes Yes Yes Yes Yes<br />

Condensed<br />

Italic<br />

ESC(s5S 1B 28 73 35 53 Yes Yes Yes Yes Yes<br />

Compressed<br />

(Extra<br />

Condensed)<br />

ESC(s8S 1B 28 73 38 53 Yes Yes Yes Yes Yes<br />

Expanded ESC(s24S 1B 28 73 32 34<br />

53<br />

Yes Yes Yes Yes Yes<br />

Outline ESC(s32S 1B 28 73 33 32<br />

53<br />

Yes Yes Yes Yes Yes


Table 7.25. HP LaserJet PCL Commands (Sheet 7 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Inline ESC(s64S 1B 28 73 36 34<br />

53<br />

Shadowed ESC(s128S 1B 28 73 31 32<br />

38 53<br />

Outline<br />

Shadowed<br />

ESC(s160S 1B 28 73 31 36<br />

30 53<br />

HP LaserJet Emulation (Mode 6)<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Stroke Weight<br />

Primary Font Ultra Thin ESC(s-7B 1B 28 73 2D 37 Yes Yes Yes Yes Yes<br />

Stroke Weight<br />

42<br />

Extra Thin ESC(s-6B 1B 28 73 2D 36<br />

42<br />

Yes Yes Yes Yes Yes<br />

Thin ESC(s-5B 1B 28 73 2D 35<br />

42<br />

Yes Yes Yes Yes Yes<br />

Extra Light ESC(s-4B 1B 28 73 2D 34<br />

42<br />

Yes Yes Yes Yes Yes<br />

Light ESC(s-3B 1B 28 73 2D 33<br />

42<br />

Yes Yes Yes Yes Yes<br />

Demi Light ESC(s-2B 1B 28 73 2D 32<br />

42<br />

Yes Yes Yes Yes Yes<br />

Semi Light ESC(s-1B 1B 28 73 2D 31<br />

42<br />

Yes Yes Yes Yes Yes<br />

Medium<br />

(book or text)<br />

ESC(s0B 1B 28 73 30 42 Yes Yes Yes Yes Yes<br />

Semi Bold ESC(s1B 1B 28 73 31 42 Yes Yes Yes Yes Yes<br />

Demi Bold ESC(s2B 1B 28 73 32 42 Yes Yes Yes Yes Yes<br />

Bold ESC(s3B 1B 28 73 33 42 Yes Yes Yes Yes Yes<br />

Extra Bold ESC(s4B 1B 28 73 34 42 Yes Yes Yes Yes Yes<br />

Black ESC(s5B 1B 28 73 35 42 Yes Yes Yes Yes Yes<br />

Extra Black ESC(s6B 1B 28 73 36 42 Yes Yes Yes Yes Yes<br />

Ultra Black ESC(s7B 1B 28 73 37 42 Yes Yes Yes Yes Yes<br />

Primary Typeface Family<br />

Typeface<br />

Family<br />

Albertus ESC(s4362T 1B 28 73 34 31<br />

36 32 54<br />

Yes Yes Yes Yes Yes<br />

Antique Olive ESC(s4168T 1B 28 73 34 31<br />

36 38 54<br />

Yes Yes Yes Yes Yes<br />

Clarendon ESC(s4140T 1B 28 73 34 31<br />

34 30 54<br />

Yes Yes Yes Yes Yes<br />

Coronet ESC(s4116T 1B 28 73 34 31<br />

31 36 54<br />

Yes Yes Yes Yes Yes<br />

Courier ESC(s3T 1B 28 73 33 54 Yes Yes Yes Yes Yes<br />

GW-Kai ESC(s37357T 1B 28 73 33 37<br />

33 35 37 54<br />

Yes Yes Yes Yes Yes<br />

Courier ESC(s4099T 1B 28 73 34 30<br />

39 39 54<br />

Yes Yes Yes Yes Yes<br />

ITC Zapf<br />

Dingbats<br />

Garamond<br />

Antiqua<br />

ESC(s4141T 1B 28 73 34 31<br />

34 31 54<br />

ESC(s4197T 1B 28 73 34 31<br />

39 37 54<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Letter Gothic ESC(s4102T 1B 28 73 34 31<br />

30 32 54<br />

Yes Yes Yes Yes Yes<br />

LinePrinter ESC(s0T 1B 28 73 30 54 Yes Yes Yes Yes Yes<br />

Marigold ESC(s4297T 1B 28 73 34 32<br />

39 37 54<br />

Yes Yes Yes Yes Yes<br />

CG Omega ESC(s4113T 1B 28 73 34 31<br />

31 33 54<br />

Yes Yes Yes Yes Yes<br />

CG Times ESC(s4101T 1B 28 73 34 31<br />

30 31 54<br />

Yes Yes Yes Yes Yes<br />

Univers ESC(s4148T 1B 28 73 34 31<br />

34 38 54<br />

Yes Yes Yes Yes Yes<br />

Arial ESC(s16602T 1B 28 73 31 36<br />

36 30 32 54<br />

Yes Yes Yes Yes Yes<br />

7-55


Chapter 7 Emulation<br />

7-56<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 8 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

MS Mincho ESC(s28752T 1B 28 73 32 38<br />

37 35 32 54<br />

MS Gothic ESC(s28825T 1B 28 73 32 38<br />

38 32 35 54<br />

Times New<br />

Roman<br />

ESC(s16901T 1B 28 73 31 36<br />

39 30<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

SimHei ESC(s37110T 1B 28 73 33 37<br />

31 31 30 54<br />

Yes Yes Yes Yes Yes<br />

SimSun ESC(s37058T 1B 28 73 33 37<br />

30 35 38 54<br />

Yes Yes Yes Yes Yes<br />

Symbol ESC(s16686T 1B 28 73 31 36<br />

36 38 36 54<br />

Yes Yes Yes Yes Yes<br />

Wingdings ESC(s6826T 1B 28 73 36 38<br />

32 36 54<br />

Yes Yes Yes Yes Yes<br />

Wingdings ESC(s31402T 1B 28 73 33 31<br />

34 30 32 54<br />

Yes Yes Yes Yes Yes<br />

Font Default<br />

Font Default Primary Font ESC(3@ 1B 28 33 40 Yes Yes Yes Yes Yes<br />

Underline<br />

Secondary<br />

Font<br />

ESC)3@ 1B 29 33 40 Yes Yes Yes Yes Yes<br />

Underline Enable Fixed ESC&d0D 1B 26 64 30 44 Yes Yes Yes Yes Yes<br />

Enable<br />

Floating<br />

ESC&d3D 1B 26 64 33 44 Yes Yes Yes Yes Yes<br />

Disable ESC&d@ 1B 26 64 40 Yes Yes Yes Yes Yes<br />

Text Parsing 1-Byte ESC&t0P 1B 26 74 30 50 Yes Yes Yes Yes Yes<br />

Method<br />

1-Byte ESC&t1P 1B 26 74 31 50 Yes Yes Yes Yes Yes<br />

1-Byte/2-Byte ESC&t21P 1B 26 74 32 31<br />

50<br />

Yes Yes Yes Yes Yes<br />

1-Byte/2-Byte ESC&t31P 1B 26 74 33 31<br />

50<br />

Yes Yes Yes Yes Yes<br />

1-Byte/2-Byte ESC&t38P<br />

Transparent Print<br />

1B 26 74 33 38<br />

50<br />

Yes Yes Yes Yes Yes<br />

Transparent # of Bytes ESC&p#X� 1B 26 70 #...# 58 Yes Yes Yes Yes Yes<br />

Print Data<br />

[Data]<br />

FONT MANAGEMENT<br />

Assign Font ID Font ID # ESC*c#D 1B 2A 63 #...#<br />

44<br />

Yes Yes Yes Yes Yes<br />

Font and Delete all ESC*c0F 1B 2A 63 30 46 Yes Yes Yes Yes Yes<br />

Character Fonts<br />

Control<br />

Delete all<br />

temporary<br />

fonts<br />

ESC*c1F 1B 2A 63 31 46 Yes Yes Yes Yes Yes<br />

Delete last<br />

font<br />

ID specified<br />

ESC*c2F 1B 2A 63 32 46 Yes Yes Yes Yes Yes<br />

Delete last<br />

character<br />

specified<br />

ESC*c3F 1B 2A 63 33 46 Yes Yes Yes Yes Yes<br />

Make font<br />

temporary<br />

ESC*c4F 1B 2A 63 34 46 Yes Yes Yes Yes Yes<br />

Make font<br />

permanent<br />

ESC*c5F 1B 2A 63 35 46 Yes Yes Yes Yes Yes<br />

Copy/Assign<br />

the currently<br />

invoked font<br />

as temporary<br />

ESC*c6F 1B 2A 63 36 46 Yes Yes Yes Yes Yes<br />

Soft Symbol Set Management/Creation<br />

Set Symbol Set ID # ESC*c#R 1B 2A 63 #...#<br />

52<br />

Yes Yes Yes Yes Yes


Table 7.25. HP LaserJet PCL Commands (Sheet 9 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Define Symbol<br />

Set<br />

Symbol Set<br />

Control<br />

# of Bytes ESC(f#W[DAT<br />

A]<br />

Delete all<br />

symbol sets<br />

Delete all<br />

temporary<br />

symbol sets<br />

Delete current<br />

soft symbol<br />

set<br />

(last ID#)<br />

Make current<br />

soft symbol<br />

set temporary<br />

Make current<br />

soft symbol<br />

set permanent<br />

Font Selection by ID number<br />

Select font<br />

(with ID #)<br />

HP LaserJet Emulation (Mode 6)<br />

1000<br />

1000+<br />

1B 28 66 #...# 57 Yes Yes Yes Yes Yes<br />

ESC*c0S 1B 2A 63 30 53 Yes Yes Yes Yes Yes<br />

ESC*c1S 1B 2A 63 31 53 Yes Yes Yes Yes Yes<br />

ESC*c2S 1B 2A 63 32 53 Yes Yes Yes Yes Yes<br />

ESC*c4S 1B 2A 63 34 53 Yes Yes Yes Yes Yes<br />

ESC*c5S 1B 2A 63 35 53 Yes Yes Yes Yes Yes<br />

ID # primary<br />

font<br />

ESC(#X 1B 28 #...# 58 Yes Yes Yes Yes Yes<br />

ID #<br />

secondary font<br />

ESC)#X 1B 29 #...# 58 Yes Yes Yes Yes Yes<br />

Soft Font Creation<br />

Font descriptor # of bytes<br />

(font header)<br />

ESC)s#W[Data] 1B 29 73 #...# 57 Yes Yes Yes Yes Yes<br />

Download<br />

character<br />

# of bytes ESC(s#W[Data] 1B 28 73 #...# 57 Yes Yes Yes Yes Yes<br />

Character code Character ESC*c#E 1B 2A 63 #...# Yes Yes Yes Yes Yes<br />

code<br />

# (decimal)<br />

GRAPHICS<br />

45<br />

PCL Vector Graphics Switching/Set-Up<br />

Enter PCL Use previous ESC%0A 1B 25 30 41 Yes Yes Yes Yes Yes<br />

Mode PCL cursor<br />

position<br />

Use current<br />

HP-GL/2 pen<br />

position for<br />

cursor<br />

position<br />

ESC%1A 1B 25 31 41 Yes Yes Yes Yes Yes<br />

Enter<br />

HP-GL/2<br />

Use Previous<br />

HP-GL/2 pen<br />

ESC%0B 1B 25 30 42 Yes Yes Yes Yes Yes<br />

Mode position<br />

Use current<br />

PCL cursor<br />

position<br />

ESC%1B 1B 25 31 42 Yes Yes Yes Yes Yes<br />

HP-GL/2 Plot Horizontal ESC*c#K 1B 2A 63 #...# Yes Yes Yes Yes Yes<br />

Horizontal<br />

Size<br />

size in inches<br />

48<br />

HP-GL/2 Plot<br />

Vertical Size<br />

Vertical size in ESC*c#L<br />

inches<br />

1B 2A 63 #...#<br />

4C<br />

Yes Yes Yes Yes Yes<br />

Set Picture Set anchor ESC*c0T 1B 2A 63 30 54 Yes Yes Yes Yes Yes<br />

Frame Anchor point to cursor<br />

Point position<br />

Picture Frame Decipoints ESC*c#X 1B 2A 63 #...# Yes Yes Yes Yes Yes<br />

Horizontal<br />

Size<br />

58<br />

Picture Frame Decipoints ESC*c#Y 1B 2A 63 #...# Yes Yes Yes Yes Yes<br />

Vertical Size<br />

59<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

7-57


Chapter 7 Emulation<br />

7-58<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 10 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Raster Graphics<br />

Raster<br />

Resolution<br />

75 dots/inch ESC*t75R 1B 2A 74 37 35<br />

52<br />

100 dots/inch ESC*t100R 1B 2A 74 31 30<br />

30 52<br />

150 dots/inch ESC*t150R 1B 2A 74 31 35<br />

30 52<br />

200 dots/inch ESC*t200R 1B 2A 74 32 30<br />

30 52<br />

300 dots/inch ESC*t300R 1B 2A 74 33 30<br />

30 52<br />

600 dots/inch ESC*t600R 1B 2A 74 36 30<br />

30 52<br />

1000<br />

1000+<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

No Yes No Yes Yes<br />

Yes Yes Yes Yes Yes<br />

No Yes No Yes Yes<br />

Orientation<br />

Raster Graphics<br />

Raster Follows ESC*r0F 1B 2A 72 30 46 Yes Yes Yes Yes Yes<br />

Graphics<br />

Presentation<br />

orientation<br />

Follows<br />

physical page<br />

ESC*r3F 1B 2A 72 33 46 Yes Yes Yes Yes Yes<br />

Start Raster<br />

Graphics<br />

Left Raster<br />

Graphics<br />

Margin<br />

ESC*r0A 1B 2A 72 30 41 Yes Yes Yes Yes Yes<br />

Current<br />

Cursor<br />

ESC*r1A 1B 2A 72 31 41 Yes Yes Yes Yes Yes<br />

Scale mode<br />

(logical left<br />

page<br />

boundary)<br />

ESC*r2A 1B 2A 72 32 41 No No No No Yes<br />

Scale mode<br />

(at CAP)<br />

ESC*r3A 1B 2A 72 33 42 No No No No Yes<br />

Raster Y<br />

Offset<br />

# of Raster<br />

Lines of<br />

vertical<br />

movement<br />

ESC*b#Y 1B 2A 62 #...#<br />

59<br />

Yes Yes Yes Yes Yes<br />

Set Raster Unencoded ESC*b0M 1B 2A 62 30 4D Yes Yes Yes Yes Yes<br />

Compression<br />

Mode<br />

Run-Length<br />

Encoded<br />

ESC*b1M 1B 2A 62 31 4D Yes Yes Yes Yes Yes<br />

Tagged Image<br />

File Format<br />

ESC*b2M 1B 2A 62 32 4D Yes Yes Yes Yes Yes<br />

Delta Row ESC*b3M 1B 2A 62 33 4D Yes Yes Yes Yes Yes<br />

Adaptive<br />

compression<br />

ESC*b5M 1B 2A 62 35 4D Yes Yes Yes Yes Yes<br />

Replacement<br />

Delta Row<br />

ESC*b9M 1B 2A 98 39 4D Yes Yes Yes Yes Yes<br />

Transfer # of Bytes ESC*b#W 1B 2A 62 #...# Yes Yes Yes Yes Yes<br />

Raster Data by<br />

row<br />

[Data] 57<br />

Transfer # of Bytes ESC*b#V 1B 2A 98 #...# No No No No Yes<br />

Raster Data<br />

(by plane)<br />

[Data] 56<br />

End Raster Old version ESC*rB 1B 2A 72 42 Yes Yes Yes Yes Yes<br />

Graphics Preferred ESC*rC 1B 2A 72 43 Yes Yes Yes Yes Yes<br />

Raster Height # Raster Rows ESC*r#T 1B 2A 72 #...# Yes Yes Yes Yes Yes<br />

(Source)<br />

54<br />

Raster Width # Pixels of the ESC*r#S 1B 2A 72 #...# Yes Yes Yes Yes Yes<br />

(Source) Specified<br />

Resolution<br />

53<br />

THE PRINT MODEL<br />

Imaging<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C


Table 7.25. HP LaserJet PCL Commands (Sheet 11 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Select Current<br />

Pattern<br />

Source<br />

Transparency<br />

Mode<br />

Pattern<br />

Transparency<br />

Mode<br />

Logical<br />

Operation<br />

Pixel<br />

Placement<br />

Rectangle Dimensions<br />

Rectangle<br />

Width<br />

(Horizontal<br />

Size)<br />

Rectangle<br />

Height<br />

(Vertical Size)<br />

HP LaserJet Emulation (Mode 6)<br />

Solid Black<br />

(default)<br />

ESC*v0T 1B 2A 76 30 54 Yes Yes Yes Yes Yes<br />

Solid White ESC*v1T 1B 2A 76 31 54 Yes Yes Yes Yes Yes<br />

HP-defined<br />

Shading<br />

Pattern<br />

ESC*v2T 1B 2A 76 32 54 Yes Yes Yes Yes Yes<br />

HP-defined<br />

Cross-<br />

Hatched<br />

Pattern<br />

ESC*v3T 1B 2A 76 33 54 Yes Yes Yes Yes Yes<br />

User defined<br />

pattern<br />

ESC*v4T 1B 2A 76 34 54 Yes Yes Yes Yes Yes<br />

Transparent ESC*v0N 1B 2A 76 30 4E Yes Yes Yes Yes Yes<br />

Opaque ESC*v1N 1B 2A 76 31 4E Yes Yes Yes Yes Yes<br />

Transparent ESC*v0O 1B 2A 76 30 4F Yes Yes Yes Yes Yes<br />

Opaque ESC*v1O 1B 2A 76 31 4F Yes Yes Yes Yes Yes<br />

# = ROP3<br />

input value<br />

Grid<br />

Intersection<br />

Pixel<br />

Placement<br />

ESC*l#O 1B 2A 6C #...#<br />

4F<br />

Yes Yes Yes Yes Yes<br />

ESC*v0R 1B 2A 6C 30 52 Yes Yes Yes Yes Yes<br />

ESC*v1R 1B 2A 76 31 52 Yes Yes Yes Yes Yes<br />

# of dots ESC*c#A 1B 2A 63 #...#<br />

41<br />

# of decipoints ESC*c#H 1B 2A 63 #...#<br />

48<br />

# of dots ESC*c#B 1B 2A 63 #...#<br />

42<br />

# of decipoints ESC*c#V 1B 2A 63 #...#<br />

56<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

Rectangular Area Fill<br />

Fill<br />

Solid Black ESC*c0P 1B 2A 63 30 50 Yes Yes Yes Yes Yes<br />

Rectangular<br />

Area<br />

Erase (solid<br />

white fill)<br />

ESC*c1P 1B 2A 63 31 50 Yes Yes Yes Yes Yes<br />

Shaded Fill ESC*c2P 1B 2A 63 32 50 Yes Yes Yes Yes Yes<br />

Cross-hatched ESC*c3P<br />

Fill<br />

1B 2A 63 33 50 Yes Yes Yes Yes Yes<br />

User-Defined ESC*c4P 1B 2A 63 34 50 Yes Yes Yes Yes Yes<br />

Current<br />

Pattern<br />

ESC*c5P 1B 2A 63 35 50 Yes Yes Yes Yes Yes<br />

Pattern ID % of Shading ESC*c#G 1B 2A 63 #...# Yes Yes Yes Yes Yes<br />

or Type of<br />

Pattern or<br />

User Pattern<br />

ID<br />

47<br />

Shading 2% Gray ESC*c2G 1B 2A 63 32 47 Yes Yes Yes Yes Yes<br />

10% Gray ESC*c10G 1B 2A 63 31 30<br />

47<br />

Yes Yes Yes Yes Yes<br />

15% Gray ESC*c15G 1B 2A 63 31 35<br />

47<br />

Yes Yes Yes Yes Yes<br />

30% Gray ESC*c30G 1B 2A 63 33 30<br />

47<br />

Yes Yes Yes Yes Yes<br />

45% Gray ESC*c45G 1B 2A 63 34 35<br />

47<br />

Yes Yes Yes Yes Yes<br />

70% Gray ESC*c70G 1B 2A 63 37 30<br />

47<br />

Yes Yes Yes Yes Yes<br />

90% Gray ESC*c90G 1B 2A 63 39 30<br />

47<br />

Yes Yes Yes Yes Yes<br />

100% Gray ESC*c100G 1B 2A 63 31 30<br />

30 47<br />

Yes Yes Yes Yes Yes<br />

7-59


Chapter 7 Emulation<br />

7-60<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 12 of 15)<br />

Function Parameter Command Hexadecimal 1000 1800 6300 9100DN 8000C<br />

Value<br />

1000+ 1900<br />

3800<br />

6750<br />

6900<br />

9500DN<br />

Pattern 1 Horiz.Line ESC*c1G 1B 2A 63 31 47 Yes Yes Yes Yes Yes<br />

2 Vert. Lines ESC*c2G 1B 2A 63 32 47 Yes Yes Yes Yes Yes<br />

3 Diagonal<br />

Lines<br />

ESC*c3G 1B 2A 63 33 47 Yes Yes Yes Yes Yes<br />

4 Diagonal<br />

Lines<br />

ESC*c4G 1B 2A 63 34 47 Yes Yes Yes Yes Yes<br />

5 Square Grid ESC*c5G 1B 2A 63 35 47 Yes Yes Yes Yes Yes<br />

6 Diagonal<br />

Grid<br />

ESC*c6G 1B 2A 63 36 47 Yes Yes Yes Yes Yes<br />

USER DEFINED PATTERN / MANAGEMENT CREATION<br />

User-Defined Delete all ESC*c0Q 1B 2A 63 030 51 Yes Yes Yes Yes Yes<br />

Pattern<br />

Control<br />

patterns<br />

Delete all<br />

temporary<br />

patterns<br />

ESC*c1Q 1B 2A 63 031 51 Yes Yes Yes Yes Yes<br />

Delete current<br />

pattern<br />

ESC*c2Q 1B 2A 63 032 51 Yes Yes Yes Yes Yes<br />

Make pattern<br />

temporary<br />

ESC*c4Q 1B 2A 63 034 51 Yes Yes Yes Yes Yes<br />

Make pattern<br />

permanent<br />

ESC*c5Q 1B 2A 63 035 51 Yes Yes Yes Yes Yes<br />

Set Pattern Rotate with ESC*p0R 1B 2A 70 30 52 Yes Yes Yes Yes Yes<br />

<strong>Reference</strong> orientation<br />

Point<br />

MACROS<br />

Follow<br />

physical page<br />

ESC*p1R 1B 2A 70 31 52 Yes Yes Yes Yes Yes<br />

Macro ID Macro ID # ESC&f#Y 1B 26 66 #...# 59 Yes Yes Yes Yes Yes<br />

Macro Control Start Macro<br />

Definition<br />

ESC&f0X 1B 26 66 30 58 Yes Yes Yes Yes Yes<br />

Stop Macro<br />

Definition<br />

ESC&f1X 1B 26 66 31 58 Yes Yes Yes Yes Yes<br />

Execute<br />

Macro<br />

ESC&f2X 1B 26 66 32 58 Yes Yes Yes Yes Yes<br />

Call Macro ESC&f3X 1B 26 66 33 58 Yes Yes Yes Yes Yes<br />

Enable<br />

Overlay<br />

ESC&f4X 1B 26 66 34 58 Yes Yes Yes Yes Yes<br />

Disable<br />

Overlay<br />

ESC&f5X 1B 26 66 35 58 Yes Yes Yes Yes Yes<br />

Delete Macros ESC&f6X 1B 26 66 36 58 Yes Yes Yes Yes Yes<br />

Delete All<br />

Temp. Macros<br />

ESC&f7X 1B 26 66 37 58 Yes Yes Yes Yes Yes<br />

Delete Macro<br />

ID<br />

ESC&f8X 1B 26 66 38 58 Yes Yes Yes Yes Yes<br />

Make<br />

Temporary<br />

ESC&f9X 1B 26 66 39 58 Yes Yes Yes Yes Yes<br />

Make ESC&f10X 1B 26 66 31 30 Yes Yes Yes Yes Yes<br />

Permanent<br />

Set Status Readback<br />

58<br />

Status Invalid ESC*s0T 1B 2A 73 30 54 Yes Yes Yes Yes Yes<br />

Readback Location<br />

Location Type<br />

Currently<br />

Selected<br />

ESC*s1T 1B 2A 73 31 54 Yes Yes Yes Yes Yes<br />

All Locations ESC*s2T 1B 2A 73 32 54 Yes Yes Yes Yes Yes<br />

Internal ESC*s3T 1B 2A 73 33 54 Yes Yes Yes Yes Yes<br />

Downloaded ESC*s4T 1B 2A 73 34 54 Yes Yes Yes Yes Yes<br />

Cartridge ESC*s5T 1B 2A 73 35 54 Yes Yes Yes Yes Yes<br />

User-installed ESC*s7T<br />

ROM<br />

(SIMMs)<br />

1B 2A 73 37 54 Yes Yes Yes Yes Yes


Table 7.25. HP LaserJet PCL Commands (Sheet 13 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Set Status<br />

Readback<br />

Location Unit<br />

Inquire Status<br />

Readback<br />

Entity<br />

Flush All<br />

Pages<br />

Free Memory<br />

Space<br />

HP LaserJet Emulation (Mode 6)<br />

All entities of<br />

the Location<br />

Type<br />

ESC*s0U 1B 2A 73 30 55 Yes Yes Yes Yes Yes<br />

Entity 1 or<br />

Temporary<br />

ESC*s1U 1B 2A 73 31 55 Yes Yes Yes Yes Yes<br />

Entity 2 or<br />

Permanent<br />

ESC*s2U 1B 2A 73 32 55 Yes Yes Yes Yes Yes<br />

Entity 3 ESC*s3U 1B 2A 73 33 55 Yes Yes Yes Yes Yes<br />

Entity 4 ESC*s4U 1B 2A 73 34 55 Yes Yes Yes Yes Yes<br />

Font ESC*s0I 1B 2A 73 30 49 Yes Yes Yes Yes Yes<br />

Macro ESC*s1I 1B 2A 73 31 49 Yes Yes Yes Yes Yes<br />

User-defined<br />

Pattern<br />

ESC*s2I 1B 2A 73 32 49 Yes Yes Yes Yes Yes<br />

Symbol Set ESC*s3I 1B 2A 73 33 49 Yes Yes Yes Yes Yes<br />

Font Extended ESC*s4I 1B 2A 73 34 49 Yes Yes Yes Yes Yes<br />

Flush all<br />

complete<br />

pages<br />

ESC&r0F 1B 26 72 30 46 Yes Yes Yes Yes Yes<br />

Flush all page ESC&r1F<br />

data<br />

1B 26 72 31 46 Yes Yes Yes Yes Yes<br />

Request free<br />

memory status<br />

ESC*s1M 1B 2A 73 31 4D Yes Yes Yes Yes Yes<br />

Echo # = Echo value<br />

(–32767 to<br />

32767)<br />

PROGRAMMING HINTS<br />

End-of-Line<br />

Wrap<br />

ESC*s#X 1B 2A 73 #...#<br />

58<br />

1000<br />

1000+<br />

Yes Yes Yes Yes Yes<br />

Enabled ESC&s0C 1B 26 73 30 43 Yes Yes Yes Yes Yes<br />

Disabled ESC&s1C 1B 26 73 31 43 Yes Yes Yes Yes Yes<br />

Display ON ESCY 1B 59 Yes Yes Yes Yes Yes<br />

Functions<br />

OFF ESCZ 1B 5A Yes Yes Yes Yes Yes<br />

PCL Vector Graphics Switching/Set-Up Picture Frame<br />

Enter PCL Use previous ESC%0A 1B 25 30 41 Yes Yes Yes Yes Yes<br />

Mode PCL cursor<br />

position<br />

Use current<br />

HP-GL/2 pen<br />

position for<br />

cursor<br />

position<br />

ESC%1A 1B 25 31 41 Yes Yes Yes Yes Yes<br />

Enter HP- Use Previous ESC%0B 1B 25 30 42 Yes Yes Yes Yes Yes<br />

GL/2 Mode HP-GL/2 pen<br />

position<br />

Use current<br />

PCL cursor<br />

position<br />

ESC%1B 1B 25 31 42 Yes Yes Yes Yes Yes<br />

Current PCL<br />

coordinate<br />

system/old<br />

HPGL pen<br />

position<br />

ESC%2B 1B 25 32 42 Yes Yes Yes Yes Yes<br />

Current PCL<br />

coordinate<br />

system/curren<br />

t PCL CAP<br />

ESC%3B 1B 25 33 42 Yes Yes Yes Yes Yes<br />

HP-GL/2 Plot Horizontal ESC*c#K 1B 2A 63 #...# Yes Yes Yes Yes Yes<br />

Horizontal<br />

Size<br />

size in inches<br />

4B<br />

HP-GL/2 Plot<br />

Vertical Size<br />

Vertical size in ESC*c#L<br />

inches<br />

1B 2A 63 #...#<br />

4C<br />

Yes Yes Yes Yes Yes<br />

Set Picture Set anchor ESC*c0T 1B 2A 63 30 54 Yes Yes Yes Yes Yes<br />

Frame Anchor point to cursor<br />

Point position<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

7-61


Chapter 7 Emulation<br />

7-62<br />

Table 7.25. HP LaserJet PCL Commands (Sheet 14 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

Picture Frame<br />

Horizontal<br />

Size<br />

Picture Frame<br />

Vertical Size<br />

Colors<br />

Assign Color<br />

Index<br />

Color<br />

Component 1<br />

Color<br />

Component 2<br />

Color<br />

Component 3<br />

Color Lookup<br />

Tables<br />

Configure<br />

Image Data<br />

Download<br />

Dither Matrix<br />

Foreground<br />

Color<br />

Gamma<br />

Correction<br />

Monochrome<br />

Print Model<br />

Palette<br />

Control ID<br />

Palette<br />

Control<br />

Push/Pop<br />

Palette<br />

Render<br />

Algorithm<br />

Decipoints ESC*c#X 1B 2A 63 #...#<br />

58<br />

Decipoints ESC*c#Y 1B 2A 63 #...#<br />

59<br />

Index Number ESC*v#I 1B 2A 76 #...#<br />

49<br />

1st<br />

Component<br />

2nd<br />

Component<br />

3rd<br />

Component<br />

ESC*v#A 1B 2A 76 #...#<br />

41<br />

ESC*v#B 1B 2A 76 #...#<br />

42<br />

ESC*v#C 1B 2A 76 #...#<br />

43<br />

# of Bytes ESC*l#W 1B 2A 6C #...#<br />

57<br />

# of Bytes ESC*v#W 1B 2A 76 #...#<br />

57<br />

# of Bytes ESC*m#W 1B 2A 76 #...#<br />

49<br />

Index Number ESC*v#S 1B 2A 76 #...#<br />

53<br />

Gamma<br />

number<br />

Mixed<br />

Rendering<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

Yes Yes Yes Yes Yes<br />

Yes Yes Yes Yes Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

ESC*t#I 1B 2A 74 #...#<br />

49<br />

No No No No Yes<br />

ESC&b#M 1B 26 98 30 4D No No No No Yes<br />

Gray<br />

Equivalent<br />

ESC&b#M 1B 26 98 31 4D No No No No Yes<br />

Palette ID # ESC&p#I 1B 26 70 #...# 49 No No No No Yes<br />

Delete All<br />

Palettes in<br />

store<br />

ESC&p#C 1B 26 70 30 43 No No No No Yes<br />

Delete All<br />

Palettes in<br />

stack<br />

ESC*p#C 1B 26 70 31 43 No No No No Yes<br />

Delete Palette<br />

(last ID)<br />

ESC*p#C 1B 26 70 32 43 No No No No Yes<br />

Copy Palette ESC*p#C 1B 26 70 36 43 No No No No Yes<br />

Push Palette ESC*p#P 1B 2A 70 30 50 No No No No Yes<br />

Pop Palette ESC*p#P 1B 2A 70 31 50 No No No No Yes<br />

Continuous<br />

tone detail<br />

ESC*t#J 1B 2A 74 30 4A No No No No Yes<br />

Snap to<br />

primaries<br />

ESC*t#J 1B 2A 74 31 4A No No No No Yes<br />

Snap<br />

black/white,<br />

colors to black<br />

ESC*t#J 1B 2A 74 32 4A No No No No Yes<br />

Device best<br />

dither<br />

ESC*t#J 1B 2A 74 33 4A No No No No Yes<br />

Error<br />

diffusion<br />

ESC*t#J 1B 2A 74 34 4A No No No No Yes<br />

Monochrome<br />

device best<br />

dither<br />

ESC*t#J 1B 2A 74 35 4A No No No No Yes<br />

Monochrome<br />

error diffusion<br />

ESC*t#J 1B 2A 74 36 4A No No No No Yes<br />

Cluster<br />

ordered dither<br />

ESC*t#J 1B 2A 74 37 4A No No No No Yes<br />

Monochrome<br />

cluster<br />

ordered<br />

ESC*t#J 1B 2A 74 38 4A No No No No Yes


Table 7.25. HP LaserJet PCL Commands (Sheet 15 of 15)<br />

Function Parameter Command Hexadecimal<br />

Value<br />

User-defined<br />

dither<br />

Monochrome<br />

user-defined<br />

dither<br />

HP LaserJet Emulation (Mode 6)<br />

ESC*t#J 1B 2A 74 30 4A No No No No Yes<br />

ESC*t#J 1B 2A 74 31 30<br />

4A<br />

Ordered dither ESC*t#J 1B 2A 74 31 31<br />

4A<br />

Monochrome<br />

ordered dither<br />

Noise ordered<br />

dither<br />

Monochrome<br />

noise ordered<br />

dither<br />

Continuous<br />

tone smooth<br />

Mono,<br />

continuous<br />

tone detail<br />

Mono,<br />

continuous<br />

tone smooth<br />

Continuous<br />

tone basic<br />

Mono<br />

continuous<br />

tone basic<br />

ESC*t#J 1B 2A 74 31 32<br />

4A<br />

ESC*t#J 1B 2A 74 31 33<br />

4A<br />

ESC*t#J 1B 2A 74 31 34<br />

4A<br />

ESC*t#J 1B 2A 74 31 35<br />

4A<br />

ESC*t#J 1B 2A 74 31 36<br />

4A<br />

ESC*t#J 1B 2A 74 31 37<br />

4A<br />

ESC*t#J 1B 2A 74 31 38<br />

4A<br />

ESC*t#J 1B 2A 74 31 39<br />

4A<br />

1000<br />

1000+<br />

1800<br />

1900<br />

3800<br />

6300<br />

6750<br />

6900<br />

9100DN<br />

9500DN<br />

8000C<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

No No No No Yes<br />

Select Palette Palette ID # ESC&p#S 1B 26 70 #...# 53 No No No No Yes<br />

Set Viewing # of Bytes ESC*l#W 1B 2A 69 #...# No No No No Yes<br />

Illuminant<br />

57<br />

Simple Color 3-Plane<br />

Device CMY<br />

Palette<br />

ESC*r#U 1B 2A 72 2D 33<br />

55<br />

No No No No Yes<br />

1-Plane K<br />

palette<br />

ESC*r#U 1B 2A 72 31 55 No No No No Yes<br />

3-Plane<br />

Device RGB<br />

Palette<br />

ESC*r#U 1B 2A 72 33 55 No No No No Yes<br />

Transfer # of Bytes ESC*b#V 1B 2A 98 #...# No No No No Yes<br />

Raster (Plane)<br />

56<br />

a Not supported by HP PCL.<br />

7-63


Chapter 7 Emulation<br />

7-64<br />

HP-GL/2 Context Printer Commands<br />

In the command tables below, parameters in brackets are optional.<br />

Table 7.26. HP-GL/2 Context Printer Commands (Sheet 1 of 2)<br />

Command Mnemonic Parameters<br />

DUAL CONTEXT EXTENSIONS<br />

ENTER PCL MODE ESC%#A 0 = Retain previous PCL cursor position<br />

1 = Use current HP-GL/2 pen position<br />

RESET ESCE None<br />

PRIMARY FONT Fl Font_lD<br />

SECONDARY FONT FN Font_lD<br />

SCALABLE OR BITMAPPED FONTS SB<br />

PALETTE EXTENSIONS<br />

0 = Scalable fonts only<br />

1 = Bitmapped fonts allowed<br />

Color Range CR [b_ref_red, w_ref_red, b_ref_grn,<br />

w_ref_grn, b_ref_blue, w_ref_blue];<br />

Number of Pens NP [n];<br />

Pen Color Assignment PC [pen [,red, green, blue]];<br />

TRANSPARENCY MODE TR 0 = Off (opaque)<br />

1 = On (transparent)<br />

SCREENED VECTORS<br />

VECTOR GROUP<br />

SV [screen_type[,shading[,index]]]<br />

ARC ABSOLUTE AA x_center,y_center,sweep_angle<br />

[,chord_angle];<br />

ARC RELATIVE AR x_increment,y_increment,sweep_angle<br />

[,chord_angle];<br />

ABSOLUTE ARC THREE POINT AT x_inter,y_inter,x_end,y_end<br />

[,chord_angle];<br />

PLOT ABSOLUTE PA [x,y...[,x,y]];<br />

PLOT RELATIVE PR [x,y...[,x,y]];<br />

PEN DOWN PD [x,y...[,x,y]];<br />

PEN UP PU [x,y...[,x,y]];<br />

RELATIVE ARC THREE POINT RT x_incr_inter,y_incr_inter,x_incr_end,<br />

y_incr-end [,chord_angle];<br />

POLYLINE ENCODED<br />

POLYGON GROUP<br />

PE [flag[val]coord_pair...[flag[val]coord<br />

_pair]];<br />

BEZIER RELATIVE BR kind, x1_control_pt_increments,<br />

y1 _control_pt_increments,<br />

x2 _control_pt increments,<br />

y2_control_ pt_increments,<br />

x3_control_pt_increments,<br />

y3_control_pt_increments,<br />

[,params ... [,params]];<br />

CIRCLE Cl radius [,chord_angle];<br />

FILL RECTANGLE ABSOLUTE RA x_coordinate,y_coordinate;<br />

FILL RECTANGLE RELATIVE RR x_increment,y_increment;<br />

EDGE RECTANGLE ABSOLUTE EA x_coordinate,y_coordinate;<br />

EDGE RECTANGLE RELATIVE ER x_increment,y_increment;<br />

FILL WEDGE WG radius,start_angle,<br />

sweep_angle [,chord_angle];<br />

EDGE WEDGE EW radius,start_angle,<br />

sweep_angle[,chord_angle];<br />

POLYGON MODE PM polygon_definition;<br />

FILL POLYGON FP<br />

EDGE POLYGON<br />

CHARACTER GROUP<br />

EP<br />

SELECT STANDARD FONT SS None


Table 7.26. HP-GL/2 Context Printer Commands (Sheet 2 of 2)<br />

Command Mnemonic Parameters<br />

SELECT ALTERNATE FONT SA None<br />

ABSOLUTE DIRECTION Dl [run,rise];<br />

RELATIVE DIRECTION DR [run,rise];<br />

ABSOLUTE CHARACTER SIZE Sl [width,height];<br />

RELATIVE CHARACTER SIZE SR [width,height];<br />

CHARACTER SLANT SL [tangent_of_angle];<br />

EXTRA SPACE ES [width[,height]]<br />

HP LaserJet Emulation (Mode 6)<br />

STANDARD FONT DEFINITION SD [kind,value...[,kind,value]];<br />

ALTERNATE FONT DEFINITION AD [kind,value...[,kind,value]];<br />

CHARACTER FILL MODE CF [fill_mode[,edge_pen]];<br />

LABEL ORIGIN LO [position];LABEL<br />

LABEL LB [char...[,char]]lbterm<br />

DEFINE LABEL TERMINATOR DT [1bterm[,mode]];<br />

CHARACTER PLOT CP [spaces,lines];<br />

TRANSPARENT DATA TD [mode];<br />

DEFINE VARIABLE TEXT PATH<br />

LINE AND FILL ATTRIBUTES GROUP<br />

DV [path[,line]];<br />

LINE TYPE LT [line_type[,pattern_length[,mode]]];<br />

LINE ATTRIBUTES LA [kind,value...[,kind,value]];<br />

PEN WIDTH PW [width[,pen]];<br />

PEN WIDTH UNIT SELECTION WU [type];<br />

SELECT PEN SP [pen]; (required, 1 for black or O for white)<br />

SYMBOL MODE SM [char];<br />

FILL TYPE FT [fill_type[,option1 [,option2]]];<br />

ANCHOR CORNER AC [x_coordinate,y_coordinate];<br />

RASTER FILL DEFINITION RF [index[,width,height,pen_nbr...pen_nbr]];<br />

(width and height must be less than 255)<br />

USER DEFINED LINE TYPE<br />

CONFIGURATION AND STATUS GROUP<br />

UL [index[,gap1...gapn]];<br />

Advance Full Page PG [n];<br />

SCALE SC [x1,x2,y1,y2[,type[,left,bottom]]];<br />

or<br />

[x1,xfactor,y1,yfactor,2];<br />

INPUT WINDOW IW [xLL,yLL,xUR,yUR];<br />

INPUT P1 AND P2 IP [p1x,p1y[,p2x,p2y]];<br />

INPUT RELATIVE P1 AND P2 IR [p1x,p1y[,p2x,p2y]];<br />

DEFAULT VALUES DF<br />

INITIALIZE IN [n];<br />

Replot RP [n];<br />

ROTATE COORDINATE SYSTEM<br />

TECHNICAL GRAPHICS EXTENSION<br />

RO [angle];<br />

Begin Plot BP [kind, value...[,kind, value]];<br />

Chord Tolerance Mode CT [mode];<br />

Download Character DL [charnum [[,up], x, y...[,up],x,y]];<br />

Frame Advance FR<br />

Media Type MT [type];<br />

Merge Control MC [mode [, opcod]];<br />

Output Error OE<br />

Output Hardclip Limits OH<br />

Output Identification OI<br />

Output P1 and P2 OP<br />

Output Status OS<br />

Pixel Placement PP [mode];<br />

Plot Size PS [length [,width]];<br />

Quality Level QL [quality level]<br />

7-65


Chapter 7 Emulation<br />

7-66<br />

PJL Syntax Comparison<br />

Table 7.27. PJL Syntax Comparison<br />

Suggested Syntax Rules<br />

[ ] Items in brackets “[ . . . ]” indicate optional parameters.<br />

< ><br />

Special Identifiers<br />

Identifies a control code character<br />

Horizontal tab character (ASCII 9).<br />

Line feed character (ASCII 10).<br />

Carriage return character (ASCII 13).<br />

Space character (ASCII 32).<br />

White space<br />

Escape character (ASCII 27).<br />

Form feed character (ASCII 12).<br />

<br />

PJL Commands<br />

Printable characters (ASCII characters 33 through 126) and <br />

COMMENT @PJL COMMENT [] <br />

DEFAULT @PJL DEFAULT [LPARM: personality] variable = value [] <br />

DINQUIRE @PJL DINQUIRE [LPARM: personality] variable [] <br />

Response @PJL DINQUIRE [LPARM: personality] variable value <br />

<br />

ECHO @PJL ECHO [] [] <br />

Response @PJL ECHO [] <br />

ENTER @PJL ENTER LANGUAGE = personality[] <br />

EOJ @PJL EOJ [NAME = job name] [] <br />

INFO @PJL INFO read only variable [] <br />

Response @PJL INFO read only variable [1 or more lines of printable characters or<br />

followed by ]<br />

INITIALIZE @PJL INITIALIZE [] <br />

INQUIRE @PJL INQUIRE [LPARM: personality] variable [] <br />

Response @PJL INQUIRE [LPARM: personality] variable value <br />

JOB @ PJL JOB [NAME = “job name”] [START<br />

OPMSG @PJL OPMSG DISPLAY = “message” [] ,<br />

RDYMSG @PJL RDYMSG DISPLAY = “message” [] ,<br />

RESET @PJL RESET [] <br />

SET @PJL SET [LPARM: personality] variable = value [] ,<br />

STMSG @PJL STMSG DISPLAY = “message” [] ,<br />

Response @PJL STMSG DISPLAY = “message” <br />

UEL/SPJL %-12345X<br />

USTATUS @PJL USTATUS variable = value [] ,<br />

Response @PJL USTATUS variable <br />

[1 or more lines of printable characters or followed by ],<br />

USTATUSOFF @PJL USTATUSOFF [] <br />

PJL @PJL []


ISO-15 Italian (0I)<br />

LaserJet Symbol Sets<br />

ISO-60 Norway (0D)<br />

HP LaserJet Emulation (Mode 6)<br />

7-67


Chapter 7 Emulation<br />

ECMA-94 Latin 1 (0N) ISO 11 Sweden (0S)<br />

7-68


ISO-6 ASCII (0U) ISO-4 U. K. (1E)<br />

HP LaserJet Emulation (Mode 6)<br />

7-69


Chapter 7 Emulation<br />

ISO-69 France (1F) ISO-21 Germany (1G)<br />

7-70


US Legal (1U) ISO Latin 2 (2N)<br />

HP LaserJet Emulation (Mode 6)<br />

7-71


Chapter 7 Emulation<br />

ISO-17 Spain (2S) PC Cyrillic (3R)<br />

7-72


PS math (5M) ISO Latin 5 (5N)<br />

HP LaserJet Emulation (Mode 6)<br />

7-73


Chapter 7 Emulation<br />

Windows Latin 5 (5T) MS publishing (6J)<br />

7-74


ISO Latin 6 (6N) Desktop (7J)<br />

HP LaserJet Emulation (Mode 6)<br />

7-75


Chapter 7 Emulation<br />

Greek-8 (8G) Math-8 (8M)<br />

7-76


Turkish-8 (8T) HP Roman-8 (8U)<br />

HP LaserJet Emulation (Mode 6)<br />

7-77


Chapter 7 Emulation<br />

Windows Latin 2 (9E) Windows Greek (9G)<br />

7-78


PC-1004 (9J) ISO Latin 9 (9N)<br />

HP LaserJet Emulation (Mode 6)<br />

7-79


Chapter 7 Emulation<br />

Win Cyrillic (9R) PC-Turkish (9T)<br />

7-80


Windows (9U) PC-851 Greek (10G)<br />

HP LaserJet Emulation (Mode 6)<br />

7-81


Chapter 7 Emulation<br />

PS text (10J) ISO Cyrillic (10N)<br />

7-82


PC-855 Serbia (10R) PC-869 Greek (11G)<br />

HP LaserJet Emulation (Mode 6)<br />

7-83


Chapter 7 Emulation<br />

PC-8 Greek (12G) Macintosh (12J)<br />

7-84


ISO Greek (12N) USSR-GOST (12R)<br />

HP LaserJet Emulation (Mode 6)<br />

7-85


Chapter 7 Emulation<br />

ABICOMP Brazil (13P) PC-8 Bulgarian (13R)<br />

7-86


PC-8 Greek/437G (14G) ABICOMP Int. (14P)<br />

HP LaserJet Emulation (Mode 6)<br />

7-87


Chapter 7 Emulation<br />

PC Ukrainian (14R) Pi font (15U)<br />

7-88


PC-857 Turkish (16U) PC-852 Latin 2 (17U)<br />

HP LaserJet Emulation (Mode 6)<br />

7-89


Chapter 7 Emulation<br />

ISO-10646 (18N) PC-853 Turkish (18U)<br />

7-90


Winbalt (19L) Windows Latin 1 (19U)<br />

HP LaserJet Emulation (Mode 6)<br />

7-91


Chapter 7 Emulation<br />

PC-860 Portugal (20U) PC-861 Iceland (21U)<br />

7-92


PC-863 Canada (23U) PC-8 Polish (24Q)<br />

HP LaserJet Emulation (Mode 6)<br />

7-93


Chapter 7 Emulation<br />

PC-865 Norway (25U) PC-775 (26U)<br />

7-94


PC-8 PC Nova (27Q)<br />

HP LaserJet Emulation (Mode 6)<br />

7-95


Chapter 7 Emulation<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

7-96<br />

Basic<br />

The HP 7550A emulation applies only to the printing systems that handle A3-size paper.<br />

The printing system emulates the Hewlett-Packard plotter model HP 7550A and uses the<br />

Kyocera Graphics Language (KC-GL). While it shares features with the HP-GL language,<br />

it is designed to provide additional features the plotter cannot give.<br />

KC-GL uses a simple mnemonic graphic language consisting of two-letter instructions.<br />

Some typical examples are PA for Plot to Absolute coordinates and SP for Select a Pen.<br />

The KC-GL instructions are summarized at the end of this section.<br />

To set the KC-GL for power-up emulation, send the printer the following FRPO command:<br />

!R! FRPO P1, 8; EXIT;<br />

The SEM (Set EMulation) 8; command temporarily switches the printer to the KC-GL<br />

emulation.<br />

In the HP 7550A emulation the user can receive plotting status information from the<br />

printer via the RS-232C interface. Status information is not available when the parallel<br />

interface is used.<br />

This section explains basic information about the KC-GL language.<br />

KC-GL Instruction Format<br />

The syntax for KC-GL instructions consists of two letters followed by parameters (if<br />

any), then a terminator as shown below.<br />

Optional separator<br />

(Commas or spaces)<br />

Not always required<br />

Required<br />

separator<br />

Terminator (A semi-colon or<br />

line feed, not required if<br />

instructions continue)<br />

Some instructions use no parameters. For two or more parameters, they must be separated<br />

by at least one comma or space. In some cases, a plus (+) or minus (-) sign can be<br />

used as a separator. A comma or space can also be used as a separator before, after, or<br />

between instructions, and after a terminator. When a series of instructions is coded, the<br />

series should be terminated by a semicolon, but no semicolon is required between<br />

instructions in the series.<br />

The printing system executes instructions as soon as it receives them. When too many<br />

instructions are issued, the printing system executes the allowed number of parameters<br />

and reports error number 2 (wrong number of parameters).


Parameter Formats<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

The SM (Symbol Mode) instruction defines the first succeeding character as a symbol<br />

character. The DT (Define label Terminator) instruction defines the first succeeding<br />

character as a character plot terminator.<br />

The character plot terminator is used to terminate the LB (LaBel) instruction. The default<br />

terminator is the ETX character (End of Text), which uses ASCII code 3. If this terminator<br />

is inconvenient, the DT instruction enables the user to change the character plot terminator<br />

to a different character.<br />

KC-GL parameters are specified in one of the following formats:<br />

Integer<br />

When not scaled, integers are valid in the range from –2 23 to 2 23 –1 plotter units. Digits<br />

to the right of the decimal point are ignored. If no sign is specified, the value is assumed<br />

to be positive.<br />

Real number (decimal)<br />

Real numbers from –2 23 to 2 23 –1 are valid. They can include up to eight digits to the<br />

right of the decimal point. If no sign is specified, the value is assumed to be positive.<br />

Scaled real number (scaled decimal)<br />

Real numbers from –2 23 to 2 23 –1 can be used with up to eight digits to the right of the<br />

decimal point. If no sign is specified, the value is assumed to be positive. Scaled real<br />

numbers are used only with scaled user units. All KC-GL parameters that are interpreted<br />

as user units are scaled.<br />

Character string<br />

A combination of characters, numeric expressions, and string variables.<br />

When coding an instruction with two or more parameters (Examples: PA, PR, PU, PD)<br />

remember that the parameters must be set apart by a separator.<br />

KC-GL Environment Options<br />

The FRPO G0 command establishes various options for the KC-GL environment. The<br />

following table lists the meanings of the individual bits in the command. Each meaning<br />

is explained in the following sections according to the bit position.<br />

Table 7.28. FRPO G0 Command Options<br />

Bit Position Bit Value Logic Value Description<br />

0 0 0 Plot coordinate mode A<br />

1 1 Plot coordinate mode B<br />

1 0 0 Form feed in response to SP<br />

2 1 SP<br />

2 0 0 Automatic plot coordinate transition<br />

4 1 Fixed plot coordinate<br />

3 0 0 Normal mode<br />

8 1 Enhance mode<br />

7-97


Chapter 7 Emulation<br />

7-98<br />

Table 7.28. FRPO G0 Command Options<br />

Bit Position Bit Value Logic Value Description<br />

4 0 0 Landscape page orientation<br />

16 1 Page orientation to FRPO C1<br />

5 0 0 Default cursor at top left<br />

32 1 Default cursor at bottom left<br />

Plot Coordinates (bit 0)<br />

This bit defines one of two plotting coordinate modes. (See Figure 7. 29. on page 98.)<br />

0 = Mode A<br />

1 = Mode B<br />

In mode A, the origin (0, 0) starts at bottom left. In mode B, the origin starts at the center<br />

of the page.<br />

Response to SP Instruction (bit 1)<br />

This bit defines the printing system response to the SP (Select Pen) instruction.<br />

0 = Printing System feeds out a page when it receives a SP; or SP 0; instruction.<br />

1 = Printing System returns the pen to the stall from which it came, in other words, it<br />

prints nothing when it receives a SP; or SP 0; instruction.<br />

Figure 7. 29. Plot Coordinates<br />

Mode A (G0, 0;)<br />

Mode B (G0, 1;)<br />

Automatic Plot Coordinate Mode (bit 2)<br />

0 = Printing System changes the plot coordinate from mode A to mode B when it<br />

receives a IP (Input P1 and P2) instruction using the negative parameter value.<br />

When the IN<br />

(INitialize) instruction is later given, the printing system reverts to mode A.


Pen Selection<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

1 = Printing System remains in mode A even when the IP instruction includes a negative<br />

parameter value.<br />

Enhance Mode (bit 3)<br />

This bit supports the enhance mode of HP 7550A and HP 758X plotters.<br />

0 = Normal mode (HP 7550A standard mode and HP 758X emulation mode).<br />

1 = Enhance mode (HP 7550A enhance mode and HP 758X standard mode).<br />

The enhance mode should be turned on when the printing system uses the HP 758X<br />

mode. The enhance mode affects the KC-GL IW (Input Window), OW (Output Window),<br />

and UC (plot User-defined Character) instructions as follows:<br />

IW: User units are used for specifying the parameters in scaling.<br />

OW: Window outputs are made in user units in scaling.<br />

UC: Values for the pen control, increments in x- and y-coordinates, the width and height<br />

of characters differ from the normal (non-enhance) mode as follows.<br />

Pen down Pen up x/y increment Char. width Char. Height<br />

Normal mode ≥99 ≤ -99 -98 to +98 6 grids 16 grids<br />

Enhance mode ≥9999 ≤ -9999 -9998 to +9998 48 grids 64 grids<br />

Page Orientation (bit 4)<br />

This bit defines page orientation.<br />

0 = Landscape<br />

1 = Observes the FRPO C1 value.<br />

Default Cursor Position (bit 5)<br />

This bit defines the cursor position for the page at power-up.<br />

0 = Upper-left corner of the page (X min , Y max )<br />

1 = Lower-left corner of the page (X min , Y min )<br />

On an actual plotter, pen thickness and color are selected by physically installing pens.<br />

On the printing system, the pen thickness is established with a PRESCRIBE command,<br />

or by a simple front-panel operation.<br />

Format<br />

!R! FRPO Gn, xx; EXIT;<br />

Parameters<br />

n:<br />

pen number:<br />

1 = pen 1<br />

2 = pen 2<br />

3 = pen 3<br />

4 = pen 4<br />

5 = pen 5<br />

6 = pen 6<br />

7-99


Chapter 7 Emulation<br />

7-100<br />

Note<br />

7 = pen 7<br />

8 = pen 8<br />

xx:<br />

Line-width (in dots): 0 to 99 (0 - line not printed)<br />

Positions in the plot area can be defined as plotter units or user units. These units are<br />

explained next.<br />

Since the pen thickness is measured in the unit of dot, printing an object in the 600-dpi resolution<br />

will result in the thickness of lines being half that expected in the 300-dpi resolution.<br />

To avoid this, switch the printing resolution to 300 dpi using the FRPO N8 command<br />

or, temporarily, using the PRESCRIBE RESL command. Alternatively, if you need to use the<br />

600-dpi resolution, increase the pen thickness to the double.<br />

Reducing Data Larger Than A2 Size<br />

The KC-GL can print the data of paper sizes larger than A2 size reducing it onto a paper<br />

size specified using the SPSZ command. Reduction of data is achieved by the FRPO J9<br />

parameter or from the printing system’s control panel. See below.<br />

Format<br />

!R! FRPO J9, x; EXIT;<br />

x:<br />

data size:<br />

0 = no reduction<br />

1 = A2<br />

2 = A1<br />

3 = A0<br />

4 = B3<br />

5 = B2<br />

6 = B1<br />

7 = B0<br />

Plotter Units and User Units<br />

Plotter Units<br />

The plot area is subdivided into a grid with 0.025-mm steps. Each step is a plotter unit:<br />

the smallest unit of plotting motion. One millimeter corresponds to approximately 40<br />

plotter units. In the plot area, you can specify positions in plotter units from –2 23 to<br />

2 23 –1 (in the PA instruction). When using plotter units, only integer values are valid.<br />

User Units<br />

The Scale instruction (SC) establishes a system of user units in the plot area by specifying<br />

the coordinates of two scaling points (P1 and P2). Parameters of the Scale instruction<br />

can use integer values from –2 23 to 2 23 –1; any digits to the right of the decimal place will<br />

be ignored. (Plot instructions use the same range of parameter values, but digits to the<br />

right of the decimal point are valid.) If designating 0, 0 and 1, 1 as scaling points, all data<br />

will be real numbers between 0 and 1.


Setting the Scaling Points<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

At power-up, scaling point P1 will be in the lower left corner of the paper, the default<br />

plot position. Point P2 is always diagonally opposite to P1. These two points define the<br />

diagonal of a rectangle, which by default is centered on the paper. P1 and P2 can be<br />

moved by an instruction which defines any rectangle, independent of the actual paper<br />

size.<br />

The default positions of the scaling points in modes A and B are listed at the end of this<br />

section as Coordinate Values.<br />

Sample KC-GL Program<br />

The following file draws circles according to the KC-GL instructions. The result appears<br />

in Figure 7. 30. on page 102.<br />

IN; “Initialize plotter”<br />

IP0,0,400,400; “P1 and P2: 1-cm square 1 ”<br />

SC0,1,0,1; “Scale: user unit = 1 cm”<br />

DT ;<br />

SP1; “Select pen 1”<br />

PA10,19; “Move pen”<br />

CI.1;PR0,-.1; “Draw four circles”<br />

CI.2;PR0,-.2;<br />

CI.4;PR0,-.4;<br />

CI.8;PR0,-.8;<br />

SP2; “Select pen 2”<br />

CI1.6;PR0,-1.6; “Draw two circles”<br />

CI3.2;PR0,-3.2;<br />

SP8; “Select pen 8”<br />

CI.1;PR.5,-.5; “Draw circle”<br />

SP2; “Select pen 2”<br />

CS0;SI.2,.3;LBCURSOR* ; "Print label 2 ”<br />

SP;<br />

1 This instruction locates P1 at 0, 0 and P2 at 400, 400 in plotter units. 400 plotter units=1 cm (0.025 mm x 400).<br />

2 ETX (End of Text, character code 03) is required as a terminator.<br />

7-101


Chapter 7 Emulation<br />

7-102<br />

Figure 7. 30. KC-GL Sample Program<br />

Plotter Status Information<br />

When the RS-232C interface is used, in addition to receiving data, the plotter (printing<br />

system) can return information such as the current pen position, pen status, and error<br />

numbers. This return information applies to the following KC-GL instructions.<br />

Instruction Description<br />

OA Output Actual position and pen status<br />

OC Output Commanded position and pen status<br />

OE Output Error<br />

OF Output Factors<br />

OH Output Hard-clip limits<br />

OI Output Identification<br />

OL Output Label length<br />

OO Output Options<br />

OP Output P1 and P2<br />

OS Output Status<br />

OT Output carousel Type<br />

OW Output Window<br />

All of these instructions use the same syntax and must be followed immediately by a terminator.<br />

They use no parameters.<br />

The functions of these instructions appear on the following pages. The last ASCII character<br />

sent by the plotter (printing system) in response to the instruction is a terminator,<br />

which will be designated here by the symbol TERM. The terminator is actually a carriage<br />

return unless changed by the ESC.M operator.


OA [Output Actual position and pen status]<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

The plotter returns the x- and y-coordinates of the current pen position and indicates<br />

whether the pen is currently up or down. This information is given by ASCII-coded integers<br />

in the following format:<br />

X, Y, P TERM<br />

X: x-coordinate in absolute plotter units<br />

Y: y-coordinate in absolute plotter units<br />

P: 0 if the pen is up; 1 if the pen is down<br />

OC [Output Commanded position and pen status]<br />

OE [Output Error]<br />

OF [Output Factors]<br />

The plotter returns the x- and y-coordinates and pen status for the last valid pen positioning<br />

instruction. The pen position and status are ASCII-coded in the same way as the OA<br />

instruction. Coordinate values are given in plotter units if scaling is off, or user units if<br />

scaling is on.<br />

The plotter returns a decimal error number for the instruction executed immediately<br />

before the OE instruction. The error code is converted to a non-negative ASCII-coded<br />

integer whose identity is given in the following table.<br />

Error Number Description<br />

0 No error<br />

1 Instruction not recognized<br />

2 Wrong number of parameters<br />

3 Illegal parameter<br />

4 (Reserved)<br />

5 Unknown character set<br />

6 Plot position overflow<br />

7 (Reserved)<br />

This instruction returns the number of plotter units per millimeter on each coordinate<br />

axis, as follows:<br />

40, 40 TERM<br />

This response indicates that plotter units are equal to 0.025 mm on both the x- and yaxes.<br />

The actual number of plotter units per millimeter is approximately 40.<br />

OH [Output Hard-clip limits]<br />

This instruction returns the lower left and upper right limiting coordinates of the plot<br />

area, in the following format:<br />

XLL, YLL, XUR, YUR TERM<br />

LL: lower left<br />

UR: upper right<br />

7-103


Chapter 7 Emulation<br />

7-104<br />

OI [Output Identification]<br />

This instruction returns a character string indicating the plotter model being emulated, as<br />

follows:<br />

KC-GL option Plotter model<br />

(FRPO G0)<br />

Mode A 7550A TERM<br />

Mode B 7596A TERM<br />

OL [Output Label length]<br />

This instruction returns information on the contents of the label buffer. This may be used<br />

together with the BL instruction for accessing the necessary space for the buffered label<br />

before printing it.<br />

OO [Output Options]<br />

length, characters, linefeeds, TERM<br />

length The length of the longest line in the buffered label in character plot cell spaces.<br />

characters An integer representing the number of printing characters and spaces in the<br />

longest line of the buffered label. A backspace is counted as –1, whereas a<br />

character with automatic backspace counts as zero.<br />

linefeeds An integer representing the net number of linefeeds that will occur when the<br />

buffered label is drawn. An inversed line feed (VT) counts as –1, and a linefeed<br />

(LF) counts as +1.<br />

This instruction returns eight ASCII-coded integers separated by commas. The integers<br />

indicate plotter options supported by the printing system, as follows:<br />

OP [Output P1 and P2]<br />

This instruction returns the coordinate values of the current scaling points P1 and P2.<br />

The coordinates are given in plotter units by ASCII-coded integers, as follows:<br />

P1x, P1y, P2x, P2y TERM<br />

Buffer allocation<br />

Polygon instruction<br />

Arc and circle plotting instructions are supported.<br />

Pen selection is supported.<br />

Pen is not down until the paper feeding completes<br />

in auto-feed mode.


OS [Output Status]<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

This instruction returns an integer from 0 to 255 giving one byte of status information, as<br />

follows:<br />

status TERM<br />

The following table describes the individual bits in the status byte. After powered up or<br />

an IN instruction, bit positions 3 and 4 turn on making the bit value to be 24. Bit position<br />

3 is cleared subsequently after delivering the status.<br />

Bit Position Bit Value Description<br />

0 1 The pen is down.<br />

1 2 P1 or P2 has been changed. This bit is cleared when actual P1 and<br />

P2 values are read via the RS-232C interface, or when the IN<br />

instruction is executed.<br />

2 4 A digitized point is ready for output. This bit is cleared when the<br />

point is output via the RS-232C interface, or when the IN instruction<br />

is executed.<br />

3 8 Initialized. This bit is cleared when a status byte is output via the<br />

RS-232C interface, or when the IN instruction is executed.<br />

4 16 Ready to receive next data.<br />

5 32 Error. This bit is cleared when an error number is output via the RS-<br />

232C interface, or when the IN instruction is executed.<br />

6 64 SRQ was set.<br />

7 128 (Reserved)<br />

OT [Output carousel Type]<br />

This instruction delivers information on the current carousel type and stall occupancy.<br />

This may be used to determine those information in a remote location.<br />

Response:<br />

OT TERM<br />

type, map TERM<br />

The current carousel type and its pen map are delivered as 2 ASCII integers, each separated<br />

by comma. The type field can contain the values –1 through 4, which have the following<br />

values:<br />

Bit value when stall is occupied Pen stall<br />

1 1<br />

2 2<br />

4 3<br />

8 4<br />

16 5<br />

32 6<br />

64 7<br />

128 8<br />

7-105


Chapter 7 Emulation<br />

7-106<br />

OW [Output Window]<br />

This instruction returns the x- and y-coordinates of two diagonally opposite corners of<br />

the current plottable area. Four ASCII-coded integers indicating the lower left and upper<br />

right corner coordinates are returned by using the following format:<br />

XLL, YLL, XUR, YUR, TERM<br />

LL: lower left<br />

UR: upper right<br />

Device-Control Instructions<br />

KC-GL uses device-control instructions to return buffer status information and other status<br />

information from the printing system via the RS-232C interface. Status information<br />

cannot be output on the parallel interface. If device-control instructions are received via<br />

the parallel interface, they are ignored.<br />

The device-control instructions for status output appear below.<br />

Output Buffer Space (ESC.B)<br />

This instruction returns 0 if the receive buffer is full, and 1024 if the receive buffer is<br />

empty.<br />

Output Extended Error (ESC.E)<br />

This instruction normally returns 0, if an error has not occurred, and returns 15 if a framing<br />

error, parity error, or overrun error has occurred.<br />

Output Buffer Size Label (ESC.L)<br />

This instruction always returns the value 1024.<br />

Output Extended Status (ESC.O)<br />

This instruction returns printing system status information regarding:<br />

• On-line status<br />

• Cover open<br />

• Paper empty<br />

• Paper jam<br />

• Buffer full<br />

The following table describes this status information.The paper feed source is the internal<br />

cassette at all time. A complete list of device-control instructions appear in Device-<br />

Control Instructions on page 113.<br />

Table 7.31. Status Information<br />

Response Description<br />

1 The buffer is full.<br />

9 The buffer is empty (normal).<br />

17 The buffer is full and the printing system is off-line.


Table 7.31. Status Information<br />

Fonts and Symbol Sets in KC-GL<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

Response Description<br />

25 The buffer is empty and the printing system is off-line.<br />

33 The buffer is full with the printing system under one of the following conditions:<br />

cover open, paper empty, or paper jam.<br />

41 The buffer is empty with the printing system under one of the following conditions:<br />

cover open, paper empty, or paper jam.<br />

KC-GL uses a special stroke font. The fonts employed in the other emulations cannot be<br />

used in KC-GL. The default height and width of the stroke font vary depending on the<br />

paper size. The following character sets are available for the KC-GL emulation.<br />

Table 7.32. KC-GL Fonts and Symbol Sets<br />

No. Symbol Set ISO No.<br />

0/10 ANSI ASCII 006<br />

1/11 HP 9825 Character Set –<br />

2/12 French/German –<br />

3/13 Scandinavian –<br />

4/14 Spanish/Latin American –<br />

6/16 JIS ASCII 014<br />

7/17 Roman Extensions –<br />

8/18 Katakana 013<br />

9/19 ISO IRV (International <strong>Reference</strong> Version) 002<br />

30/40 ISO Swedish 010<br />

31/41 ISO Swedish For Names 011<br />

32/42 ISO Norwegian Version 1 060<br />

33/43 ISO German 021<br />

34/44 ISO French 025<br />

35/45 ISO United Kingdom 004<br />

36/46 ISO Italian 015<br />

37/47 ISO Spanish 017<br />

38/48 ISO Portuguese 016<br />

39/49 ISO Norwegian Version 2 061<br />

7-107


Chapter 7 Emulation<br />

Roman Extensions (7)<br />

KC-GL Symbol Sets<br />

7-108<br />

ANSI ASCII (0)


Katakana (8) KC-GL International Characters<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

7-109


Chapter 7 Emulation<br />

7-110<br />

KC-GL Limits<br />

This section provides limit values for the various KC-GL parameters. Plotter units are<br />

used unless otherwise specified.<br />

Standard Character Sizes<br />

Table 7.33. Standard Character Sizes<br />

Paper size Width (mm) Height (mm)<br />

A4 0.187 0.269<br />

A3 0.285 0.375<br />

Letter 0.187 0.269<br />

Ledger 0.285 0.375<br />

Maximum Plot Area<br />

Table 7.34. Maximum Plot Area<br />

Paper size X Y<br />

Plotter units Dots Plotter units Dots<br />

A4 11477 3389 7999 2362<br />

A3 16398 4842 11487 3392<br />

Letter 10776 3182 8236 2432<br />

Ledger 16872 4982 10776 3182<br />

Coordinate Values<br />

Table 7.35. Coordinate Values, Mode A, RO 0<br />

Paper size P1x P1y P2x P2y<br />

A4 430, 200 10430, 7400<br />

A3 380, 430 15580, 10430<br />

Letter 80, 320 10080, 7520<br />

Ledger 620, 80 15820, 10080<br />

Table 7.36. Coordinate Values, Mode A, RO 90<br />

Paper size P1x P1y P2x P2y<br />

A4 200, 430 7400, 10430<br />

A3 430, 380 10430, 15580<br />

Letter 320, 80 7520, 10080<br />

Ledger 80, 620 10080, 15820<br />

Table 7.37. Coordinate Values, Mode B, RO 0<br />

Paper size P1x P1y P2x P2y<br />

A4 –4700, –2480 4700, 2480<br />

A3 –6680, –4700 6680, 4700<br />

Letter –4348, –2598 4348, 2598<br />

Ledger –6916, –4348 6916, 4348


Coordinate Values, Mode B, RO 90<br />

Paper size P1x P1y P2x P2y<br />

A4 –2480, –4700 2480, 4700<br />

A3 –4700, –6680 4700, 6680<br />

Letter –2598, –4348 2598, 4348<br />

Ledger –4348, –6916 4348, 6916<br />

Summary of KC-GL Instructions<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

The table below lists KC-GL instructions supported by the printing system. The following<br />

legend is used:<br />

[c] Character string<br />

[d] decimal (-128.0000 to +127.9999)<br />

[i] integer (-32768 to +32767)<br />

[sd] scaled decimal (-32768.0000 to +32767.9999)<br />

Table 7.38. KC-GL Instructions (Sheet 1 of 2)<br />

Instruction Parameters Description<br />

AA x-coordinate [i/sd], y-coordinate [i/sd],<br />

center-angle [i] (, resolution [i])<br />

Arc absolute<br />

AF – Advance page<br />

AH – Advance page<br />

AR Δx [i/sd], Δy [i/sd], arc-angle [i] (, resolution [i]) Arc relative<br />

BL character-string [c] terminator Buffer label<br />

CA character-set-no. [i] Designate alternate character set<br />

CI radius [i/sd] (, resolution [i]) Circle<br />

CP horizontal-character-count [d],<br />

vertical-character-count [d]<br />

Character plot<br />

CS character-set-no. [i] Designate standard character set<br />

CT – Chord tolerance for AA, AR, CI<br />

DF – Default<br />

DI run [d], rise [d] Absolute direction<br />

DR run [d], rise [d] Relative direction<br />

DT terminator [c] Define label terminator<br />

EA x-coordinate [i/sd], y-coordinate [i/sd] Edge rectangle absolute<br />

EP – Edge polygon for PM, RA, RR, WG<br />

ER Δx [i/sd], Δy [i/sd] Edge rectangle relative<br />

ES character-space [d](, line- space [d]) Extra space for NCP<br />

EW radius [i/sd], start-angle [i],<br />

center-angle [i] (, resolution [i])<br />

Edge wedge<br />

FP – Fill polygon for PM, RA, RR, WG<br />

FT type [i] (,spacing [sd] (,angle [i])) Fill type<br />

IM E-mask-value [i] (, S-mask-value [i] (,P-maskvalue<br />

[i]))<br />

Input mask<br />

IN – Initialize<br />

IP P1x [i], P1y [i] (, P2x [i], P2y [i]) Input P1 and P2<br />

IW XLL [i/sd], YLL [i/sd], XUR [i/sd], YUR [i/sd], Input window<br />

LB character-string [c] Label<br />

LO position-number [i] Label origin<br />

LT pattern-no. [i] (, pattern-length [d]) Line type<br />

OA – Output actual position and pen<br />

status*<br />

7-111


Chapter 7 Emulation<br />

7-112<br />

E-Mask Bit Values<br />

Table 7.38. KC-GL Instructions (Sheet 2 of 2)<br />

Instruction Parameters Description<br />

OC – Output commanded position and pen<br />

status*<br />

OE – Output error*<br />

OF – Output factors*<br />

OH – Output hard-clip limits*<br />

OI – Output identification*<br />

OL – Output label length<br />

OO – Output options*<br />

OP – Output P1 and P2*<br />

OS – Output status byte*<br />

OT – Output carousel type<br />

OW – Output window*<br />

PA x1-coordinate [i/sd], y1-coordinate [i/sd] (,x2coordinate<br />

[i/sd], y2-coordinate [i/sd], ..., xncoordinate<br />

[i/sd], yn- coordinate [i/sd])<br />

Plot absolute<br />

PB – Print buffered label<br />

PD x1-coordinate [i/sd], y1-coordinate [i/sd]<br />

(, ... xn-coordinate [i/sd], yn-coordinate [i/sd])<br />

Pen down<br />

PM – Polygon mode<br />

PR Δx1 [i/sd], Δy1 [i/sd] (,Δx2 [i/sd], Δy2 [i/sd], ..., Plot relative<br />

xn-coordinate [i/sd], yn-coordinate [i/sd])<br />

PS paper-size [i] Select paper size<br />

PT pen-thickness [d] Pen thickness<br />

PU x1-coordinate [i/sd], y1-coordinate [i/sd]<br />

(, ... xn-coordinate [i/sd], yn-coordinate [i/sd])<br />

Pen up<br />

RA x-coordinate [i/sd], y-coordinate [i/sd] Fill rectangle absolute<br />

RO angle-in-degrees [i] Rotate coordinate system<br />

RR Δx [i/sd], Δy [i/sd] Fill rectangle relative<br />

SA – Select alternate character set<br />

SC Xmin [i], Xmax [i], Ymin [i], Ymax [i], Scale<br />

SI character-width [d], character-height [d] Absolute character size<br />

SL tanθ [d] Character slant<br />

SM character [c] Symbol mode<br />

SP pen-number [i] Select pen<br />

SR character-width [d], character-height [d] Relative character size<br />

SS – Select standard character set<br />

TL tick-length-in-positive-direction [d]<br />

(, tick-length-in-negative-direction [d])<br />

Tick length<br />

UC (pen-control [i],) Δx [i], Δy (,...)<br />

(, pen-control [i]) (,...,)<br />

Plot user-defined character<br />

WG radius [i/sd], start-angle [i], center-angle [i]<br />

(, resolution [i])<br />

Plot filled wedge<br />

XT – X-tick<br />

YT – Y-tick<br />

The IM instruction sets an E-mask that controls how errors are reported on the RS-232C<br />

interface. The E-mask value is the sum of the bit values in the following table.<br />

Table 7.39. E-Mask Bit Values<br />

Bit Error No. Description<br />

1 0 1 Command not recognized<br />

2 1 2 Wrong number of parameters


Table 7.39. E-Mask Bit Values<br />

Bit Error No. Description<br />

4 2 3 Illegal parameter<br />

8 3 4 Unknown character<br />

16 4 5 Unknown character set<br />

32 5 6 Plot position overflow<br />

64 6 7 –<br />

128 7 8 –<br />

S-Mask/P-Mask Values<br />

Table 7.40. S-Mask/P-Mask Values<br />

S-Mask/P-Mask Values Bit Value Description<br />

1 0 Pen down<br />

2 1 Changed P1 or P2<br />

4 2 Valid digitizing point<br />

8 3 Initialized<br />

16 4 Ready<br />

32 5 Error<br />

64 6 –<br />

128 7 –<br />

Device-Control Instructions<br />

Table 7.41. Device-Control Instructions<br />

HP 7550A Emulation [KC-GL] (Mode 8)<br />

Instruction Parameters Description<br />

ESC.( – Plotter ONa ESC.Y – Plotter ON<br />

a Ignored<br />

a<br />

ESC.) – Plotter OFFa ESC.Z – Plotter OFFa ESC.@ [();()]; Plotter configurationa ESC.B – Output buffer space<br />

ESC.E – Output extended error<br />

ESC.H [();();<br />

(); (;...)]<br />

Select handshaking mode 1a ESC.I [();();<br />

(); (;...)]<br />

Select handshaking mode 2a ESC.J – Ignore device-control instructionsa ESC.K – Ignore plot instructionsa ESC.L – Output buffer size<br />

ESC.M [();(); Select output mode (output trigger character, echo<br />

();<br />

();();<br />

()]<br />

terminator, output terminator)<br />

ESC.N [();();<br />

(;...)]<br />

Select extended output and handshaking mode 1a ESC.O – Output extended status<br />

ESC.R – Reset handshakinga 7-113


Chapter 7 Emulation<br />

7-114<br />

Default States (DF)<br />

Table 7.42. Default States (DF)<br />

Initial Conditions (IN)<br />

Function Equivalent Instruction Default Value<br />

Plotting mode PA; Absolute (plotter units)<br />

Polygon mode PM0; PM2; Empty polygon<br />

Line type LT; Solid line<br />

Line pattern length LTn,4; 4% of distance between P1 and P2<br />

Scaling SC; Off (plotter units used for x- and y-coordinates)<br />

Input window IW; Set to hard-clip limits<br />

Circle and arc resolution – 5 degrees<br />

Symbol mode SM; Off<br />

Tick length TL; x-axis: 0.5 % of | P2y - P1y |<br />

y-axis: 0.5% of | P2x - P1x |<br />

Mask value IM233,0,0; All errors recognized, but no response to service request<br />

or parallel port.<br />

Fill type FT; Type 1 (bidirectional fill)<br />

Fill spacing FT; 1% of distance between P1 and P2 (used only in fill types<br />

3 and 4)<br />

Fill angle FT; 0 degrees<br />

Pen thickness PT; 0.3 mm (fill spacing for fill types 1 and 2)<br />

Label origin – Current pen position<br />

Relative direction DR1,0; Horizontal characters<br />

Relative size SR; Character width: 0.75% of | P2x - P1x |<br />

Character height: 1.5% of | P2y - P1y |<br />

Character space ES 0, 0; None<br />

Character slant SL; 0 degrees<br />

Label buffer BL ETX; None<br />

Label terminator DT ETX; ETX (ASCII code 3)<br />

Label origin LO; Position number<br />

Character set SS; Standard character set<br />

Standard character set CS0; Character set 0<br />

Code tolerance CT; Angle mode of AA, AR, CI, or WG<br />

Alternate character set CA0; Character set 0<br />

Table 7.43. Initial Conditions (IN)<br />

Function Equivalent instruction Initial condition<br />

Default conditions DF; Default values<br />

Scaling points IP; Initialized according to paper size<br />

Coordinate system rotation RO; 0 degrees (default setting)


KPDL Operators<br />

KPDL Operators<br />

This section describes the machine-independent part of KPDL, Kyocera’s implementation<br />

of the PostScript command language. KPDL deployed in the printing system encompasses<br />

the features of LanguageLevel 3 of the PostScript command language.<br />

The KPDL operators described in this section can be used for confirming and changing<br />

the printing system’s internal settings. Most of the operators in this section are paired:<br />

one operator for setting an environmental parameter, and another operator for confirming<br />

the setting. The setting operator starts with the letters set. The confirmation operator has<br />

the same name, but without the initial set.<br />

Communication with the Printing System<br />

The operations described below are performed by sending KPDL operators to the printing<br />

system in the KPDL mode. KPDL operators can be sent either by file transfer, or<br />

interactively using communications software. This section explains both methods. As an<br />

example, it uses the KPDL operator that sets the printing system to print a simple graphics<br />

sample as shown in Figure 7. 44. on page 116.<br />

Example:<br />

Operators to draw a text and an enclosing box. Note that, in KPDL mode, unit for distances<br />

is 1 / 72 inches.<br />

!R! SEM 9; EXIT; % Enter KPDL mode<br />

%!<br />

3 setlinewidth % Set line width to 3<br />

30 30 moveto % Move to (30 30)<br />

0 60 rlineto % Draw line 60 above<br />

225 0 rlineto % Draw line 225 to the right<br />

0 -60 rlineto % Draw line 60 below<br />

closepath % Close the above path<br />

gsave % Save current graphics state<br />

0.6 setgray % Set gray level to 0.6<br />

fill % Fill the path with gray<br />

grestore % Restore saved graphics state<br />

0 setgray % Set gray level to 0<br />

stroke % Stroke the path<br />

1 setgray % Set gray level to solid black<br />

/Helvetica-Nr 30 selectfont % Select and scale to 30 points<br />

50 50 moveto % Move to (100 100)<br />

(Have a nice day!) show % Print the string<br />

showpage % Print the above on page<br />

^D % End of job (control-D)<br />

The initial SEM 9; ensures that the printing system is in the KPDL mode. If the printing<br />

system is already in the KPDL mode, SEM 9; is ignored. The percent signs (%) and the<br />

words to the right are comments. Comments are included only to explain the operators,<br />

and can be omitted when typing operators.<br />

Try using one of the methods explained on the following page to enable delivery of the<br />

result of the above example. The print result appears as shown in Figure 7. 44. on page<br />

116.<br />

7-115


Chapter 7 Emulation<br />

7-116<br />

File transfer<br />

Figure 7. 44. Sample Printout<br />

One way to transfer a file is to place all lines above in a file and transfer the file to the<br />

printing system. The basic requirements are:<br />

• Except for SEM 9; and EXIT; (which can be in either uppercase or lowercase letters),<br />

all operators must be typed in lowercase letters, exactly as shown.<br />

• The file must not contain any extraneous control codes, as are frequently added by<br />

word-processing software.<br />

• The file must be sent as a file, not printed. If you print the file, you will only obtain<br />

printed output.<br />

KPDL Summary<br />

This section lists all KPDL operators, their operands, and their results.<br />

When received from the computer, operators and operands are placed in an area in the<br />

printing system’s memory called the stack. In the operator table, each operator is preceded<br />

by its list of operands (if any). These operands must be placed onto the stack prior<br />

to the operator itself. Each operator is followed by a list of its results (if any). The results<br />

returned by the operator are also placed onto the stack.<br />

For example, the add operator is listed as follows:<br />

num1 num2 add sum add num1 and num2<br />

The action of this operator is to remove the two numbers that precede it from the top of<br />

the stack, add them, and put their sum onto the stack.<br />

If an operator does not require any preceding operands or does not place any result on the<br />

stack, the corresponding column in the table is blank.<br />

The following abbreviations (and a few others) are used for operands:<br />

ang angle (specified in degrees)<br />

bool boolean: the value true or false<br />

dict dictionary<br />

int integer<br />

num number (integer or real)<br />

obj object (any object)<br />

pattern pattern dictionary<br />

proc procedure<br />

tag tag<br />

userpath array of path construction operators and their operands


Note<br />

KPDL Operators<br />

Certain operators are hyphenated in the following tables because of the editorial limitation<br />

only. These operators must not be hyphenated to be executed.<br />

KPDL Page Description Operators<br />

The following table summarizes the page description operators including all language<br />

levels of KPDL. In the following table, operators having the higher language level are<br />

indicated by 2 (level 2) or 3 (level 3)<br />

.<br />

Table 7.45. KPDL Page Description Operators (Sheet 1 of 11)<br />

Preceding stack Operator Result Description<br />

obj =<br />

=print<br />

=string<br />

Write object to standard output<br />

obj == Write object to standard output<br />

with syntax markings<br />

2 > dict Create a dictionary containing<br />

...keyn valuen<br />

the specified key-value pair<br />

[ mark Push mark on stack<br />

mark obj0...obj (n-1) ] array End array starting at topmost<br />

mark<br />

num1 abs num2 Get absolute value of num1<br />

num1 num2 add sum Add num1 and num2<br />

array aload a0...a(n-1) array Load array elements into stack,<br />

below array<br />

string target anchorsearch tail target true or Test whether target is initial<br />

string false substring of string<br />

int/bool1 int/bool2 and int/bool3 Bitwise or logical AND<br />

x y r ang1 ang2 arc Create counterclockwise arc<br />

x y r ang1 ang2 arcn Create clockwise arc<br />

x1 y1 x2 y2 r 2 arct Create line ending in arc<br />

x1 y1 x2 y2 r arcto xt1 yt1 xt2 yt2 Create line ending in arc; return<br />

arc coordinates<br />

int array array Create array of null objects<br />

ax ay string ashow Print string with adjusted<br />

character spacing<br />

obj0...obj (n-1) array astore array Pop elements from stack into<br />

array<br />

num den atan angle Get arctangent of num/den in<br />

degrees<br />

cx cy chr ax ay string awidthshow Print string with ashow and<br />

widthshow effects<br />

dict begin Push dict on dictionary stack<br />

proc bind proc Replace operator names in proc<br />

by values<br />

int1 count bitshift int2 Shift int1 bitwise by count<br />

(positive is left)<br />

file bytesavailable int Get number of bytes left to read<br />

in file<br />

cachestatus bsize bmax<br />

msize mmax<br />

csize cmax<br />

blimit<br />

Get font cache information<br />

num1 ceiling num2 Find least integer not less than<br />

num1<br />

string bool charpath Create character outline<br />

clear Clear entire stack<br />

cleardictstack Clear dictionary stack<br />

7-117


Chapter 7 Emulation<br />

7-118<br />

Table 7.45. KPDL Page Description Operators (Sheet 2 of 11)<br />

Preceding stack Operator Result Description<br />

mark obj1...objn cleartomark Clear stack down through mark<br />

clip Create new clipping path<br />

clippath Set current path as clipping path<br />

3 cliprestore Restore stored clipping path<br />

3 clipsave Copy and save the current<br />

clipping path<br />

file closefile Close file<br />

width height bits/comp<br />

matrix datasrc0 ...<br />

datasrcn-1 multi<br />

ncomp<br />

closepath Connect subpath to starting<br />

point<br />

colorimage Paint a sample image<br />

key name array 3 composefont font Refers CIF font specified in the<br />

key string array<br />

second CMap object or array<br />

and compose CIF font<br />

key dict array<br />

dictionary<br />

matrix concat Multiply current transform<br />

matrix by given matrix<br />

matrix1 matrix2<br />

matrix3<br />

concatmatrix matrix3 Replace matrix3 with matrix1 x<br />

matrix2<br />

obj1...objn n copy obj1...objn Duplicate top n objects on stack<br />

dict1 dict2 copy dict2 Copy dict1 to dict2<br />

array1 array2 copy subarray2 Copy array1 to initial subarray<br />

of array2<br />

string1 string2 copy substring2 Copy string1 to initial substring<br />

of string2<br />

gstate1 gstate2 copy Copy gstate1 to gstate2<br />

copypage Print and retain current page<br />

angle cos real Find cosine of angle (degrees)<br />

count n Count objects on stack<br />

countdictstack int Count objects on dictionary<br />

stack<br />

countexecstack int Count objects on execution<br />

stack<br />

mark obj1...objn counttomark mark obj1... obj n Count objects on stack down to<br />

mark<br />

proc string 2 cshow Show characters changing the<br />

font mapping algorithm<br />

2 currentblackgeneration proc Return the black generation<br />

function<br />

2 currentcacheparams mark size lower<br />

upper<br />

Return font cache parameters<br />

2 currentcmykcolor cyan magenta Return the current color<br />

yellow black according to the cyan-magentayellow-black<br />

color space<br />

2 currentcolor comp1 comp2 ... Return the components of the<br />

comp n<br />

color<br />

2 currentcolorrendering dict Return the value of the CIE<br />

based color rendering<br />

dictionary<br />

2 currentcolorscreen redfreq<br />

Return the current halftone<br />

redang redproc<br />

greenfreq greenang<br />

greenproc bluefreq<br />

blueang blueproc<br />

grayfreq grayang<br />

grayproc<br />

screen parameters<br />

2 currentcolorspace array Return the color space<br />

2 currentcolortransfer redproc greenproc Return the current transfer<br />

blueproc grayproc functions<br />

currentdash array offset Get current dash pattern<br />

string 2 currentdevparams dict Return all parameters for device


Table 7.45. KPDL Page Description Operators (Sheet 3 of 11)<br />

Preceding stack Operator Result Description<br />

KPDL Operators<br />

currentdict dict Push current dictionary on oper-<br />

and stack<br />

currentfile file Get file currently being<br />

executed<br />

currentflat num Get current flatness tolerance<br />

currentfont font Get current font dictionary<br />

2 currentglobal bool Return the VM allocation mode<br />

currently in effect<br />

currentgray num Get current gray level<br />

gstate 2 currentgstate gstate Copy the current graphics state<br />

2 currenthalftone halftone Return the current halftone<br />

dictionary<br />

currenthsbcolor hue sat brt Get current hue, saturation, and<br />

brightness<br />

currentlinecap int Get current line end type<br />

currentlinejoin int Get current corner type<br />

currentlinewidth num Get current line width<br />

matrix currentmatrix matrix Replace matrix with current<br />

transform matrix<br />

currentmiterlimit num Get current miter length limit<br />

2 currentobjectformat int Return the object format<br />

parameter currently in effect<br />

2 currentoverprint bool Return the value of the overprint<br />

parameter<br />

2 currentpacking bool Return the current array packing<br />

mode<br />

2 currentpagedevice dict Return a device parameter on<br />

the current page<br />

currentpoint x y Get coordinates of current point<br />

currentrgbcolor red green blue Get current red/green/blue<br />

levels<br />

currentscreen freq angle proc Get current halftone screen<br />

currentshared Return the current stroke adjust<br />

parameter<br />

3 currentsmoothness num Returns the current arc<br />

smoothness<br />

2 currentstrokeadjust bool Return the current stroke adjust<br />

parameter<br />

2 currentsystemparams dict Return current values of all<br />

system parameters<br />

currenttransfer proc Get current gray transfer<br />

function<br />

2 currentundercolorremoval proc Return the under color removal<br />

function<br />

2 currentuser params dict Return current values of all user<br />

parameters<br />

x1 y1 x2 y2 x3 y3 curveto Create Bézier cubic curve from<br />

current point to (x3, y3)<br />

num/string cvi int Convert number or string to<br />

integer<br />

obj cvlit obj Convert object to literal<br />

string cvn name Convert string to name<br />

num/string cvr real Convert number or string to real<br />

num radix string cvrs substring Convert number to<br />

representation in radix<br />

obj string cvs substring Convert object to substring of<br />

string<br />

obj cvx obj Convert object to executable<br />

object<br />

key value def Place key and value in current<br />

dictionary<br />

7-119


Chapter 7 Emulation<br />

7-120<br />

Table 7.45. KPDL Page Description Operators (Sheet 4 of 11)<br />

Preceding stack Operator Result Description<br />

matrix defaultmatrix matrix Replace matrix with device<br />

default matrix<br />

key font definefont font Define font as a font dictionary<br />

associated with key<br />

key instance category 2 defineresource instance Define a resource in a specified<br />

category<br />

index any 2 defineuserobject Establish an user object<br />

filename 2 deletefile Remove the specified file<br />

int dict dict Create dictionary with capacity<br />

for int entries<br />

array dictstack subarray Copy dictionary stack to array<br />

num1 num2 div quotient Divide num1 by num2<br />

dx dy dtransform dx’ dy’ Transform distance from user to<br />

device space<br />

dx dy matrix dtransform dx’ dy’ Transform distance by matrix<br />

obj dup obj obj Duplicate top object on stack<br />

bool echo Turn interactive echoing on/off<br />

end Pop dictionary stack<br />

eoclip Clip using even-odd rule<br />

eofill Fill using even-odd rule<br />

any1 any2 eq bool Pop two objects from the stack<br />

and pushes the boolean value<br />

true if they are equal, false if not<br />

erasepage Erase the current page<br />

obj1 obj2 exch obj2 obj1 Exchange top two objects on<br />

stack<br />

obj exec Execute preceding object<br />

form 2 execform Paint a form<br />

array execstack subarray Copy execution stack into array<br />

index 2 execuserobject Execute the user object<br />

array/file/string executeonly array/file/string Enable execution access only<br />

exit Exit innermost loop<br />

base exponent exp real Raise base to exponent<br />

false false Push boolean value false on<br />

stack<br />

string1 string2 file file Open file named string1 in<br />

string2 access mode<br />

template proc scratch 2 filenameforall Enumerate all files whose<br />

names match<br />

file 2 fileposition position Return the current position in a<br />

file<br />

fill Fill current path with current<br />

color<br />

src|tgt<br />

2 filter<br />

param1...paramn name<br />

file Create a filtered file<br />

name<br />

string<br />

3 findcolorrendering name bool Find the color rendering<br />

resource as spcified by<br />

argument<br />

key 2 findencoding array Obtain an encoding vector<br />

key findfont font Get a font dictionary identified<br />

by key<br />

key category 2 findresource instance Obtain a named resource<br />

instance in a specified category<br />

flattenpath Convert curves to piecewise<br />

linear segments<br />

num1 floor num2 Find greatest integer not<br />

exceeding num1<br />

flush Send data in buffer to standard<br />

output<br />

file flushfile Send data in buffer to output<br />

file, or read and discard rest of<br />

input file


Table 7.45. KPDL Page Description Operators (Sheet 5 of 11)<br />

Preceding stack Operator Result Description<br />

KPDL Operators<br />

FontDirectory dict Push directory of font<br />

dictionaries on stack<br />

init incr limit proc for Execute proc for init to limit in<br />

steps of incr<br />

array proc forall Do proc for each array element<br />

dict proc forall Do proc for each element of dict<br />

string proc forall Do proc for each element of<br />

string<br />

any 2 gcheck bool Return residence mode of any<br />

num/string1<br />

num/string2<br />

ge bool Test whether num/string1 is<br />

greater than or equal to<br />

num/string2<br />

array index get obj Get array element at index<br />

location<br />

dict key get obj Get value associated with key in<br />

dictionary<br />

string index get int Get string element at index<br />

location<br />

string index count getinterval substring Get substring. Index and count<br />

are starting location and length<br />

of substring<br />

array index count getinterval subarray Get subarray. Index and count<br />

are starting element and length<br />

of subarray<br />

2 globaldict dict Create a new dictionary object<br />

2 GlobalFontDirectory dict Push a dictionary of defined<br />

font<br />

name 2 glyphshow Show a single character<br />

grestore Restore saved graphics state<br />

grestoreall Restore to bottommost graphics<br />

state<br />

gsave Save graphics state<br />

2 gstate gstate Create a new graphics state<br />

object<br />

num/string1<br />

num/string2<br />

gt bool Test whether num/string1 ><br />

num/string2<br />

matrix identmatrix matrix Replace matrix with identity<br />

transform<br />

int1 int2 idiv quotient Divide int1 by int2; integer<br />

quotient<br />

dx’ dy’ idtransform dx dy Transform distance from device<br />

to user space<br />

dx’ dy’ matrix idtransform dx dy Transform distance by inverse<br />

of matrix<br />

bool proc if Do proc if bool is true<br />

bool proc1 proc2 ifelse Do proc1 if bool is true;<br />

otherwise do proc2<br />

dict image Print bit-mapped image<br />

wd ht bits matrix proc image<br />

dict imagemask Print binary mask<br />

wd ht invt matrix proc imagemask<br />

objn...obj0 n index objn...obj0 objn Copy n-th object to top of stack<br />

x y userpath 2 ineofill<br />

ineofill<br />

x y userpath 2 infill<br />

infill<br />

bool Test the current path on the<br />

even- odd rule for insideness<br />

bool Test the current path for<br />

insideness<br />

initclip Initialize clipping path<br />

initgraphics Reset graphics state parameters<br />

initmatrix Initialize current transfer matrix<br />

x y userpath 2 instroke<br />

bool Test pixels in the current path<br />

instroke<br />

for insideness<br />

7-121


Chapter 7 Emulation<br />

7-122<br />

Table 7.45. KPDL Page Description Operators (Sheet 6 of 11)<br />

Preceding stack Operator Result Description<br />

x y userpath<br />

userpath1 userpath2<br />

x y userpath<br />

userpath1 userpath2<br />

2 inueofill<br />

inueofill<br />

2 inufill<br />

inufill<br />

bool Test the user path on the evenodd<br />

rule for insideness<br />

bool Test the user path for insideness<br />

x y userpath 2 inustroke<br />

x y userpath matrix inustroke<br />

userpath1 userpath2 inustroke<br />

bool Test pixels in the user path for<br />

userpath1 userpath2<br />

matrix<br />

inustroke<br />

insideness<br />

matrix1 matrix2 invertmatrix matrix2 Replace matrix2 with inverse of<br />

matrix1<br />

2 ISOLatin1Encoding array Push the ISO Latin-1 encoding<br />

vector<br />

x’ y’ itransform x y Transform coordinates from<br />

device to user space<br />

x’ y’ matrix itransform x y Transform coordinates by<br />

inverse of matrix<br />

dict key known bool Test whether key is in dictionary<br />

proc string kshow Print string, executing proc<br />

between characters<br />

2 languagelevel int Return the language level<br />

num/string1 le bool Test whether num/string1 is less<br />

num/string2<br />

than or equal to num/string2<br />

array length int Get number of elements in array<br />

dict length int Get number of key-value pairs<br />

in dict<br />

string length int Get length of string<br />

name length int Get length of name<br />

x y lineto Create line from current point to<br />

(x, y)<br />

num ln real Get natural logarithm<br />

key load value Search dictionary stack for key<br />

and return value<br />

num log real Get logarithm<br />

proc loop Do proc until exit is<br />

encountered<br />

num/string1 lt bool Test whether num/string1 <<br />

num/string2<br />

num/string2<br />

font matrix makefont font’ Generate new font by matrix<br />

transformation<br />

dict matrix 2 makepattern pattern Create an instance from a<br />

prototype pattern<br />

mark mark Push mark on stack<br />

matrix matrix Create identity matrix<br />

dict maxlength int Get capacity of dict<br />

int1 int2 mod remainder Find int1 module int2 (integers)<br />

x y moveto Move current point to (x, y)<br />

num1 num2 mul product Multiply num1 by num2<br />

obj1 obj2 ne bool Test whether obj1 is not equal to<br />

obj2<br />

num1 neg num2 Get negative of num1<br />

newpath Initialize current path to null<br />

path<br />

array/dict/file/string noaccess array/dict/file/strin<br />

g<br />

Disable all access<br />

int/bool1 not int/bool2 Bitwise or logical not<br />

null null Push null on operand stack<br />

nulldevice Install no-output device<br />

int/bool1 int/bool2 or int/bool3 Bitwise or logical OR<br />

obj0...objn-1 n 2 packedarray packedarray Create a packed array


Table 7.45. KPDL Page Description Operators (Sheet 7 of 11)<br />

Preceding stack Operator Result Description<br />

KPDL Operators<br />

pathbbox llx lly urx ury Get bounding box of current<br />

path<br />

move line curve close pathforall Do named procedures for<br />

current path elements<br />

obj pop Discard top object on stack<br />

string print Write string to standard output<br />

obj tag 2 printobject Write a binary object sequence<br />

to the standard output<br />

2 product string Get product name<br />

prompt Prompt for interactive input<br />

pstack Write entire stack to standard<br />

out put<br />

array index object put Insert object int array at index<br />

location<br />

dict key value put Place key and value in<br />

dictionary<br />

string index int put Replace character in string at<br />

index location<br />

array1 index array2 putinterval Replace subarray of array1<br />

starting at index by array2<br />

string1 index string2 putinterval Replace substring of string1<br />

starting at index by string2<br />

quit Terminate KPDL interpreter<br />

rand int Generate pseudo-random<br />

integer<br />

array/dict/file/string rcheck bool Test if object is read-accessible<br />

dx1 dy1 dx2 dy2 dx3<br />

dy3<br />

rcurveto Create Bézier cubic curve to<br />

relative point<br />

file read int true or false Read one character from file;<br />

return false if end of file<br />

file string readhexstring substring bool Read hexadecimal characters<br />

from file into string<br />

file string readline substring bool Read line from file into string;<br />

return true if filled<br />

array/dict/file/string readonly array/dict/file/<br />

string<br />

Enable read access only<br />

file string readstring substring bool Convert file of hexadecimal<br />

character codes into character<br />

string; return true if string is<br />

filled<br />

2 realtime int Return the real time clock value<br />

x y width height<br />

numarray/numstring<br />

x y width height<br />

numarray/numstring<br />

x y width height<br />

x y width height matrix<br />

numarray<br />

numarray matrix<br />

numstring<br />

numstring matrix<br />

2 rectclip<br />

rectclip<br />

2 rectfill<br />

rectfill<br />

2 rectstroke<br />

rectstroke<br />

rectstroke<br />

rectstroke<br />

rectstroke<br />

rectstroke<br />

Clip with a rectangular path<br />

Fill with a rectangular path<br />

Stroke with a rectangular path<br />

old new 2 renamefile Change the name of a file<br />

int proc repeat Do proc int times<br />

file resetfile Clear buffer for file<br />

template proc scratch 2 resourceforall Enumerate all instances of a<br />

category<br />

specified resource category<br />

key category 2 resourcestatus status size Return status information about<br />

true (false) a named resource instance<br />

save restore Restore saved virtual memory<br />

reversepath Reverse direction of current<br />

path printing system’s software<br />

2 revision int Get product revision<br />

7-123


Chapter 7 Emulation<br />

7-124<br />

Table 7.45. KPDL Page Description Operators (Sheet 8 of 11)<br />

Preceding stack Operator Result Description<br />

dx dy rlineto Create line from current point to<br />

relative point<br />

dx dy rmoveto Move current point by relative<br />

amount<br />

ob(n-1)...ob0 n i roll ob(i-1)..ob0<br />

ob(n01)..obi<br />

Roll top n objects on stack by i<br />

(mod n)<br />

2 rootfont font Return a root composite<br />

dictionary<br />

angle matrix rotate matrix Rotate matrix transformation by<br />

angle (degrees)<br />

angle rotate Rotate user space by angle<br />

(degrees)<br />

num1 round num2 Round off num1 to nearest<br />

integer<br />

rrand int Get random number seed<br />

string run Execute file<br />

save save Save virtual memory<br />

sx sy matrix scale matrix Define scaling matrix<br />

sx sy scale Scale user space<br />

font scale scalefont font’ Generate new font by scaling<br />

old font<br />

any 2 scheck bool Same as gcheck<br />

string target search post match head<br />

true or string false<br />

Search for target substring in<br />

string<br />

key scale 2 selectfont Select a font and establish the<br />

font dictionary<br />

2 serialnumber int Return the serial number to<br />

represent the machine<br />

llx lly urx ury 2 setbbox Establish a bounding box for the<br />

current path<br />

proc 2 setblackgeneration Set the black generation<br />

function parameter<br />

wx wy llx lly urx ury setcachedevice Declare width and bounds of<br />

cached character<br />

w0x w0y llx lly urx<br />

ury w1x w1y vx vy<br />

2 setcachedevice2 Declare width and bounds of<br />

cached character<br />

num setcachelimit Declare maximum byte size of<br />

cached character<br />

mark size lower upper 2 setcacheparams Set the font cache parameters<br />

wx wy setcharwidth Declare width and bounds of<br />

uncached character<br />

cyan magenta yellow<br />

black<br />

comp1 comp2 ... comp<br />

n<br />

2 setcmykcolor Set the color space to Device<br />

CMYK<br />

2 setcolor Set the current color parameter<br />

dict 2 setcolorrendering Establish a CIE-based color<br />

rendering dictionary<br />

redfreq redang redproc<br />

greenfreq greenang<br />

greenproc bluefreq<br />

blueang blueproc<br />

grayfreq grayang<br />

grayproc<br />

2 setcolorscreen Set the halftone parameter<br />

array (name) 2 setcolorspace Specify a color space<br />

redproc greenproc<br />

blueproc grayproc<br />

2 setcolortransfer Set the transfer function<br />

parameter<br />

array offset setdash Set dash pattern for lines<br />

string dict 2 setdevparams Set parameters for I/O device<br />

file position 2 setfileposition Reposition a file<br />

num setflat Set flatness tolerance<br />

(smoothness of curves)<br />

font setfont Set current font dictionary


Table 7.45. KPDL Page Description Operators (Sheet 9 of 11)<br />

Preceding stack Operator Result Description<br />

KPDL Operators<br />

bool 2 setglobal Set the VM allocation mode<br />

num setgray Set gray level from 0 (black) to<br />

1 (white)<br />

gstate 2 setgstate Replace the current graphics<br />

state<br />

halftone 2 sethalftone Establish a halftone dictionary<br />

hue sat brt sethsbcolor Set hue, saturation, and<br />

brightness<br />

(converted to gray)<br />

int setlinecap Set butt (0), round (1), or square<br />

(2) line ends<br />

int setlinejoin Set miter (0), round (1), or bevel<br />

(2) corner type<br />

num setlinewidth Set line width<br />

matrix setmatrix Replace current transform<br />

matrix with given matrix<br />

num setmiterlimit Set miter length limit<br />

int 2 setobjectformat Establish the number<br />

representation<br />

bool 2 setoverprint Set the overprint parameter<br />

bool 2 setpacking Set the array packing mode<br />

dict 2 setpagedevice Install a page output device.<br />

Parameters for this operator is<br />

fully detailed in KPDL Page<br />

Device Parameters on page<br />

135.<br />

pattern 2 setpattern Establish the specified pattern<br />

as the current color<br />

red green blue setrgbcolor Set red/green/blue levels<br />

(converted to gray level)<br />

freq angle proc setscreen Set halftone screen<br />

bool 2 setshared Same as setglobal<br />

num 3 setsmoothness Set the smoothness to num<br />

bool 2 setstrokeadjust Set the stroke adjust parameter<br />

dict 2 setsystemparams Set the system parameters for<br />

interpreter<br />

proc settransfer Set mapping from user gray<br />

scale to device gray scale<br />

mark blimit 2 setucacheparams Set user path cache parameters<br />

proc 2 setundercolor removal Set the under color removal<br />

function parameter<br />

dict 2 setuserparams Set user parameters for each<br />

context<br />

int 2 setvmthreshold Set the allocation threshold used<br />

to trigger garbage collector<br />

2 shareddict dict Same as globaldict<br />

2 SharedFontDirectory dict Same as GlobalFontDirectory<br />

dict 3 shfill Fill the current clipping path<br />

with the shading defined by<br />

shading dictionary<br />

string show Print string on page<br />

showpage Print and reset current page<br />

angle sin real Find sin of angle (in degrees)<br />

num sqrt real Find square root of number<br />

int srand Set random number seed<br />

stack Write entire stack to standard<br />

output as text<br />

StandardEncoding array Push standard character<br />

code/name array on stack<br />

start Make KPDL interpreter ready<br />

bool passwd 2 startjob bool Start a new job with condition<br />

file status bool Test if file is open<br />

7-125


Chapter 7 Emulation<br />

7-126<br />

Table 7.45. KPDL Page Description Operators (Sheet 10 of 11)<br />

Preceding stack Operator Result Description<br />

statusdict dict Push statusdict on operand stack<br />

stop Terminate procedure executed<br />

by stopped operator<br />

obj stopped bool Execute object. Return true if<br />

stop operator is executed in<br />

object, false if object completes<br />

normally<br />

key value store Replace topmost definition of<br />

key<br />

int string string Create string of length int<br />

string stringwidth wx wy Get width of string in current<br />

font<br />

stroke Draw line along current path<br />

strokepath Compute outline of path<br />

num1 num2 sub difference Subtract num2 from num1<br />

systemdict dict Push systemdict on operand<br />

stack<br />

file token token true or false Read and interpret token in file;<br />

return false if file is empty<br />

string token tail token true or<br />

false<br />

Read and interpret token in<br />

string return false if string is<br />

empty<br />

x y transform x’ y’ Transform coordinates from<br />

user to device space<br />

x y matrix transform x’ y’ Transform coordinates by<br />

matrix<br />

tx ty translate Translate user space<br />

tx ty matrix translate matrix Define translation matrix<br />

true true Push boolean value true on<br />

stack<br />

num1 truncate num2 Discard fraction part of num1<br />

obj type name Get name identifying type of<br />

object<br />

userpath 2 uappend Append the user path to the<br />

current path<br />

2 ucache Declare to cache the user path<br />

2 ucachestatus mark bsize bmax<br />

rsize rmax blimit<br />

Return user path cache<br />

parameters<br />

userpath 2 ueofill Fill a user path using the<br />

evenodd rule<br />

userpath 2 ufill Interprets a user path to fill<br />

dict key 2 undef Remove key and value from<br />

dictionary<br />

key 2 undefinefont Remove a font definition<br />

key category 2 undefineresource Remove the named resource<br />

index 2 undefineuserobject Undefine an user object<br />

bool 2 upath userpath Create a user path equivalent to<br />

the current path<br />

userdict dict Push userdict on operand stack<br />

2 UserObjects array Return the current user object<br />

array<br />

2 usertime int Return time in milliseconds<br />

userpath<br />

userpath matrix<br />

userpath<br />

userpath matrix<br />

2 ustroke<br />

2 ustroke<br />

Draw a line along a user path<br />

2 ustrokepath<br />

2 ustrokepath<br />

Compute outline of a user path<br />

version string Return version of KPDL<br />

interpreter<br />

int 2 vmreclaim Control the garbage collector


Table 7.45. KPDL Page Description Operators (Sheet 11 of 11)<br />

Preceding stack Operator Result Description<br />

KPDL Status Operators<br />

vmstatus level used<br />

maximum<br />

KPDL Operators<br />

Return virtual memory status:<br />

current save nesting depth,<br />

bytes used, and maximum byte<br />

size<br />

array/dict/file/string wcheck bool Test if object is write-accessible<br />

key where dict true or false Find dictionary in which key is<br />

defined<br />

cx cy char string widthshow Print string with adjusted<br />

spacing for specified character<br />

file int write Write one character to file<br />

file string writehexstring Convert string into file of<br />

hexadecimal character codes<br />

file obj tag 2 writeobject Write a binary object sequence<br />

to file<br />

file string writestring Write string characters to file<br />

obj xcheck bool Test if object is executable<br />

int/bool1 int/bool2 xor int/bool3 Bitwise or logical exclusive OR<br />

string numarray 2 xshow Print characters with x<br />

displacement<br />

string numarray 2 xyshow Print characters with x/y<br />

displacements<br />

string numarray 2 yshow Print characters with y<br />

displacement<br />

The operations in the table below can be used when the status dictionary is open. Some<br />

also require a password.<br />

Table 7.46. KPDL Status Operators (Sheet 1 of 5)<br />

Preceding stack Operator Result Description<br />

buildtime int Identify the build of the interpreter<br />

byteorder bool Get the native order in binary encoded tokens<br />

(true: low-order byte first, false: high-order<br />

byte first)<br />

int (string) checkpassword bool Check printing system’ s password (true: valid<br />

password, false: invalid password)<br />

defaulttimeouts job manual wait Get timeout values<br />

diskonline bool Check disk online (true: disk unit online, false:<br />

disk unit offline)<br />

diskstatus free total Report total disk space and free space<br />

dostartpage bool See whether printing system is set to print<br />

status page at power-up (true: output status,<br />

false: do not output)<br />

dosysstart bool See whether Sys/Start file is executed at<br />

power-up (true: execute Sys/Start, false: do<br />

nothing)<br />

pages action initializedisk Format all writable disks<br />

jobname string Get current job name<br />

jobtimeout int Get number of seconds to job timeout (0:<br />

never)<br />

manualfeed bool Test whether printing system is in manual-feed<br />

mode (true: manual feed on, false: manual feed<br />

off)<br />

manualfeedtimeout int Get manual-feed time-out value<br />

margins top left Get top and left calibration margins<br />

newsheet Feed out the single side printed page in duplex<br />

mode<br />

pagecount int Get number of pages printed so far<br />

(nonresettable)<br />

7-127


Chapter 7 Emulation<br />

7-128<br />

Table 7.46. KPDL Status Operators (Sheet 2 of 5)<br />

Preceding stack Operator Result Description<br />

pagestackorder bool Get current stack tray<br />

(true: face down, false: face up)<br />

papersize name bool Get current paper size and orientation<br />

string printername substring Get printing system name<br />

product string Get printing system type<br />

ramsize int Check available RAM size<br />

realformat string Get native representation for real numbers in<br />

binary tokens<br />

revision int Get KPDL revision number<br />

[integer ... integer] setcollatorstacker Set sorter to collator mode<br />

job manual wait setdefaulttimeouts Set timeout values.<br />

bool setdoprinterrors Set error-printing mode (true: print errors,<br />

false: do nothing)<br />

int setdoret Set KIR level<br />

bool setdostartpage Select whether to print status page at power-up<br />

(true: output power-on status, false: do not<br />

output)<br />

bool setdosysstart Set Sys/Start file reading mode at power-up<br />

(true: execute Sys/Start, false: do nothing)<br />

int setjobtimeout Set time-out value of current job<br />

[integer ... integer ] setmailboxstacker Set sorter to mailbox mode<br />

top left setmargins Set top and left calibration margins<br />

int setmultirayid Set mail box identifier<br />

bool setpagestackorder Set stack tray<br />

(true: face down, false: face up)<br />

old new setpassword bool Set printing system’ s password<br />

string setprintername Assign string as printing system name<br />

[integer ... integer] setsorterstacker Set sorter to sorting mode<br />

int setuserdiskpercent Adjust disk size for use with KPDL<br />

waittimeout int Get wait time-out value<br />

a3 Set imageable area to A3 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

b4 Set imageable area to B4 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

a4 Set imageable area to A4 size. See KPDL<br />

Printable Area. This operator is in userdict.<br />

a4small Set imageable area to small A4 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

b5 Set imageable area to B5 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

dlenvelope<br />

(110 x 220 envelope)<br />

Set imageable area to International DL size.<br />

See KPDL Printable Area on page 140. This<br />

operator is in userdict.<br />

11x17 Set imageable area to 11 x 17 (Ledger) size.<br />

See KPDL Printable Area on page 140. This<br />

operator is in userdict.<br />

legal Set imageable area to legal size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

letter Set imageable area to letter size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

lettersmall Set imageable area to small letter size. See<br />

KPDL Printable Area on page 140. This<br />

operator is in userdict.<br />

executivepage Set imageable area to executive size. See<br />

KPDL Printable Area on page 140. This<br />

operator is in userdict.


Table 7.46. KPDL Status Operators (Sheet 3 of 5)<br />

Preceding stack Operator Result Description<br />

com10envelope<br />

(4.125 x 9.5 envelope)<br />

monarcenvelope<br />

(3.875 x 7.5 envelope)<br />

KPDL Operators<br />

Set imageable area to Commercial 10<br />

envelope size. See KPDL Printable Area on<br />

page 140. This operator is in userdict.<br />

Set imageable area to Monarch envelope size.<br />

See KPDL Printable Area on page 140. This<br />

operator is in userdict.<br />

com6envelope Set imageable area to Commercial 6 envelope<br />

size. See KPDL Printable Area on page 140.<br />

This operator is in userdict.<br />

com9envelope<br />

(3.75 x 8.875 envelope)<br />

Set imageable area to Commercial 9 envelope<br />

size. See KPDL Printable Area on page 140.<br />

This operator is in userdict.<br />

a5 Set imageable area to A5 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

a6 Set imageable area to A6 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

b6 Set imageable area to B6 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

b5envelope Set imageable area to ISO B5 size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

c4envelope Set imageable area to c4 envelope size. See<br />

KPDL Printable Area on page 140. This<br />

operator is in userdict.<br />

c5envelope Set imageable area to International C5<br />

envelope size. See KPDL Printable Area on<br />

page 140. This operator is in userdict.<br />

custom Set imageable area to custom size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

postcard Set imageable area to postcard size. See KPDL<br />

Printable Area on page 140. This operator is in<br />

userdict.<br />

doublepostcard Set imageable area to double postcard size. See<br />

KPDL Printable Area on page 140. This<br />

operator is in userdict.<br />

bool setdefaultduplexmode Select whether or not to print in duplex mode<br />

as default. (true: duplex, false: simplex)<br />

defaultduplexmode bool Get default duplex mode setting (true: duplex,<br />

false: simplex)<br />

bool setduplexmode Set/cancel duplex mode. (true: duplex, false:<br />

simplex)<br />

duplexmode bool Get current setting of duplex mode. (true:<br />

duplex, false: simplex)<br />

bool setdefaulttumble Set duplex printing tumble mode for binding<br />

on short side (true) or long side (false) of page.<br />

defaulttumble bool Get the default tumble mode setting. (true:<br />

short-edge bind, false: long-edge bind)<br />

bool settumble Set tumble mode. (true: short-edge bind, false:<br />

long-edge bind)<br />

tumble bool Get current tumble mode setting. (true: shortedge<br />

bind, false: long-edge bind)<br />

firstside bool During duplex printing, returns whether the<br />

current print side is the front or back. During<br />

simplex printing, returns whether the current<br />

page is even or odd. (true: front or odd page,<br />

false: back or even page)<br />

int setdefaultpapertray Set the default paper tray as:<br />

0: tray 1<br />

1: tray 2<br />

2: envelope feeder<br />

3: MP tray (Cassette mode)<br />

4: tray 3<br />

5: tray 4<br />

6: tray 5<br />

7: tray 6<br />

7-129


Chapter 7 Emulation<br />

7-130<br />

Table 7.46. KPDL Status Operators (Sheet 4 of 5)<br />

Preceding stack Operator Result Description<br />

defaultpapertray int Get current default paper tray.<br />

int setpapertray Set current paper tray.<br />

papertray int Get current paper tray.<br />

int setpapertray2 Select a tray by converting the tray number that<br />

is currently specified by the PRESCRIBE tray<br />

number into a KPDL tray number.<br />

papertray2 int Convert the current tray number into a<br />

PRESCRIBE tray number.<br />

PRESCRIBE tray numbers<br />

0: MP tray<br />

1: tray 1<br />

2: tray 1<br />

3: tray 1<br />

4: tray 1<br />

5: tray 1<br />

6: tray 1<br />

99: EF-1/UF-1<br />

bool setdefaulttrayswitch Set the default paper tray switch.<br />

(true: Autocass, false: Autocass off)<br />

defaulttrayswitch bool Get default paper tray switch.<br />

(true: Autocass, false: Autocass off)<br />

bool settrayswitch Set the current paper tray switch.<br />

(true: Autocass, false: Autocass off)<br />

trayswitch bool Get the current paper tray switch.<br />

(true: Autocass, false: Autocass off)<br />

a4tray Find tray containing A4 size paper, select it as<br />

current tray, and set imageable area for A4 size<br />

paper.<br />

a5tray Find tray containing A5 size paper, select it as<br />

current tray, and set imageable area for A5 size<br />

paper.<br />

a6tray Find tray containing A6 size paper, select it as<br />

current tray, and set imageable area for A6 size<br />

paper.<br />

b5tray Find tray containing B5 size paper, select it as<br />

current tray, and set imageable area for B5 size<br />

paper.<br />

b6tray Find tray containing B6 size paper, select it as<br />

current tray, and set imageable area for B6 size<br />

paper.<br />

legaltray Find tray containing legal size paper, select it<br />

as current tray, and set imageable area for legal<br />

size paper.<br />

lettertray Find tray containing letter size paper, select it<br />

as current tray, and set imageable area for letter<br />

size paper.<br />

executivetray Find tray containing executive size paper,<br />

select it as current tray, and set imageable area<br />

for executive size paper.<br />

c4envelopetray Find tray containing International C4<br />

envelopes, select it as current tray, and set<br />

imageable area for International C4<br />

envelopes.<br />

c5envelopetray Find tray containing International C5<br />

envelopes, select it as current tray, and set<br />

imageable area for International C5<br />

envelopes.<br />

com10envelope-tray Find tray containing commercial #10<br />

envelopes, select it as current tray, and set<br />

imageable area for commercial #10 envelopes.<br />

com6envelope-tray Find tray containing commercial #6<br />

envelopes, select it as current tray, and set<br />

imageable area for commercial #6 envelopes.<br />

com9envelope-tray Find tray containing commercial #9<br />

envelopes, select it as current tray, and set<br />

imageable area for commercial #9 envelopes.


Table 7.46. KPDL Status Operators (Sheet 5 of 5)<br />

Preceding stack Operator Result Description<br />

KPDL Operators<br />

dlenvelopetray Find tray containing DL size envelopes, select<br />

it as current tray, and set imageable area for DL<br />

size envelopes.<br />

monarcenvelopetray Find tray containing Monarch size envelopes,<br />

select it as current tray, and set imageable area<br />

for Monarch size envelopes.<br />

a3tray Find tray containing A3 size paper, select it as<br />

current tray, and set imageable area for A3 size<br />

paper.<br />

b4tray Find tray containing B4 size paper, select it as<br />

current tray, and set imageable area for B4 size<br />

paper.<br />

ledgertray Find tray containing ledger size paper, select it<br />

as current tray, and set imageable area for<br />

ledger size paper.<br />

b5envelopetray Find tray containing ISO B5 size paper, select<br />

it as current tray, and set imageable area for<br />

ISO B5 size paper.<br />

doublepostcardtray Find tray containing double postcard size<br />

paper, select it as current tray and set<br />

imageable area for double postcard size paper.<br />

postcardtray Find tray containing postcard size paper, select<br />

it as current tray, and set imageable area for<br />

postcard size paper.<br />

customtray Find tray containing custom size paper, select<br />

it as current tray, and set imageable area for<br />

custom size paper.<br />

int setdefaultoutputtray Set the default output tray:<br />

0: Upper tray (face down tray)<br />

1: Lower tray (face up tray)<br />

2: Option tray (sorter, etc.)<br />

defaultoutputtray int Get the default output tray.<br />

int setoutputtray Set the current output tray.<br />

outputtray int Get the current output tray.<br />

appletalktype string Get string object designating type of printing<br />

system’ s AppleTalk name according to the<br />

AppleTalk Name Binding Protocol.<br />

doprinterrors bool Get setting of error information printout mode.<br />

(true: error print mode on, false: error print<br />

mode off)<br />

bool setdoautocontinue Set whether to display messages on front panel<br />

and wait for ONLINE key input when an error<br />

occurs. (true: do nothing, false: display error<br />

messages)<br />

doautocontinue bool Get setting of doautocontinue mode. (true:<br />

continue processing during errors, false: halt<br />

processing when ON LINE key is pressed)<br />

dojamrecovery bool Get setting of dojamrecovery mode. (true:<br />

perform jam recovery, false: do not perform<br />

jam recovery)<br />

usertime int Get time elapsed since beginning of job<br />

processing.<br />

#copies int Get integer objected indicating current<br />

number of copies setting. This operator is in<br />

userdict.<br />

7-131


Chapter 7 Emulation<br />

7-132<br />

KPDL System Parameters<br />

The following table summarizes the system parameters.<br />

Table 7.47. KPDL System Parameters (Sheet 1 of 2)<br />

Preceding stack Parameter Result Description<br />

BuildTime int Timestamp for printer’s date of manufacture<br />

ByteOrder bool Byte order of binary encoded tokens. (true: loworder<br />

byte first, false: high-order byte first)<br />

CurDisplayList a int Indicate in bytes the memory block size used for<br />

storing DisplayList for the current page.<br />

CurFontCache a int Indicate in bytes the memory size used by the current<br />

font cache.<br />

CurFormCache a int Indicate in bytes the memory size used by the current<br />

form cache.<br />

CurOutlineCache a int Indicate in bytes the cache size used by<br />

CharString on the current harddisk.<br />

CurPatternCache a int Indicate in bytes the memory size used by the current<br />

pattern cache.<br />

CurScreenStorage a int Indicate in bytes the memory size used by the current<br />

screen.<br />

CurSourceList a int Indicate in bytes the host buffer size used by the<br />

current input device.<br />

CurUPathCache a int Indicate in bytes the memory size used by the current<br />

user path cache.<br />

DoAutoContinue bool Turn on/off the front panel display when a KPDL<br />

error occurs (true: error display off, false: error<br />

display on).<br />

DoPrintErrors bool Turn on/off error printing when a KPDL error<br />

occurs. (true: error print on, false: error print off)<br />

DoStartPage bool Indicate whether or not to print status at power on as<br />

a bool object. (true: print status, false: do not print<br />

status)<br />

FactoryDefaults bool Indicate with a boolean object whether to initialize<br />

the following parameters at power on (true:<br />

initialize, false: do not initialize [factory default]).<br />

SystemParamsPassword<br />

StartJobPassword<br />

FactoryDefaults<br />

MaxFontCache<br />

MaxDisplayList<br />

MaxScreenStorage<br />

MaxUPathCache<br />

MaxPatternCache<br />

MaxOutlineCache<br />

MaxFormCache<br />

FontResourceDir<br />

GenericResourceDir<br />

GenericResourcePathSep<br />

FontResourceDir string Identify the font resource directory on the harddisk.<br />

Defaults are in (fonts/).<br />

GenericResourceDir string Identify the directory for resources other than fonts<br />

on the harddisk. Defaults are in (Resource/).<br />

GenericResource-<br />

PathSep<br />

string Specify the separator character used between<br />

resource identifiers on the harddisk. Defaults are in<br />

(/).<br />

JobTimeout int Indicate the default job timeout value.<br />

MaxDisplayList int Indicate the maximum storage of DisplayList for the<br />

current page.<br />

MaxFontCache int Indicate the maximum storage of the font cache.<br />

MaxFormCache int Indicate the maximum storage of the form cache.<br />

MaxOutlineCache int Indicate the maximum storage of the CharString<br />

cache on the disk.<br />

MaxPatternCache int Indicate the maximum storage of the pattern cache.<br />

MaxScreenStorage int Indicate in bytes the maximum storage of the halftone<br />

screen usable by the screen.


Table 7.47. KPDL System Parameters (Sheet 2 of 2)<br />

Preceding stack Parameter Result Description<br />

a Read only<br />

KPDL Operators<br />

MaxSourceList int Indicate in bytes the maximum storage of the host<br />

buffer used by the current input device.<br />

MaxUPathCache int Indicate in bytes the maximum storage which can be<br />

used by the user path cache.<br />

PageCount int Indicate the total number of printed pages since the<br />

printer’s manufacture.<br />

Password int, string Indicate the password necessary when changing<br />

system parameters and/or device parameters.<br />

PrinterName string Indicate the name given to the printer.<br />

RamSize int Indicate in bytes the total RAM capacity currently<br />

in the printer.<br />

RealFormat string Indicate the method of representing the numeric<br />

values of binary tokens.<br />

Revision int Indicate the interpreter’s revision number.<br />

StartJobPassword int, string Indicate the password for ExitServer and StartJob.<br />

StartupMode int Indicate by numeric value whether to execute the<br />

(Sys/Start) file on the harddisk when first booting<br />

KPDL after power on. (0: default, 1: use Sys/Start)<br />

SystemParams-<br />

Password<br />

int, string Indicate the password for changing system<br />

parameters.<br />

WaitTimeout Indicate the default wait timeout value.<br />

MaxImageBuffer int Limit the working area for processing a single<br />

image.<br />

MaxStoredFontCache int Limit the maximum font cache value stored on the<br />

disk.<br />

CurStoredFontCache int Return in bytes the font cache value found on the<br />

current disk<br />

7-133


Chapter 7 Emulation<br />

7-134<br />

KPDL User Parameters<br />

The following table summarizes the user parameters. The user parameters establish temporary<br />

policies on functions such as naming the current job for a user.<br />

Table 7.48. KPDL User Parameters<br />

Preceding stack Parameter Result Description<br />

AccurateScreens bool Turn on/off the accurate mode flag for the setscreen<br />

operator. (true: detail screen on, false: default)<br />

JobName string Return the name of the job currently being processed<br />

by the printer.<br />

JobTimeout int Return the current job timeout value.<br />

MaxDictStack int Indicate the maximum size of the dictionary stack.<br />

MaxExecStack int Indicate the maximum size of the execution stack.<br />

MaxFontItem int Indicate the maximum number of bytes used by a<br />

pixel array for a single character in the font cache.<br />

MaxFormItem int Indicate the maximum number of bytes used by the<br />

form of a single cached form.<br />

MaxLocalVM int Indicate the maximum number of bytes of the local<br />

VM.<br />

MaxOpStack int Indicate the maximum size of the operand stack.<br />

MaxPatternItem int Indicate the maximum number of bytes used by the<br />

form of a single cached pattern.<br />

MaxScreenItem int Indicate the maximum number of bytes used by a<br />

single half-tone screen.<br />

MaxUPathItem int Indicate the maximum number of bytes used by a<br />

single cached user path.<br />

MinFontCompress int Indicate the threshold value for storing characters in<br />

the font cache not as complete pixel arrays but in<br />

compressed form.<br />

VMReclaim int Indicate the automatic garbage collection mode.<br />

VMThreshold int Indicate the threshold at which automatic garbage<br />

collection is executed once this number of bytes has<br />

been allocated after garbage collection.<br />

WaitTimeout int Return the current wait timeout value.


KPDL Page Device Parameters<br />

KPDL Operators<br />

The page device parameters for setpagedevice allow manipulating the output devices to<br />

receive or provide various finishing operations on the printed outputs. For example, the<br />

OutputType parameter allows to choose paper stack as follows:<br />

To receive the output pages in the default printer stack:<br />

setpagedevice<br />

To receive the output pages in the finisher for stapling:<br />

setpagedevice<br />

Table 7.49. KPDL Page Device Parameters (Sheet 1 of 3)<br />

Preceding Stack Parameter Result Description<br />

BeginPage array Indicate BeginPage procedure operations. This<br />

parameter is called together with the number of<br />

times showpage has executed since the beginning of<br />

the page. (default: {pop})<br />

Duplex bool Return as a boolean object the current duplex mode.<br />

(true: duplex, false: simplex)<br />

EndPage array Indicate EndPage procedure operations. This<br />

parameter is called together with the number of<br />

times showpage has executed since the end of the<br />

page. (default: {exch pop 2 ne})<br />

ExitJamRecovery bool Return as a boolean value whether to perform<br />

recovery when a paper jam occurs. (Read only)<br />

[true]<br />

HWResolution array Indicate the resolution of the physical device.<br />

(300dpi: [300 300], 600dpi: [600 600], 1200dpi:<br />

[1200 1200])<br />

ImagingBBox array Specify any bounding box for the entire page.<br />

(default: null)<br />

InputAttributes dict Indicate the dictionary associated with a currently<br />

available input device (paper tray) using the number<br />

assigned to each.<br />

Install array Execute the procedure for installing values during<br />

graphics mode when calling the setpagedevice<br />

operator.<br />

ManualFeed bool Set whether to perform manual feed. (true: MF on)<br />

ManualFeedTimeout int Return the manual feed timeout. (Read only) [0]<br />

Margins array Set the printer margins. (default: [0 0])<br />

MediaColor string Use this parameter along with /PageSize,<br />

/MediaWeight, and /MediaType when the user<br />

selects a tray.<br />

MediaType stringa Use this parameter along with /PageSize,<br />

/MediaWeight, and /MediaColor when the user<br />

selects a tray. For details on media type, see footnote<br />

below.<br />

MediaWeight int Use this parameter along with /PageSize,<br />

/MediaType, and /MediaColor when the user selects<br />

a tray.<br />

NumCopies int Set the current copy count.<br />

Normally null; when null is specified here, #copies<br />

in userdict takes precedence.<br />

OutputAttributes dict Indicate the dictionary containing media output<br />

entries available for the current output device<br />

(printer output tray, sorter, etc.).<br />

OutputFaceUp bool Set the printer’s output stack.<br />

(true: face up, false: face down)<br />

OutputType string Indicate parameters set by the user when selecting<br />

the output stack. See example below.<br />

PageSize array Use this parameter along with /MediaColor,<br />

/MediaWeight, and /MediaType when the user<br />

selects a tray. Refer to KPDL Printable Area on page<br />

140 (Ex: [612 792] LETTER, [595 842] A4).<br />

7-135


Chapter 7 Emulation<br />

7-136<br />

Table 7.49. KPDL Page Device Parameters (Sheet 2 of 3)<br />

Preceding Stack Parameter Result Description<br />

Policies dict Execute the policies function. This is checked when<br />

the device cannot satisfy the user-specified<br />

setpagedevice.<br />

PostRendering-Enhance bool Turn on/off KIR mode. (true: KIR on, false: KIR off)<br />

PostRendering-EnhanceDetails dict Set the dictionary representing the KIR mode when<br />

PostRenderingEnhance is true.<br />

SorterDetailsb dict Set the dictionary object for current sorter status<br />

information.<br />

TraySwitch bool Set the current auto cassette (mode status) using a<br />

boolean value.<br />

(true: Autocass, false: Autocass off)<br />

Tumble bool Set the current tumble mode using a boolean value.<br />

(true: shortedge, false: longedge)<br />

DeferredMedia-Selection bool Define using a boolean object the processing when<br />

the page size selected during page setup differs from<br />

the paper size of the tray.<br />

(true: display cassette error)<br />

ProcessColorModel name Return the engine type as a name object.<br />

/Device Gray: Monochrome<br />

/Device CMY: Three colors<br />

/Device CMYK: Four colors<br />

MediaPosition int Set the tray corresponding to the specified number<br />

as the current tray.<br />

OutputPage bool Set whether to output paper.<br />

(true: default, false: no output paper)<br />

Collate bool Turn on/off the collate function.<br />

(true: electric collate on (only when harddisk is<br />

installed))<br />

CollateDetails dict Control the detailed parameters of the collate<br />

function. See CollateDetails Parameters on page<br />

138.<br />

Fold int Fold booklet pages. (DF-75 finisher)<br />

0: Do not fold<br />

3: Fold<br />

FoldDetails dict Control the detailed parameters of folding. See<br />

FoldMode and FoldCount below.<br />

FoldMode int 1: Fold/staple booklet pages<br />

FoldCopy int Control the number of pages to be folded.<br />

0: Do not fold the pages whose number exceeds<br />

the maximum<br />

-1: Fold the rest of the pages whose number<br />

exceeds the maximum<br />

2: Fold every two pages<br />

3: Fold every three pages<br />

...<br />

10: Fold every ten pages<br />

Jog int Jog the output every n pages as given by the integer<br />

code.<br />

0: Do not jog<br />

3: Jog using the given jog offset (only when<br />

optional stacker is installed)<br />

Staple int Staple the output every n pages as given by the<br />

integer code.<br />

0: Do not staple<br />

3: Staple when job is finished<br />

StapleDetailsc dict Control the detailed parameters of the staple<br />

function.<br />

EconoMode bool Control Econoprint mode.<br />

true: Econoprint on<br />

false: Econoprint off<br />

Punchd int Punch output pages. (DF-71/DF-75)<br />

0: Do not punch<br />

3: Punch when a set of job is printed.<br />

PunchDetails dict Controls the detailed parameters of the punch.<br />

See/PunchMode below.


Table 7.49. KPDL Page Device Parameters (Sheet 3 of 3)<br />

Preceding Stack Parameter Result Description<br />

KPDL Operators<br />

PunchMode int Punch using sub style. (DF-71)<br />

1: Native style of punching<br />

2: Sub style<br />

SlipSheet int Insert transparency separator.<br />

0: No separator<br />

3: Insert a separator when a set of job is printed.<br />

SlipSheetDetails dict Control the detailed parameters of punching. See<br />

CopyMode below.<br />

CopyMode int Print on transparency separator.<br />

1: Do not print on separator<br />

2: Print on separator<br />

PreRenderingEnhance bool Control resolution enhancement.<br />

When /HWResolution is set to 600 dpi.<br />

true: Fast 1200dpi<br />

false: 600dpi<br />

DeviceRenderingVividInfo dict Model FS-5900C only. Control vivid color mode.<br />

Ex: >> setpagedevice<br />

bool (true: Vivid mode on, false: Vivid mode off)<br />

DeviceRenderingRGBInfo dict Controls RGB emulation.<br />

Ex: > >> setpagedevice<br />

name<br />

/sRGB<br />

>> setpagedevice<br />

RGB emulation is not performed.<br />

DeviceRenderingCMYKInfo dict Controls ink simulation.<br />

Ex: > >> setpagedevice<br />

name<br />

/SWOP<br />

/EURO<br />

/Normal: Normal ink simulation<br />

>> setpagedevice<br />

Does not perform ink simulation.<br />

a Available media type strings are as follows:<br />

(Plain)<br />

(Transparency)<br />

(Preprinted)<br />

(Labels)<br />

(Bond)<br />

(Recycled)<br />

(Vellum)<br />

(Rough)<br />

(Letterhead)<br />

(Color)<br />

(Prepunched)<br />

(Envelope)<br />

(Card Stock)<br />

(CoatedPaper)<br />

(Duplex)<br />

(Custom Type1)<br />

(Custom Type2)<br />

(Custom Type3)<br />

(Custom Type4)<br />

(Custom Type5)<br />

(Custom Type6)<br />

(Custom Type7)<br />

(Custom Type8)<br />

7-137


Chapter 7 Emulation<br />

7-138<br />

b SorterDetails can specify tray arrangement and sorter operation mode as the following example:<br />

>><br />

setpagedevice<br />

Tray arrangement array of [1 2] specifies tray 1 and tray 2 to be used. If tray numbers are omitted ([<br />

]), all trays are used. Sorter mode string of (SORTER) specifes sorter mode. Other options include<br />

(COLLATOR) and (MAILBOX).<br />

c A typical StapleDetails sequence is as follows. To staple each 20 pages at position 3 on the page:<br />

>><br />

setpagedevice<br />

d To punch in sub style, use the following example:<br />

>> setpagedevice<br />

CollateDetails Parameters<br />

CollateDetails has the following parameters as tabled below according to the key of<br />

operations. By making /Collate true, CollateDetails enables the printing system to<br />

implement the e-MPS function according to the keys explained in the following table.<br />

Table 7.50. CollateDetails Parameters<br />

Key Type Meaning Parameters default<br />

/Mode integer Job mode 0: HP Mopier mode/Job retention 0<br />

1: Volatile job<br />

2: Nonvolatile job<br />

8: VirtualMailbox job<br />

/Type integer Job Retention enable 8: Enable Job Retention —<br />

/Hold integer Job Retention mode 1: QuickCopy<br />

—<br />

2: Stored job<br />

3: Proof and Hold<br />

/HoldType integer Job Retention security 0: No security<br />

0<br />

1: Security with PIN code<br />

/HoldKey integer PIN code Number of 4 bytes —<br />

/Barcode integer Barcode output 0: Output on first page<br />

2<br />

1: Output on all pages<br />

2: Do not output<br />

/BarcodePosition integer Barcode printing position 0: Lower right (bar only)<br />

0<br />

(viewed in portrait 1: Lower right perpendicular (bar only)<br />

orientation)<br />

2: Upper right perpendicular (bar only)<br />

3: Upper right (bar only)<br />

4: Upper left (bar only)<br />

5: Upper left perpendicular (bar only)<br />

6: Lower left perpendicular (bar only)<br />

7: Lower left (bar only)<br />

128: Lower right (bar + ID)<br />

129: Lower right perpendicular (bar + ID)<br />

130: Upper right perpendicular (bar + ID)<br />

131: Upper right (bar + ID)<br />

132: Upper left (bar + ID)<br />

133: Upper left perpendicular (bar + ID)<br />

134: Lower left perpendicular (bar + ID)<br />

135: Lower left (bar + ID)<br />

/Share integer Share flag 0: Shared<br />

0<br />

1: Not shared<br />

/Name string Job name Character string up to 31 bytes maximum ()<br />

/User string User name Character string up to 31 bytes maximum ()<br />

/Time string Time stamp Character string up to 31 bytes maximum ()<br />

/Destination array VMB destination — []<br />

Programming with CollateDetails for Job Retention<br />

CollateDetails enables the printing system to implement the e-MPS Job Retention function<br />

in KPDL mode. The /Mode key must be set to true for all of these functions. The


KPDL Operators<br />

keys to the CollateDetails parameter should have the following integer values depending<br />

on the mode of each e-MPS function.<br />

Table 7.51. Enabling e-MPS Functions<br />

e-MPS /Collate /CollateDetails ><br />

Examples:<br />

To post a print job into the virtual mailbox aliased Robert, a typical CollateDetails<br />

sequence of parameters will be as follows:<br />

setpagedevice<br />

KPDL Error Messages<br />

/Mode /Type /Hold /Hold-<br />

Type<br />

Electronic sorting true 0 0<br />

/HoldKey<br />

Temporary job storage true 1<br />

Permanent job storage true 2<br />

Virtual mailbox true 8<br />

QuickCopy true 0 8 1 0<br />

QuickCopy (Private) true 0 8 1 1 (1234)<br />

Proof and Hold true 0 8 3<br />

Stored job true 0 8 2 0<br />

Stored job—PIN secured true 0 8 2 1 (1234)<br />

Depending on the setting of the doautocontinue parameter, the printing systems having<br />

the operator display display errors occurring during operation in the KPDL mode as follows.<br />

KPDL Error ##<br />

.. Press ON LINE<br />

Any of the following error codes will appear if errors occur and doautocontinue is set to<br />

false. When doautocontinue is set to true, only error codes 00 and 98 are available. These<br />

error codes are also reported from the printer to the computer. Some software will display<br />

these error names on the computer screen.<br />

Table 7.52. KPDL Error Messages<br />

Code Error Meaning<br />

00 Cannot initiate KPDL<br />

01 dictfull Dictionary full; no new entries can be added<br />

02 dictstackoverflow Too many begins<br />

03 dictstackunderflow Too many ends<br />

04 execstackoverflow Execution stack nesting depth exceeded 250<br />

05 handle Name of error-reporting procedure<br />

06 interrupt Control-C was received<br />

07 invalidaccess Attempted violation of access attribute<br />

08 invalidexit Exit not enclosed in any loop<br />

09 invalidfile Invalid access string for file operator<br />

10 invalidfont Invalid font name or invalid font dictionary format<br />

11 invalidrestore Restore would destroy composite object created after save<br />

7-139


Chapter 7 Emulation<br />

7-140<br />

Table 7.52. KPDL Error Messages<br />

Code Error Meaning<br />

12 ioerror Input/output error<br />

13 limitcheck Path too complex, more than 6 files open, etc.<br />

14 nocurrentpoint No current point is defined<br />

15 rangecheck Operand out of allowed range<br />

16 stackoverflow Operand stack overflow<br />

17 stackunderflow Operand stack underflow<br />

18 syntaxerror Syntax error in program<br />

19 timeout Time limit exceeded<br />

20 typecheck Wrong type of operand<br />

21 undefined Name not found in dictionary<br />

22 undefinedfilename File cannot be found<br />

23 undefinedresult Overflow, underflow, or meaningless result<br />

24 unmatchedmark Expected mark not found on stack<br />

25 unregister Internal error<br />

26 vmerror Virtual memory is exhausted, or illegal access was attempted<br />

27 badpassword Bad password<br />

28 invalidnumber Invalid number<br />

29 nomemory Memory unavailable<br />

30 configurationerror Setpagedevice request cannot be satisfied<br />

31 invalidcontext Improper use of context operation<br />

32 invalidid Invalid identifier for external object<br />

33 undefinedresource Resource instance not found<br />

98 fatal Fatal error (User memory exhausted)<br />

KPDL Printable Area<br />

This printing system does not quite print to the edges of the paper. The edge limits of the<br />

printable area vary depending on the paper type as determined by the paper type KPDL<br />

operator. The edge limits are located as shown in the following figure and table. They<br />

adjust automatically to the size of the paper cassette (although not to the size of manually<br />

fed paper).


Figure 7. 53. Printable Area<br />

Table 7.54. Paper Sizes and Printable Area<br />

KPDL Operators<br />

Paper type Paper size Edge limits (A above) Printable area (B above)<br />

A3 a<br />

a For A3/ledger models.<br />

b For A4/letter models.<br />

Horizontal Vertical<br />

cm Points cm Pt. cm Pt. cm Pt.<br />

29.7 x 42.0 842 x 1191 0.42 12 0.35 10 28.85 x 41.31 818 x 1171<br />

B4 a 25.7 x 36.4 728 x 1032 0.42 12 0.35 10 24.83 x 35.70 704 x 1012<br />

A4 21.0 x 29.7 595 x 842 0.42 12 0.35 10 20.14 x 28.99 571 x 822<br />

A4 Small 21.0 x 29.7 595 x 842 0.875 25 0.875 25 19.22 x 27.94 545 x 792<br />

A5 14.8 x 21.0 421 x 595 0.42 12 0.35 10 14 x 20.28 397 x 575<br />

A6 10.5 x 14.8 297 x 421 0.42 12 0.35 10 9.63 x 14.14 273 x 401<br />

B5 18.2 x 25.7 516 x 729 0.74 21 0.35 10 16.72 x 25.01 474 x 709<br />

B6 12.8 x 18.2 364 x 516 0.42 12 0.35 10 11.99 x 17.49 340 x 496<br />

Int’l DL 11.0 x 22.0 312 x 624 0.42 12 0.35 10 10.16 x 21.3 288 x 604<br />

Int’l B5 17.6 x 25.0 499 x 708 0.42 12 0.42 12 16.75 x 24.13 475 x 684<br />

Int’l C4a 22.9 x 32.4 649 x 919 0.42 12 0.35 10 22.0 x 31.7 625 x 899<br />

Int’l C5 16.2 x 22.9 459 x 649 0.42 12 0.35 10 15.34 x 22.18 435 x 629<br />

Double-postcard 14.8 x 20.0 421 x 595b 0.42 12 0.49 14 14.00 x 20.00 397 x 567<br />

420 x 567a 0.35 10 0.35 10 14.11 x 19.30 400 x 547<br />

Postcard 10 x 14.8 297 x 421b 0.46 13 0.35 10 9.56 x 14.14 271 x 401<br />

283 x 420a 0.35 10 0.35 10 9.28 x 14.11 263 x 400<br />

Ledgera 11 x 17 792 x 1224 0.16 12 0.11 8 10.68 x 16.78 768 x 1208<br />

Legal 8.5 x 14 612 x 1008 0.16 12 0.11 8 8.18 x 13.78 588 x 992<br />

Letter 8.5 x 11 612 x 792 0.16 12 0.11 8 8.18 x 10.78 588 x 776<br />

Ltr Small 8.5 x 11 612 x 792 0.35 25 0.35 25 7.8 x 10.3 562 x 742<br />

Executive 7.25 x 10.5 522 x 756 0.16 12 0.11 8 6.93 x 10.28 498 x 740<br />

Com. #10 4.125 x 9.5 297 x 684 0.16 12 0.11 8 3.79 x 9.28 273 x 668<br />

Monarch 3.875 x 7.5 279 x 540 0.16 12 0.11 8 3.555 x 7.28 255 x 524<br />

Com. #6 3.625 x 6.5 261 x 468 0.16 12 0.11 8 3.29 x 6.28 237 x 452<br />

Com. #9 3.875 x 8.875 279 x 639 0.16 12 0.11 8 3.54 x 8.666 255 x 623<br />

Customa 11.7 x 17.7 842 x 1274 0.11 8 0.11 8 11.47 x 17.47 826 x 1258<br />

7-141


7-142<br />

This page is left blank intentionally.


Numerics<br />

16-bit word, 4-13<br />

A<br />

Absolute coordinates, 2-19<br />

Absolute position, 2-2<br />

Arc, 2-10<br />

path mode drawing, 2-24<br />

B<br />

Baseline, 1-8<br />

Beveled line join, 2-21<br />

Bézier curve, 2-26<br />

Binary number, 2-13, 4-13<br />

Bit image, 2-34<br />

Bitmap font, 4-6<br />

Bitmap fonts, 1-6, 4-6<br />

block, 2-10<br />

Box, 2-6<br />

Butt cap, 2-20<br />

C<br />

Cartesian (X,Y) coordinates, 2-5<br />

Case, 1-12<br />

exception, 1-13<br />

Cassette size, 1-4<br />

Character cells, 1-8<br />

Character path, 2-33<br />

Character set<br />

KC-GL, 7-96<br />

Character spacing, 1-8<br />

Character string, 1-11<br />

Check digit, 5-2<br />

Circle, 2-9<br />

Clipping a path, 2-16<br />

Clipping path, 2-32<br />

basic concept, 1-9<br />

Clipping rectangle, 2-32<br />

Closed path, 2-29<br />

Command name, 1-4<br />

Command parameter<br />

angle parameter, 1-11<br />

character string, 1-11<br />

numeric parameter, 1-10<br />

special parameters, 1-13<br />

Complex curves, 2-26<br />

Compressing raster data, 2-34<br />

Compression (SFNT), 4-8<br />

Control byte, 2-34<br />

Control codes<br />

Diablo 630, 7-14<br />

Epson LQ-850, 7-24<br />

HP LaserJet series, 7-49<br />

IBM Proprinter, 7-6<br />

Coordinates, 1-7, 1-9, 2-2<br />

Creating new symbols, 4-12<br />

Current path, 2-18<br />

Current position, 1-7<br />

Cursor, 1-7<br />

Cursor position, 2-2<br />

Curved line, 2-16<br />

Curves drawing in path mode, 2-24<br />

D<br />

Dash pattern, 2-23<br />

defining, 2-23<br />

user defined, 2-23<br />

Dash type, 2-22<br />

Dashed line, 2-22<br />

Decimal place, 1-11<br />

Default font, 4-2<br />

Destination image, 2-37<br />

Diablo 630<br />

character set, 7-16<br />

control code, 7-14<br />

emulation, 7-12<br />

Dot resolution, 2-34, 2-36<br />

Double-high printing, 7-5<br />

Double-strike printing, 7-5<br />

Double-wide fonts, 7-21<br />

Double-wide printing, 7-5<br />

Downloadable font, 4-2<br />

Dummy parameter, 3-3<br />

Dummy sign (macro), 3-2<br />

E<br />

EAN barcode, 5-4<br />

Edge limits, 1-4, 2-32<br />

Emulation, 7-1<br />

general, 7-3<br />

selection, 7-2<br />

transmission, 1-2<br />

Ending angle, 2-24<br />

Entry and Exit, 1-2<br />

Epson LQ-850<br />

character set, 7-26<br />

Index<br />

i


control codes, 7-24<br />

emulation, 7-21<br />

Even-odd rule (FILL), 2-32<br />

F<br />

Fill pattern, 2-10<br />

defining, 2-12<br />

Filled area, 1-9, 2-30<br />

Filled block, 2-10<br />

Flag, 5-2<br />

Flatness of curves, 2-28<br />

Font<br />

characteristics, 4-9<br />

definition, 4-2<br />

identifying characteristics, 4-1<br />

selection, 4-7<br />

Font mode, 4-10, 7-22<br />

Font name, 4-6<br />

Font number<br />

assigning to a scalable font (SFNT), 4-8<br />

Font orientation, 4-9<br />

Font selection, 4-7, 7-35<br />

by embedded software commands, 4-12<br />

by PRESCRIBE, 4-7<br />

font selection commands, 4-7<br />

priority, 4-9<br />

Font selection command<br />

placement in a file, 4-11<br />

Footnote, 4-11<br />

FRPO parameters, 6-1<br />

G<br />

Graphics state, 2-39<br />

Gray scale, 2-16, 2-29, 2-30<br />

H<br />

HP LaserJet series<br />

character set, 7-67<br />

emulation, 7-33<br />

font selection, 7-35<br />

printer commands, 7-49<br />

HP PCL<br />

language, 1-13<br />

HP-GL/2<br />

language, 1-6<br />

printer commands, 7-64<br />

Human-readable text (barcode), 5-3<br />

Human-readable text (macro), 5-2<br />

I<br />

IBM Proprinter<br />

ii<br />

character set, 7-9<br />

control codes, 7-6<br />

emulation, 7-4<br />

Imaging model, 2-37<br />

International characters<br />

KC-GL, 7-109<br />

K<br />

KC-GL<br />

character sets, 7-107<br />

coordinates, 7-98<br />

default status, 7-114<br />

device control, 7-106<br />

emulation, 7-96<br />

instruction format, 7-96<br />

instructions (table), 7-111<br />

modes A and B, 7-98<br />

parameter format, 7-97<br />

pen selection, 7-99<br />

status information, 7-102<br />

KPDL, 4-4, 7-115<br />

L<br />

Line<br />

drawing, 2-2<br />

path mode, 2-18<br />

Line end (caps), 2-20<br />

Line join, 2-21<br />

Line join mode, 2-21<br />

Line printer emulation, 7-3<br />

Line width, 2-2<br />

Line-cap mode, 2-20<br />

Lines, 2-2<br />

relative, 2-4<br />

zero-relative, 2-3<br />

Logical page, 1-9<br />

M<br />

Margins, 1-4, 1-6, 2-2<br />

Memory card, 4-2<br />

Miter limit, 2-21<br />

values, 2-22<br />

Mitered line join, 2-21<br />

MSI barcode, 5-2<br />

N<br />

Native language, 1-1<br />

Notched line join, 2-21


O<br />

Origin, 1-7<br />

P<br />

Page direction, 1-5<br />

Page orientation, 1-5<br />

Path mode graphics, 2-16<br />

Pattern number, 2-22, 2-24<br />

Permanent parameters, 6-1<br />

Physical page, 1-9<br />

Pie charts, 2-14<br />

Plotter units, 7-100<br />

PRESCRIBE<br />

command length limit, 1-4<br />

format, 1-4<br />

Presentation mode, 2-36<br />

Print direction, 1-6<br />

Print model, 2-1<br />

Proportional fonts, 1-8<br />

Proportional spacing, 1-8<br />

Q<br />

Quotation marks, 1-11<br />

R<br />

Radius, 2-9, 2-15<br />

Raster data<br />

in taggged image file format, 2-34<br />

printing commands, 2-35<br />

run-length compressed, 2-34, 7-35<br />

uncompressed, 2-34<br />

Raster graphics, 2-34<br />

compression formats, 2-34<br />

Real number (KC-GL), 7-97<br />

Relative coordinates, 2-19<br />

Resident fonts, 4-2<br />

Roman Extension, 7-33<br />

Roman-8, 7-33, 7-37<br />

Roman-8 symbol set, 4-8<br />

Round cap, 2-20<br />

Round line join, 2-21<br />

Row-work, 2-13<br />

S<br />

Scalable font, 4-2<br />

assiging a font number to, 4-8<br />

lists, 4-2<br />

outline, 4-2<br />

Scaled real number (KC-GL), 7-97<br />

Scaling point (KC-GL), 7-101<br />

Short and tall parameters (barcode), 5-3<br />

Soft fonts, 4-2<br />

Source image, 2-37<br />

Spacing commands, 4-10<br />

Square cap, 2-20<br />

Standard graphics mode, 2-2<br />

Standard mode and path mode logical page, 1-9<br />

Starting angle, 2-15, 2-24<br />

Stroking a path, 2-16<br />

Subpath, 2-17<br />

basic concept, 1-9<br />

Superscripts & subscripts, 7-5<br />

Symbol set<br />

default selection, 7-37<br />

Symbol set (SFNT), 4-8<br />

T<br />

Tagged image file format (TIFF), 2-34, 7-35<br />

Text positioning, 1-7<br />

Thickness of lines, 2-3<br />

Tilt (SFNT), 4-8<br />

Transparency mode, 2-37<br />

Two’s comlement (TIFF), 2-35<br />

Typeface, 4-1<br />

U<br />

Unprintable area, 2-2<br />

Upper and lowercase letters, 1-12<br />

US ASCII, 7-3, 7-33<br />

US Legal, 7-3<br />

User unit (KC-GL), 7-100<br />

USPS (barcode), 5-2<br />

W<br />

Word-processing software, 1-5, 4-12, 7-1<br />

X<br />

X/Y (coordinates), 1-7<br />

Z<br />

Zero-relative coordinates, 2-24<br />

iii


Rev. 4.51 2008.6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!