12.11.2012 Views

ijpds formats.book - Kodak

ijpds formats.book - Kodak

ijpds formats.book - Kodak

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.

KODAK VERSAMARK IJPDS Formats<br />

Reference Guide<br />

<strong>Kodak</strong> Versamark, Inc.


KODAK VERSAMARK IJPDS Formats<br />

Reference Guide


FCC Compliance Statement<br />

This equipment has been tested and found to comply with the limits for a Class A digital device, pursuant to Part 15 of the FCC Rules. These<br />

limits are designed to provide reasonable protection against harmful interference when the equipment is operated in a commercial environment.<br />

This equipment generates, uses, and can radiate radio frequency energy and, if not installed and used in accordance with the instruction manual,<br />

may cause harmful interference to radio communications. Operation of this equipment in a residential area is likely to cause harmful interference,<br />

in which case the user will be required to correct the interference at his own expense.<br />

Note: Good quality, shielded (braided shielded) cables must be used for the RS-232-C and Centronics interfaces.<br />

Canadian EMI Compliance Statement<br />

Le présent appareil numérique n’émet pas de bruits radioélectriques dépassant les limites applicables aux appareils numériques de la classe A<br />

prescrites dans le Règlement sur le brouillage radioélectrique édicté par le ministère des Communications du Canada.<br />

This digital apparatus does not exceed the Class A limits for radio noise emissions from digital apparatus set out in the Radio Interference Regulations<br />

of the Canadian Department of Communications.<br />

EMI-CISPR 22/EN 55 022/CE Marking<br />

Warning: This is a Class A product. In a domestic environment, this product may cause radio interference in which case the user may be<br />

required to take adequate measures.<br />

KODAK VERSAMARK IJPDS Formats Reference Guide<br />

Part Number Medium Revision Date Description ECN<br />

0113991-602<br />

0113991-603<br />

Print<br />

PDF<br />

Previous Releases<br />

002 02/2005<br />

© Copyright 2005.<strong>Kodak</strong> Versamark, Inc. All rights reserved.<br />

Revised CBM, CCD, and PHR information; added new record<br />

RSRC; reformatted manual to <strong>Kodak</strong> standards<br />

Part Number Revision Date Description ECN<br />

K5123<br />

0113991-603 PDF 001 02/2004 Revised PLR and CCD information; added Appendices D and E SDP1289<br />

0113991 002 06/2000 Revised to include new records CBM and CCD PKG617<br />

0113991 001 04/1999 Revised to include new records PKG290<br />

0113770 00 11/1996 Revised to include new records 08972<br />

0113636 00 10/1995 Initial release 08134<br />

This document contains proprietary information of <strong>Kodak</strong> Versamark, Inc. or is licensors and is their exclusive property. It may not be<br />

reproduced without a written agreement from <strong>Kodak</strong> Versamark, Inc. No patent or other license is granted to this information.<br />

The software described in this document is furnished under a license agreement. The software may not be used or copied except as provided<br />

in the license agreement.<br />

<strong>Kodak</strong> Versamark, Inc. makes no warranty of any kind with regard to the contents of this document, including, but not limited to, the implied<br />

warranties of merchantability and fitness for a particular purpose. <strong>Kodak</strong> Versamark, Inc. shall not be liable for any errors or for compensatory,<br />

incidental or consequential damages in connection with the furnishing, performance, or use of this document or the examples contained herein.<br />

Information concerning products not manufactured by <strong>Kodak</strong> Versamark, Inc. is provided without warranty or representation of any kind, and<br />

<strong>Kodak</strong> Versamark, Inc. will not be liable for any damages resulting form the use of such information.<br />

<strong>Kodak</strong> and Versamark are trademarks of Eastman <strong>Kodak</strong> Company.<br />

0113991-602<br />

0113991-603 02/2005 Printed in U.S.A.


Scope<br />

This publication describes the format requirements for Inkjet Printer Data<br />

Stream (IJPDS) job files. IJPDS job files are input to KODAK VERSAMARK<br />

printing systems on magnetic tape or hard disk. Job files in IJPDS format<br />

contain special-purpose records that describe all of the information<br />

needed for a printing job.<br />

The format required for each record is described in detail in this publication,<br />

along with a discussion of the required record sequence. In addition,<br />

the magnetic tape and disk format requirements are provided.<br />

This publication is intended to be a reference guide where you can quickly<br />

find a detailed description of a particular record in the job file. Tables in<br />

Appendix A allow you to look up records alphabetically by name or<br />

numerically by control code and find a brief description of the record along<br />

with a page reference to a detailed description.<br />

Appendix C in this publication describes the support for IJPDS records<br />

provided by various KODAK VERSAMARK printers. This information should<br />

be referenced prior to the design of a job.<br />

Appendix D discusses indexing and multi-file IJPDS.<br />

Appendix E discusses the IJQ file format.<br />

The reader of this publication is assumed to be a programmer who is<br />

involved with the preparation of job files for KODAK VERSAMARK printing<br />

systems.<br />

The reader should be familiar with KODAK VERSAMARK printing systems<br />

and general inkjet printing terminology.<br />

Reference Guide iii


Scope<br />

Text Notations This manual uses the following typographical conventions.<br />

Safety Notations The following definitions indicate safety precautions to the operator.<br />

Note: Information that needs to be brought to the reader’s attention.<br />

Caution: A situation where a mistake could result in the destruction of data or<br />

system-type damage.<br />

iv IJPDS Formats<br />

This style Refers to<br />

Ready Text displayed by the software.<br />

go Anything you type, exactly as it appears, whether referenced<br />

in text or at a prompt.<br />

ENTER Special keys on the keyboard, such as enter, alt, and<br />

spacebar.<br />

[NEXT] Buttons and lights on the printer operator panel.<br />

Save Software command buttons and sections of dialog boxes,<br />

such as group boxes, text boxes, and text fields.<br />

File → Open<br />

A menu and a specific menu command.<br />

ALT+F1 Pressing more than one key at the same time.<br />

ALT, TAB Pressing more than one key in sequence.<br />

xx,yy Variable in error messages and text.<br />

jobfile.dat File names.<br />

! WARNING<br />

A potential hazard that could result in serious injury or death.<br />

! DANGER<br />

An imminent hazard that will result in serious injury or death.


Scope<br />

Service and Support Technical equipment support is available 24 hours a day, 7 days a week.<br />

Software and applications support is available 8:00 a.m. to 5:00 p.m.<br />

EST/EDT, Monday through Friday.<br />

Call for telephone or on-site technical support; to order parts or supplies;<br />

to request documentation or product information.<br />

U.S.A., Canada, and<br />

worldwide<br />

Phone Fax<br />

+1-800-472-4839<br />

+1-937-259-3739<br />

+1-937-259-3808<br />

Europe +41-21-806-0404 +41-21-806-1920<br />

Asia/Pacific Rim +65-6744-6400 +65-6744-6700<br />

Japan +81-3-3256-2613 +81-3-3256-2616<br />

Updated service<br />

information<br />

http://www.kodakversamark.com<br />

Customer support customer@kodakversamark.com<br />

Reference Guide v


Contents<br />

Chapter 1. Overview<br />

KODAK VERSAMARK Printing System Components ............................................ 1-1<br />

System Controller....................................................................................... 1-2<br />

Data Station ............................................................................................... 1-2<br />

Print Station................................................................................................ 1-2<br />

Data Station RIPs ............................................................................................. 1-3<br />

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

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

Pages and Page Buffers................................................................................... 1-5<br />

Configuring Stitched RIPs................................................................................. 1-6<br />

Image Positions (X and Y) ................................................................................ 1-6<br />

Fonts................................................................................................................. 1-8<br />

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

Category I Fonts......................................................................................... 1-8<br />

Category II Fonts...................................................................................... 1-10<br />

Regular and Super Fonts ......................................................................... 1-12<br />

Definition Records for Category I Fonts............................................. 1-13<br />

Definition Records for Category II Fonts............................................ 1-13<br />

Current Font ............................................................................................. 1-13<br />

Page Length ................................................................................................... 1-14<br />

Fixed Files ...................................................................................................... 1-15<br />

Example Record Uses .................................................................................... 1-16<br />

One Document per Cue ........................................................................... 1-16<br />

Two Documents per Cue.......................................................................... 1-17<br />

Multiple Pages per Document .................................................................. 1-17<br />

Chapter 2. Magnetic Tape Formats<br />

Tape Specifications .......................................................................................... 2-1<br />

Single File/Single Volume (without Labels)................................................ 2-1<br />

Single File/Single Volume (with Labels) ..................................................... 2-2<br />

Single File/Multiple Volume........................................................................ 2-2<br />

Tape Labels ...................................................................................................... 2-3<br />

Tape Blocking ................................................................................................... 2-5<br />

Chapter 3. Disk Formats<br />

Chapter 4. Record Formats<br />

Record Information ........................................................................................... 4-1<br />

Compression Types.......................................................................................... 4-2<br />

Reserved - 0x0000..................................................................................... 4-2<br />

32-Bit Vertical Run Length Encoding (RLEV32) - 0x0001.......................... 4-2<br />

Job Control Record 2 (JC2) .............................................................................. 4-5<br />

Select RIP (RIP) ............................................................................................... 4-7<br />

PrintHead Requirements Record (PHR)........................................................... 4-8<br />

Font Assignment Record (FAR)...................................................................... 4-10<br />

Set Resolution Multiplier (SRM)...................................................................... 4-11<br />

Page Length Requirement (PLR) ................................................................... 4-12<br />

Super Font with Metrics (SFM) ....................................................................... 4-13<br />

Reference Guide vii


Contents<br />

viii IJPDS Formats<br />

Font Definition with Metrics (FDM).................................................................. 4-14<br />

Character Definition with Metrics (CDM)......................................................... 4-15<br />

Compressed Character Definition (CCD)........................................................ 4-18<br />

Super Font Definition (SFD)............................................................................ 4-21<br />

Font Definition Record (FDR).......................................................................... 4-22<br />

Character Definition Record (CDR)................................................................. 4-23<br />

Load Fixed File (LFF)...................................................................................... 4-25<br />

End of Fixed Files (EFF) ................................................................................. 4-26<br />

Range Check Record (RCR)........................................................................... 4-27<br />

Start of Document and Cue (SDC).................................................................. 4-28<br />

Start of Document (SOD) ................................................................................ 4-30<br />

Set Position (SPO) .......................................................................................... 4-32<br />

Set Position (SPX) .......................................................................................... 4-33<br />

Set Origin (SOR) ............................................................................................. 4-34<br />

Set Relative Position (SRP) ............................................................................ 4-35<br />

Cursor Save (CSS) ......................................................................................... 4-36<br />

Cursor Restore (CSR)..................................................................................... 4-37<br />

Set Font and Spacing (SFS) ........................................................................... 4-38<br />

Set Font (SFT) ................................................................................................ 4-39<br />

Set Font and Image (SFI)................................................................................ 4-40<br />

Image a Line (IML) .......................................................................................... 4-41<br />

Two-Byte Image Line (SIL) ............................................................................. 4-42<br />

Multi-Part Line Mode (MPL) ............................................................................ 4-43<br />

Set Fixed File (SFF) ........................................................................................ 4-44<br />

Go to Fixed File (GFF) .................................................................................... 4-45<br />

Reset Fixed File (RFF).................................................................................... 4-46<br />

Unformatted Image Line (UIL)......................................................................... 4-47<br />

Space (SPC) ................................................................................................... 4-48<br />

Set Logical Function (SLF).............................................................................. 4-49<br />

Fill a Rectangular Area (BOX)......................................................................... 4-51<br />

Image Bitmap (IBM) ........................................................................................ 4-52<br />

Compressed Bitmap (CBM) ............................................................................ 4-53<br />

Remote Resource (RSRC).............................................................................. 4-54<br />

Set Page Length (SPL) ................................................................................... 4-55<br />

Start of Page (SOP) ........................................................................................ 4-56<br />

Wait for Cue (WFC)......................................................................................... 4-57<br />

Stop (STP) ...................................................................................................... 4-58<br />

Message (MSG) .............................................................................................. 4-59<br />

Verify Character Checksum (VCC) ................................................................. 4-60<br />

No Operation (NOP)........................................................................................ 4-61<br />

End of Job (EOJ)............................................................................................. 4-62<br />

Job Control Record (JCR)............................................................................... 4-63<br />

Chapter 5. Record Sequence<br />

Single-RIP System ............................................................................................ 5-1<br />

Multi-RIP System .............................................................................................. 5-4<br />

Separate Files ................................................................................................... 5-6<br />

Appendix A. Record References<br />

Appendix B. Sample Font Coding<br />

Category I Font ................................................................................................ B-2<br />

Category II Font ............................................................................................... B-4<br />

Appendix C. Printer Support for IJPDS


Contents<br />

Appendix D. Indexing and Multi-File IJPDS<br />

Basic Index Files (for Single-File IJPDS Jobs) ................................................ D-2<br />

Multiple-File (Very Large) Jobs........................................................................ D-3<br />

File Structure............................................................................................. D-3<br />

File Naming ............................................................................................... D-3<br />

Multiple-File Job index Files ............................................................................ D-4<br />

Index File Structure ................................................................................... D-4<br />

Index File Naming and Location................................................................ D-4<br />

Old Scheme (Prior to MPC4RUN.EXE Version 1.56)......................... D-4<br />

New Scheme (MPC4RUN.EXE Version 1.56 and Newer) ................. D-4<br />

Appendix E. IJQ File Format<br />

Monochrome RIP Data Structure...................................................................... E-1<br />

CMYK RIP Data Structure ................................................................................ E-1<br />

C++ Implementation of the Above Data Structures and Their Serialization ..... E-2<br />

Example of File Writing (in MFC and C++) ....................................................... E-3<br />

Glossary<br />

Reference Guide ix


Figures<br />

Figure 1.1 Printing system components....................................................... 1-1<br />

Figure 1.2 Printer components..................................................................... 1-2<br />

Figure 1.3 Physical and logical RIPs ........................................................... 1-3<br />

Figure 1.4 Printing synchronization.............................................................. 1-4<br />

Figure 1.5 X and Y directions....................................................................... 1-7<br />

Figure 1.6 Character cell.............................................................................. 1-9<br />

Figure 1.7 Building a line ............................................................................. 1-9<br />

Figure 1.8 Line positioning and spacing ...................................................... 1-9<br />

Figure 1.9 Character bounding box ........................................................... 1-10<br />

Figure 1.10 Character escapements and offsets ......................................... 1-11<br />

Figure 1.11 Line escapements..................................................................... 1-11<br />

Figure 1.12 Vertical, right-to-left, and angle printing .................................... 1-12<br />

Figure 1.13 Baseline font design ................................................................. 1-12<br />

Figure 1.14 Page length for text................................................................... 1-14<br />

Figure 1.15 Page length for position record................................................. 1-14<br />

Figure 1.16 One document per cue ............................................................. 1-16<br />

Figure 1.17 Two documents per cue ........................................................... 1-17<br />

Figure 1.18 Multiple pages per document.................................................... 1-18<br />

Figure 4.1 32-bit Vertical Run Length Encoding (RLEV32) ......................... 4-4<br />

Figure 5.1 Single RIP-record sequence....................................................... 5-3<br />

Figure 5.2 Multiple RIP sequence 1............................................................. 5-5<br />

Figure 5.3 Multiple RIP sequence 2............................................................. 5-5<br />

Tables<br />

Table 2.1 VOL1 record format ................................................................ 2-3<br />

Table 2.2 HDR1/EOV1/EOF1 record format........................................... 2-4<br />

Table A.1 Records by acronym............................................................... A-2<br />

Table A.2 Records by control code ......................................................... A-4<br />

Table C.1 Printer support for IJPDS....................................................... C-2<br />

Reference Guide xi


Chapter 1. Overview<br />

KODAK VERSAMARK Printing System Components<br />

An IJPDS job file contains all of the information needed by KODAK<br />

VERSAMARK printing systems to process and print a complete job. The<br />

IJPDS job files can be input to a printing system on magnetic tape or on a<br />

hard disk, depending on the printing system's configuration.<br />

An IJPDS job file consists of special-purpose records that are identified by<br />

control codes. Records contain such information as font identification, font<br />

bitmaps, image positions, fixed data, and variable data. All records used<br />

in IJPDS job files are described in detail in Chapter 4.<br />

To help you understand how a KODAK VERSAMARK printing system uses an<br />

IJPDS job file to print a job, this chapter begins with a brief overview of<br />

the printing system components. The remainder of the chapter is<br />

dedicated to describing some of the terms and parameters used in the<br />

IJPDS job file, including their relationships with certain records. Examples<br />

of how the records are used in an IJPDS job file are also provided.<br />

The following components are included in a KODAK VERSAMARK printing<br />

system:<br />

System controller<br />

Data station<br />

Print station<br />

Printhead(s).<br />

Figure 1.1 illustrates one possible printing system configuration:<br />

Figure 1.1 Printing system components<br />

IJPDS<br />

IJPDS<br />

System<br />

controller<br />

IJPDS<br />

Data<br />

station<br />

Print<br />

station<br />

PH<br />

Reference Guide 1 - 1


Chapter 1. Overview<br />

KODAK VERSAMARK Printing System Components<br />

1 - 2 IJPDS Formats<br />

System Controller<br />

The system controller is the PC on which the system controller software is<br />

installed. Using this software, the operator controls the operation of the<br />

printer or the printing system components. In addition, the system<br />

controller software also handles the IJPDS job files. The software accepts<br />

IJPDS job files as input, divides the IJPDS data by RIP number, and<br />

sends the IJPDS data to the correct data station.<br />

Note: Although the system controller software accepts files in other <strong>formats</strong>,<br />

only IJPDS job files are discussed in this publication.<br />

Data Station<br />

The data station uses fonts, character input data, and positioning<br />

information from the IJPDS job file to build bitmaps, which it sends to the<br />

printhead. The data station receives IJPDS job files from the system<br />

controller. Some data stations can receive job files directly from magnetic<br />

tape or network.<br />

The data station contains at least one Raster Image Processor (RIP).<br />

Each RIP feeds at least one printhead. Some data stations contain up to<br />

four RIPs and some RIPs can feed up to four printheads. In some<br />

configurations the printheads can be stitched.<br />

Print Station<br />

Fluids for the printhead are controlled by the print station. Printhead sizes<br />

vary among print stations and include 9-inch, 4-inch, and 1-inch<br />

printheads, among others.<br />

Note: The data station and print station may also be integrated in one<br />

component, called a printer. The printer's data station contains one RIP,<br />

which feeds one printhead, as shown in Figure 1.2.<br />

Figure 1.2 Printer components<br />

IJPDS<br />

Printer<br />

Data<br />

station Print<br />

station<br />

PH


Data Station RIPs<br />

Chapter 1. Overview<br />

Data Station RIPs<br />

The data station's RIP uses input character data and fonts from the IJPDS<br />

job file to build a bitmap in a page buffer that represents the image to be<br />

printed. Each bit in a page buffer represents a dot in the image to be<br />

printed. Each bitmap represents one page of the document to be printed.<br />

Some printing systems contain more than one RIP. In a multi-RIP system,<br />

information in an IJPDS job file must be divided among the RIPs used for<br />

the job using a RIP record.<br />

Each RIP can control from one to four printheads, depending on the data<br />

station, print station, and the width of the printhead being used.<br />

Multiple printheads can be stitched so that the image appears to have<br />

been printed by one printhead. Stitching printheads can greatly increase<br />

the maximum contiguous width of the image to be printed. If stitched<br />

printheads are controlled by separate RIPs, the RIPs are also said to be<br />

stitched.<br />

In the IJPDS job file, the physical RIPs are numbered consecutively<br />

starting with 0. Logical RIP numbers are required when two physical RIPs<br />

are stitched. For example, in Figure 1.3, because RIPs 1 and 2 in data<br />

station 1 are stitched, RIP 0 is used as the logical RIP number for the two<br />

stitched RIPs.<br />

The system controller in Figure 1.3 interprets the RIP numbers in the<br />

IJPDS job file and directs the data to the appropriate RIP in the<br />

appropriate data station.<br />

Figure 1.3 Physical and logical RIPs<br />

IJPDS System<br />

controller<br />

Data<br />

station<br />

1<br />

Data<br />

station<br />

2<br />

Data<br />

station<br />

3<br />

Data<br />

station<br />

4<br />

RIP 1 PH<br />

RIP 2<br />

RIP 1<br />

RIP 2<br />

RIP 1<br />

RIP 2<br />

RIP 1<br />

RIP 2<br />

Physical RIPs<br />

(No stitching)<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6<br />

7<br />

Logical RIPs<br />

(DS1, RIPs 1&2<br />

stitched)<br />

Reference Guide 1 - 3<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

6


Chapter 1. Overview<br />

Synchronization<br />

Synchronization<br />

Documents<br />

1 - 4 IJPDS Formats<br />

The components of printing systems can be mixed to form a customized<br />

printing arrangement. For example, the system controller can be used to<br />

synchronize printing for an IJPDS job file containing data for several<br />

different data stations and printers. The IJPDS job file may contain data<br />

for one or all of the data stations.<br />

The system controller divides the data between the data stations using<br />

the RIP records in the IJPDS job file. All RIPs in the configuration are<br />

numbered consecutively as shown in Figure 1.4. The first two RIPs in the<br />

second data station are stitched so only one logical RIP number is<br />

assigned. Tach and cue signals to the various printers and data stations<br />

are synchronized by the system controller to ensure proper print<br />

registration.<br />

Figure 1.4 Printing synchronization<br />

IJPDS System<br />

controller<br />

Data<br />

station RIP 1<br />

1<br />

Data<br />

station<br />

2<br />

RIP 1<br />

RIP 2<br />

RIP 3<br />

RIP 4<br />

Printer RIP 1<br />

Physical RIPs Logical RIPs<br />

A document is a unit of input data that is printed in one area on the<br />

substrate. In this publication, the term document does not refer to<br />

physical media used in cut-sheet printing, such as an envelope.<br />

KODAK VERSAMARK printing systems print a series of documents<br />

containing both fixed and variable data. Fixed data is information that is<br />

the same on all documents; it is obtained from fixed files in the IJPDS job<br />

file. Variable data is information that can change from one document to<br />

another; there is individual data in the IJPDS job file for each document.<br />

Normally, there is one document printed for each cue mark on a web or<br />

one document printed for each piece in cut-sheet printing.<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

PH<br />

0<br />

1<br />

2<br />

3<br />

4<br />

5<br />

0<br />

1<br />

2<br />

3<br />

4


Pages and Page Buffers<br />

Chapter 1. Overview<br />

Pages and Page Buffers<br />

Multiple RIPs may be involved in printing the documents. An example is<br />

duplex printing where one RIP prints one side of the document and<br />

another RIP prints the other side. Another example is spot color, where a<br />

separate RIP and printhead are used to print a color segment. There are<br />

records in the IJPDS job file that provide each RIP with the information<br />

necessary to print a portion of each document. The physical width of the<br />

documents depends on the number and spacing of the printheads. The<br />

length is controlled by information in the IJPDS job file.<br />

The PLR (Page Length Requirement) record may be used to make the<br />

length of the buffer longer than these defaults if a long document requires<br />

it, at the expense of font memory. Using a PLR to call for the page buffer<br />

to be shorter than the default has no effect. There's no appreciable impact<br />

on performance with a change in PLR value. (See Appendix C for which<br />

RIP/software versions support PLR.)<br />

A page consists of the data for a document in a page buffer. If the<br />

document data is equal to or less than the page buffer length, there is one<br />

page per document. If the document data length is greater than the length<br />

of the page buffer, a record in the IJPDS job file starts another page (page<br />

buffer), resulting in two or more pages per document. The width of the<br />

document data cannot be greater than the width of the page buffer or the<br />

data outside the buffer will be lost (except in the case where two RIPs are<br />

stitched, creating a super RIP as explained later).<br />

There is one page buffer for each RIP. The page buffer size depends on<br />

the printing system. The width of the page buffer depends on number of<br />

jets in the printhead(s) driven from the RIP. For example, 2688 jets at<br />

300dpi is 8.96 inches, the actual print width of the 9-inch printhead. Page<br />

buffer length is hardware defined except for the CD120 and CD130 data<br />

stations, which are software configurable by means of the PLR record.<br />

The data stations' hardware lengths (and their default lengths) are<br />

described in the following bulleted list of example page buffer sizes.<br />

Appendix C lists which RIPs and software versions support PLR (and all<br />

other IJPDS commands.)<br />

The page buffer size is not related to the physical page size. A 17-inchlong<br />

document, printed as one buffer page, could be cut or folded into two<br />

final physical pages. Also, a 25-inch-long document, printed as two buffer<br />

pages, could be one long physical page.<br />

Example sizes of some page buffers for printheads are as follows:<br />

4096 bits by 4096 bits, representing the print width of four 4-inch<br />

printheads and a maximum page length of 17.07 inches (43.35 cm).<br />

This is the CD3000 data station RIP.<br />

2688 bits by 10240 bits, representing the print width of one 9-inch<br />

printhead and a maximum page length of 34.13 inches (86.69 cm) at<br />

300 dpi and 17.07 inches (43.36 cm) at 600 dpi. This is the CD120<br />

data station 9-inch RIP.<br />

1024 bits by 4096 bits, representing the print width of one 4-inch<br />

printhead and a maximum page length of 17.07 inches (43.35 cm).<br />

This is the CD100 or CD120 data station 4-inch RIP.<br />

256 bits by 5280 bits, representing the print width of one 1-inch<br />

printhead and a maximum page length of 22 inches (55.88 cm). This<br />

is the DP5120/DP5240 data station RIP.<br />

Reference Guide 1 - 5


Chapter 1. Overview<br />

Configuring Stitched RIPs<br />

Configuring Stitched RIPs<br />

Image Positions (X and Y)<br />

1 - 6 IJPDS Formats<br />

Some printing systems with multiple printheads contain multiple,<br />

physically separate RIPs in the same data station. The page buffers for<br />

each RIP represent the width of the printhead. Two or more RIPs can be<br />

treated as a combined, single RIP, called a super RIP and the resulting<br />

page buffer is as wide as the number of printheads. (For example, the<br />

page buffer for each 4-inch printhead RIP is 1024 bits by 4096 bits. If the<br />

RIPs for two 4-inch printheads are treated as a super RIP, data is sent to<br />

the super RIP as if the page buffer were 2048 dots wide.)<br />

The PLR may be used to make the length of the buffer longer than these<br />

defaults if a long document requires it, at the expense of font memory.<br />

Using a PLR to call for the RIP to be shorter than the default has no<br />

effect. There is no appreciable impact on performance with a change in<br />

PLR value.<br />

When two or more RIPs are stitched, the IJPDS file should be built as if<br />

there were a single larger RIP. If you want four 4-inch printheads to be<br />

stitched, you configure the data for one 17-inch RIP and the operator<br />

must configure the controller and data stations to stitch the four<br />

printheads/RIPs after which the data stations will all be sent the 17-inch<br />

data and each RIP will print its 4-inch (1024-dot) “slice”, clipping the parts<br />

that “fall off” either side. This 17-inch logical RIP is called a super RIP.<br />

Presently the equipment will not configure this automatically from the<br />

stitched RIP indicator bits, but some future system might, so the job<br />

should be described the job correctly, both in these bits and in the PHR<br />

records (where you indicate there are four 1024-bit heads, and their<br />

positions, in the 17-inch RIP).<br />

You should also produce some sort of setup document for the operator,<br />

as operators cannot easily determine the desired configuration from what<br />

the controller tells them when they load the job.<br />

Since you send stitched-RIP data as one larger RIP, the IJPDS proofer<br />

software shows it as if it were one larger RIP, but it is possible in proofer<br />

version 3.1 and above to use Show Stitch Lines in the View menu, or the<br />

corresponding toolbar button, to show the stitch lines (in red) for purposes<br />

of determining what printed data may be running across the stitch.<br />

An image is a pattern of filled and unfilled dots. It can be a character, a<br />

line of characters, or a graphic. Position records within the IJPDS job file<br />

specify starting positions on the document for the image data that follows.<br />

A starting position is defined by X and Y coordinates and can be absolute<br />

or relative.<br />

The cursor position at the start of a document is set to the upper left<br />

corner of the document as viewed from the printhead looking in the<br />

direction of substrate movement. As shown in Figure 1.5, the X,Y<br />

coordinates for the upper left corner of the document are 0,0, which is the<br />

cursor origin position. If a set origin record (SOR) occurs somewhere on<br />

the page, the origin is reset to the current cursor position.


Chapter 1. Overview<br />

Image Positions (X and Y)<br />

Position records in the IJPDS job file have the following effects:<br />

Set position record SPO or SPX uses the origin as a reference. If the<br />

origin is 0,0, the SPO record contains the coordinates for an absolute<br />

starting position. If the origin has been reset, the SPO contains a<br />

relative starting position.<br />

Set relative position record SRP always uses the current cursor<br />

position as a reference and, therefore, contains a relative starting<br />

position.<br />

Starting position is not the same as cursor position. The current starting<br />

position is the last position set by an SPO, SRP, SPX, or a cursor restore<br />

(CSR) record. The cursor position moves as each character is placed in<br />

the page buffer, but the starting position remains the same until it is<br />

changed by another SPO, SRP, SPX, or CSR record.<br />

The X direction is perpendicular to substrate movement and is sometimes<br />

called the horizontal direction. The Y direction is in the direction opposite<br />

substrate movement and is sometimes called the vertical direction. X and<br />

Y values can be positive or negative. The arrows in Figure 1.5 indicate<br />

the positive directions.<br />

The measurement unit used for X and Y distances in IJPDS job files is the<br />

dot. The dot represents the distance between pixels (dots) in the printed<br />

image. For example, for 240 dots-per-inch (dpi) printheads, the<br />

measurement is 1/240 inch.<br />

In Figure 1.5, one 4-inch, 240-dpi printhead is shown printing documents.<br />

The X and Y coordinates at the end of the document are X = 1023 dots<br />

and Y = 4095 dots. This represents a maximum document size of 4.27<br />

inches (10.8 cm) wide and 17.07 inches (43.35 cm) long.<br />

Figure 1.5 X and Y directions<br />

Documents<br />

Cue marks<br />

If additional printheads are introduced, the maximum document width<br />

depends on the printhead sizes and the physical spacing of the<br />

printheads. The maximum length of the document is dependent on the<br />

printing system.<br />

The cue marks shown in Figure 1.5 are preprinted on the web and are<br />

used by the printing system to synchronize the start of documents. An<br />

optical sensor detects the cue marks and generates a cue signal. For cutsheet<br />

printing, the sensor detects the leading and trailing edges of each<br />

piece.<br />

Reference Guide 1 - 7


Chapter 1. Overview<br />

Fonts<br />

Fonts<br />

1 - 8 IJPDS Formats<br />

Although the bitmaps for some images to be printed are included in the<br />

IJPDS data stream (IBM and/or CBM record) and the bitmaps for other<br />

images are built from parameters in the BOX record, most images are<br />

identified as characters in a font. The characters in a font are stored as<br />

bitmaps in the printing system and accessed as required by the data and<br />

command records in the IJPDS job file to build a page buffer of the image.<br />

IJPDS job files can contain two types of fonts: category I and category II.<br />

Line and Character Spacing<br />

Both category I and category II fonts are affected by the use of four<br />

spacing values contained in several IJPDS records. The four spacing<br />

values are:<br />

Character spacing in the X dimension<br />

Character spacing in the Y dimension<br />

Line spacing in the X dimension<br />

Line spacing in the Y dimension.<br />

The four spacing values in effect at the time characters are being inserted<br />

into the page buffer are added to the corresponding values defined in the<br />

font. The spacing values in effect are those set by the last record<br />

executed that contained spacing values.<br />

An InterLine Spacing (ILS) value can be specified in start-of-document<br />

(SOD and SDC) and set font (SFI and SFT) records. ILS is a positive Y<br />

dimension value. When a record containing an ILS value is executed, the<br />

Y line spacing value is set to the ILS value and the other three spacing<br />

values are set to zero.<br />

A set font and spacing (SFS) record contains fields for all four spacing<br />

values and sets all values to those contained in the record.<br />

Category I Fonts<br />

The category I font format defines each character within a cell. The cell<br />

contains all data needed to define the character itself in addition to data<br />

that defines space around the character. See Figure 1.6.<br />

Note: The following description of character and line spacing for the category I<br />

font assumes an upright font orientation.<br />

Horizontal spacing in the cell provides built-in character-to-character<br />

spacing (X escapement). Each character cell in a font can have a unique<br />

width to provide proportional spacing. The width is defined in the<br />

character definition record (CDR) for each character. Vertical spacing in<br />

the cell provides built-in line spacing (Y escapement). All cells in a font<br />

must have the same height. The height is defined in the font definition<br />

record (SFD or FDR) and applies to all characters in the font.


Character cell<br />

Cursor positions<br />

Starting position<br />

Cell widths<br />

Interline spacing<br />

(ILS)<br />

Figure 1.6 Character cell<br />

Chapter 1. Overview<br />

Fonts<br />

When building the page buffer, the upper left corner of the first character<br />

cell in a line is placed at the current cursor position. The cell for the next<br />

character in the line is placed next to the first character. The Y coordinate<br />

of the cursor for the second character is the same as the first character<br />

and the X coordinate is increased by the width of the first character cell.<br />

This process continues until the end of the line is reached. Refer to Figure<br />

1.7.<br />

Figure 1.7 Building a line<br />

Cell<br />

height<br />

If the last record executed with spacing values was an SFS, the X and Y<br />

character spacing values in that record can alter the spacing between<br />

characters and the alignment of the characters. The X value is added to<br />

the character width and the Y value moves the cursor for the next<br />

character in the Y dimension.<br />

The X coordinate of the cursor for the first character in the second line is<br />

the same as that for the first character in the first line. The Y coordinate<br />

for the second line is increased by the cell height for the font plus any ILS<br />

specified in the font record (SFD or FDR) or in other IJPDS records, such<br />

as SOD, SDC, SFT, or SFI. The ILS in the last record executed is the one<br />

used. See Figure 1.8.<br />

Figure 1.8 Line positioning and spacing<br />

Reference Guide 1 - 9


Chapter 1. Overview<br />

Fonts<br />

1 - 10 IJPDS Formats<br />

Bounding box<br />

If the last record executed with spacing values was an SFS, the X and Y<br />

line spacing values in that record affect the cursor position for the starting<br />

point of the next line. The Y value is added to the cell height and the X<br />

value moves the cursor for the starting point of the next line in the X<br />

dimension.<br />

Category II Fonts<br />

Category II fonts use positive and negative escapements and offsets for<br />

each character. Using these parameters, you can arrange the characters<br />

in a variety of ways.<br />

Each character in a category II font is defined in a box called a bounding<br />

box. As shown in Figure 1.9, a bounding box encloses all dots required to<br />

define the character, but does not normally include space around the<br />

character. The bounding box for each character has its own height and<br />

width as defined in the character definition record (CDM or CCD).<br />

Figure 1.9 Character bounding box<br />

The upper left corner of the bounding box is positioned in the page buffer<br />

according to the values for the X and Y offsets in the CDM or CCD. The<br />

offsets are signed binary fields and, therefore, can be negative or positive<br />

values.<br />

The upper left corner of the bounding box for the first character in a line is<br />

placed at the position determined by adding the X and Y character offset<br />

values to the current cursor position. In the first example in Figure 1.10,<br />

the a character has an X offset of 0 and a positive Y offset. The cursor<br />

position for the next character is then determined by adding the X and Y<br />

character escapement values to the cursor position for the first character.<br />

Note: The cursor position for the first character is the cursor position before the<br />

offset values for the first character are added. The offset values do not<br />

change the cursor position.<br />

In the second example in Figure 1.10, the a character has a Y<br />

escapement of 0 and a positive X escapement. The upper left corner of<br />

the j character bounding box is then determined by adding the offset<br />

values for j to the cursor position. Using a negative X offset for j allows<br />

overlapping of the two characters. The character spacing X and Y values<br />

are added to the X and Y character escapement values in the CDM or<br />

CCD. The SFS record provides a means of altering the spacing between<br />

characters.


Cursor position<br />

Positive Y offset for a<br />

Y line escapement<br />

X line escapement<br />

Figure 1.10 Character escapements and offsets<br />

Positive X escapement for a<br />

Negative X offset for j<br />

Positive Y offset for j<br />

Chapter 1. Overview<br />

Fonts<br />

This process of building a line continues until the end of the line is<br />

reached. The cursor position for the first character in the second line is<br />

determined by adding the X and Y escapement values in the font<br />

definition record (SFM or FDM) to the cursor position for the first<br />

character in the first line. See Figure 1.11.<br />

Figure 1.11 Line escapements<br />

The X and Y line spacing values are added to the X and Y line<br />

escapement values in the SFM or FDM. Interline spacing can therefore be<br />

controlled by line spacing values in the SFS record or the ILS value in an<br />

SOD, SDC, SFT, or SFI record.<br />

Figure 1.12 shows that by setting the X escapement value to 0 and the Y<br />

escapement to a positive value, vertical printing of upright fonts is<br />

achieved. Right-to-left printing is achieved by setting the Y escapement<br />

value to zero and setting negative values for the X escapement.<br />

Reference Guide 1 - 11


Chapter 1. Overview<br />

Fonts<br />

Negative Y offset for f<br />

1 - 12 IJPDS Formats<br />

Category II fonts allow the printing of a line at any angle as shown in<br />

Figure 1.12. As seen for the character A, the characters must be defined<br />

at an angle in their bounding boxes. The character escapement values<br />

are then used to produce angle printing.<br />

Figure 1.12 Vertical, right-to-left, and angle printing<br />

Vertical printing<br />

X escapement = 0<br />

Y escapement = n<br />

Character offsets let you design fonts using a baseline method. This<br />

method, illustrated in Figure 1.12, uses a negative Y offset for each<br />

character to place the character above the cursor position in the page<br />

buffer. Therefore, a baseline for all characters can be maintained.<br />

As shown in the illustration, the baseline method is useful when there is<br />

the possibility of changing font sizes in a line. The f character in Figure<br />

1.13 is larger than the other characters but maintains the same baseline.<br />

Figure 1.13 Baseline font design<br />

Regular and Super Fonts<br />

Right-to-left printing<br />

X escapement = negative n<br />

Y escapement = 0<br />

Angle printing<br />

Baseline<br />

X character escapement<br />

Y character escapement<br />

Both category I and category II fonts can be regular or super. A regular<br />

font is a single-byte font that allows each character to be accessed with a<br />

1-byte code. For example, a 1-byte code of hexadecimal 41 is used to<br />

access the text character A in an ASCII text font. A super font is a doublebyte<br />

font that allows each character to be accessed with a 2-byte code.<br />

Super fonts are required for languages with more than 256 characters in a<br />

font.<br />

The number of regular and super fonts, including both category I and<br />

category II, in an IJPDS job file cannot exceed 255.


Definition Records for Category I Fonts<br />

Chapter 1. Overview<br />

Fonts<br />

Regular fonts are described in the IJPDS job file using font definition<br />

records (FDR) and character definition records (CDR). Each font has one<br />

FDR that provides a general description of the font. Immediately following<br />

each FDR, up to 256 CDRs (plus a default CDR) define the bitmaps for<br />

each character in the font.<br />

For super fonts, the first byte of the 2-byte code identifies a subfont of the<br />

super font and the second byte identifies the character in that subfont.<br />

Super fonts are described in the IJPDS job file using super font definition<br />

(SFD) records. Each super font has one SFD that provides a general<br />

description of the font. Immediately following the SFD, up to 256 FDRs<br />

describe each subfont in the super font. Immediately following each FDR,<br />

up to 256 CDRs (plus a default CDR) define the bitmaps for each<br />

character in the subfont.<br />

Since there is no way for the Data Station to tell whether a subsequent<br />

FDR begins a new single-byte font or another subfont to the super font it<br />

has been loading, any SFD-style (category I) super fonts for a RIP must<br />

be loaded after all single-byte FDR-style fonts for that RIP. (This is not a<br />

problem with category II fonts as SFMs do not have subfonts.)<br />

The preferred method of specifying a default character for the entire<br />

super font is to include one default CDR immediately after the SFD, rather<br />

than including a default CDR after each FDR.<br />

Definition Records for Category II Fonts<br />

Regular fonts are described in the IJPDS job file using font definition with<br />

metrics (FDM) records and character definition with metrics (CDM)<br />

records or compressed character definition (CCD) records. Each font has<br />

one FDM that provides a general description of the font. Immediately<br />

following each FDM, up to 256 CDMs or CCDs (plus a default CDM or<br />

CCD) define the bitmaps for each character in the font.<br />

For super fonts, the 2-byte code identifies one of up to 65,536 characters<br />

in the super font. Super fonts are described in the IJPDS job file using<br />

super font with metrics (SFM) records. Each super font has one SFM that<br />

provides a general description of the font. Immediately following the SFM,<br />

up to 65,536 CDMs or CCDs (plus a default CDM or CCD) define the<br />

bitmaps for each character in the super font.<br />

Current Font<br />

In Chapter 4, the descriptions for some record fields refer to the “current<br />

font”. The current font is the font currently in effect. It is the last font<br />

specified, in execution order, by an IJPDS job file record. Notice that<br />

execution order of records determines the current font rather than the<br />

order of records in the IJPDS job file. Because some records that specify<br />

fonts occur in fixed files, they may be executed in a different order than<br />

the order in which they appear in the IJPDS job file.<br />

The current font is set to a starting or default font at the start of each new<br />

document. Refer to the description for the SOD or SDC record in<br />

Chapter 4.<br />

Reference Guide 1 - 13


Chapter 1. Overview<br />

Page Length<br />

Page Length<br />

1 - 14 IJPDS Formats<br />

Page length<br />

(Number of rows used)<br />

Cell height<br />

ILS<br />

Page length<br />

(Number of rows used)<br />

SPO<br />

X = 3<br />

Y = 9<br />

The length of a page is determined by the number of dot rows from row 0<br />

(Y = 0) up to and including the highest row used before a new page is<br />

started (by an SOP, SOD, SDC, or WFC record). When a new page is<br />

started, the previous page is printed up through the highest row used.<br />

Page length is defined as the number of dot rows used. Because the first<br />

row is identified as Y = 0, the page length is one more than the highest<br />

row used.<br />

For example, if a page consists of only one line of text using an upright<br />

category I font, the page length is the number of rows up to and including<br />

the last row of interline spacing following the line of text. Assuming that<br />

the character cell height is 10 dot rows and the interline spacing is 3 dot<br />

rows, the page length is 13 dot rows. Refer to Figure 1.14.<br />

Figure 1.14 Page length for text<br />

X = 0<br />

Y = 0<br />

Highest row used<br />

(Y coordinate)<br />

If the cursor is left at the end of the page by a set position record (SPO),<br />

the page length is equal to the Y position parameter in the SPO record<br />

(assuming an origin of Y=0). The row previous to that identified by the Y<br />

parameter is the last row on the page. In Figure 1.15, the page length is 9<br />

dot rows.<br />

Figure 1.15 Page length for position record<br />

X = 0<br />

Y = 0<br />

Highest row used<br />

(Y coordinate)


Fixed Files<br />

Chapter 1. Overview<br />

Fixed Files<br />

If font characters are the lowest elements on a page, the following rules<br />

apply. For a left-rotated or inverted font, the page length is one more than<br />

the Y position of the start of line. If a right-rotated font is being used, the<br />

page length is the number of dot rows up to and including the last column<br />

of the last character.<br />

The page length is determined by the last dot row used by any record on<br />

the page. Records that affect the page length are SFI, IML, SIL, UIL,<br />

SPO, SPX, SRP, SPC, BOX, CBM, and IBM. For the SFI, IML, SIL, UIL,<br />

and SPC records, the font orientation determines the effect as previously<br />

described. If a BOX, CBM, or IBM image is the lowest element on a page,<br />

the page length is the starting Y position plus the height.<br />

Instead of using the default page length based on the image data on the<br />

page as just described, you can set the page length using the SPL record.<br />

The page length can be set to be longer or shorter than the space<br />

occupied by the image data. If the length is set to be shorter than the<br />

image length, part of the image will be clipped. If the page length is set to<br />

be longer than the image length, white space is included up to the<br />

specified length.<br />

Note: The PLR won't set the page length to less than the default:<br />

4096 for printhead resolution 120 or 240 dpi;<br />

10240 for printhead resolution 300 or 600 dpi.<br />

The fixed file area is a storage area in the data station where fixed<br />

information may be kept, so that the same information does not need to<br />

be read repeatedly from the input file.<br />

Each RIP may have up to 256 fixed files, numbered from 0 to 255. Each<br />

fixed file may contain any number of records. The maximum amount of<br />

fixed file storage available is printer dependent.<br />

The fixed files for each RIP are loaded at the beginning of the job, after<br />

the fonts. The start of each fixed file is indicated by an LFF record. The<br />

LFF record is not stored as part of the fixed file. The end of the last fixed<br />

file for each RIP is indicated by an EFF record. All records between the<br />

first LFF and the EFF for each RIP are stored in the fixed file area, except<br />

for the LFF, EFF, and RIP records.<br />

During generation of documents, the data station maintains a pointer to<br />

the current position of each fixed file for each RIP. At the start of a<br />

document, all the pointers are reset to the start of their respective fixed<br />

files. During processing of a document, the pointers may be changed, and<br />

records stored in the fixed files may be executed, by use of the SFF, GFF,<br />

and RFF commands.<br />

Refer to Chapter 5 for a list of the records allowed in the fixed files.<br />

Reference Guide 1 - 15


Chapter 1. Overview<br />

Example Record Uses<br />

Example Record Uses<br />

1 - 16 IJPDS Formats<br />

This section provides a general description of how documents and pages<br />

are controlled by records in the IJPDS job file. Examples of record<br />

sequences are used to illustrate concepts. Remember that these are<br />

examples only and do not imply that the record sequences shown must<br />

be used. For more information about any of the records discussed, refer<br />

to Chapter 4.<br />

One Document per Cue<br />

Normally, as shown in Figure 1.16, there is only one document between<br />

cues. The document is started by a start-of-document record (SDC) that<br />

tells the printing system to wait for a cue signal before starting the<br />

document and to start a page buffer at the X,Y coordinates of 0,0.<br />

In this example, the SDC record is followed by an SPO record that<br />

positions the cursor to a specific position on the document. Following the<br />

SPO record are three IML records that cause the printing of three text<br />

lines, starting at the current cursor position.<br />

Because line 3 is the end of the document, it is immediately followed by<br />

another SDC record. This SDC record ends the current document and<br />

page and tells the printing system to wait for another cue before starting<br />

the next document and to start a new page buffer at the X,Y coordinates<br />

of 0,0.<br />

Notice that the page and document are both ended immediately after<br />

line 3.<br />

Figure 1.16 One document per cue<br />

Start of page and document<br />

End of page and document<br />

Start of next page and document<br />

Records in Job file<br />

.<br />

Start of Document and Cue (SDC)<br />

Set Position (SPO)<br />

Image a Line (IML)<br />

Image a Line (IML)<br />

Image a Line (IML)<br />

Start of Document and Cue (SDC)<br />

.


Two Documents per Cue<br />

Chapter 1. Overview<br />

Example Record Uses<br />

Two documents can be printed between cues by alternating SDC and<br />

SOD records. Although the SDC record requires the printing system to<br />

wait for a cue before starting the document, the SOD record does not.<br />

Therefore, an SOD record starts another document immediately.<br />

Figure 1.17 shows the records required to produce two documents per<br />

cue. The first document starts at a cue because of the SDC record. The<br />

second document is started by an SOD record that does not require a<br />

cue. The second document, therefore, begins immediately after the space<br />

inserted by the SPC record after line 3 of the first document.<br />

The third document is defined by an SDC record and waits for the next<br />

cue before starting.<br />

Figure 1.17 Two documents per cue<br />

Start of page and document<br />

End of page and document<br />

Start of next page and document<br />

End of page and document<br />

Start of next page and document<br />

Multiple Pages per Document<br />

Records in Job file<br />

.<br />

Start of Document and Cue (SDC)<br />

Set Position (SPO)<br />

Image a Line (IML)<br />

Image a Line (IML)<br />

Image a Line (IML)<br />

Space (SPC)<br />

Start of Document (SOD)<br />

Set Position (SPO)<br />

Image a Line (IML)<br />

Image a Line (IML)<br />

Image a Line (IML)<br />

Start of Document and cue (SDC)<br />

.<br />

Assume that the maximum length of the page buffer in a printing system<br />

is 4096 dots. If a document exceeds this length, multiple pages are<br />

required. Figure 1.18 illustrates the multiple page situation.<br />

Note: The page length limit for the CD3000 and CD100 data stations is 4096<br />

dots. The page length limit for CD120 data stations is settable by PLR (in<br />

version 1.16, and was larger than 4096 dots in prior versions, to support<br />

300x600 resolution). The DP5120/DP5240 printer data stations have<br />

larger limits; see the 5120/5240 documentation.<br />

In Figure 1.18, there is one document between cues and that document is<br />

4900 dots in length. Therefore, two page buffers are required to store the<br />

document. The document must be divided into pages by a start of page<br />

(SOP) record before it overflows the page length limit of 4096 dots.<br />

Although the division of the document into pages can occur anywhere<br />

before the 4096 dot limit is reached, it is recommended for system<br />

efficiency that the pages be balanced in size as nearly as possible.<br />

Reference Guide 1 - 17


Chapter 1. Overview<br />

Example Record Uses<br />

1 - 18 IJPDS Formats<br />

Figure 1.18 Multiple pages per document<br />

Start of page and document<br />

Start of new page<br />

End of document<br />

2300 dots<br />

Start of new page and<br />

next document<br />

Start of Document and Cue (SDC)<br />

Image a Line (IML)<br />

Image a Line (IML)<br />

Start of Page (SOP)<br />

Image a Line (IML)<br />

Image a LIne (IML)<br />

Start of Document and Cue (SDC)<br />

Note: For compatibility with older IJPDS job files, the DS3000 series printing<br />

system will automatically divide a document into pages if an upright font is<br />

being used and the length of the document exceeds 4096 dots. This<br />

feature is available only when using the JCR record for DS2900 jobs (see<br />

JCR record in Chapter 4).<br />

.<br />

.


Tape Specifications<br />

Chapter 2. Magnetic Tape Formats<br />

IJPDS job files can be stored on disk or magnetic tape. This chapter<br />

describes the format required for magnetic tape. The disk format is<br />

described in Chapter 3.<br />

IJPDS job files on tape require 9-track magnetic tape using either no<br />

labels or IBM standard labels. Recording densities of 1600 or 6250 bits<br />

per inch (bpi) can be used.<br />

The tape uses variable-length record and variable-length block structures.<br />

Because the tape format does not exactly match any of the <strong>formats</strong><br />

defined by IBM, the format is considered as format U (Undefined) when<br />

processing the tape on an IBM mainframe.<br />

Two IBM-standard volume organizations are supported by KODAK<br />

VERSAMARK printing systems:<br />

Single file/single volume<br />

Single file/multiple volume.<br />

Only IBM standard labels are used in both volume organizations. User<br />

labels are ignored. Tapes for the single file/single volume organization<br />

can be generated with or without labels. Tapes for the single file/multiple<br />

volume organization must have labels.<br />

Note: If a tape is being prepared for use with the CS100 system controller, a<br />

single file/single volume tape with labels is required.<br />

Single File/Single Volume (without Labels)<br />

In a single file/single volume organization, a single file appears on a<br />

single tape volume. The following format is required for this volume<br />

organization when labels are not generated.<br />

- Tape Mark (optional)<br />

Job File<br />

- Tape Mark<br />

Reference Guide 2 - 1


Chapter 2. Magnetic Tape Formats<br />

Tape Specifications<br />

2 - 2 IJPDS Formats<br />

Single File/Single Volume (with Labels)<br />

In a single file/single volume organization, a single job file appears on a<br />

single tape volume. The following format is required for this volume<br />

organization when labels are used.<br />

VOL1 - Volume Label<br />

HDR1 - Standard Header Label 1<br />

HDR2 - Standard Header Label 2 (optional)<br />

- Tape Mark<br />

Job File<br />

- Tape Mark<br />

EOF1 - End-of-File Trailer Label 1<br />

EOF2 - End-of-File Trailer Label 2 (optional)<br />

- Tape Mark<br />

- Tape Mark<br />

Single File/Multiple Volume<br />

In a single file/multiple volume organization, the contents of a single job<br />

file can be on multiple tape volumes. The following labels and tape marks<br />

are required for this volume organization.<br />

VOL1 - Volume Header Label<br />

HDR1 - Standard Header Label 1<br />

HDR2 - Standard Header Label 2 (optional)<br />

- Tape Mark<br />

Job File (Section 1)<br />

- Tape Mark<br />

EOV1 - End-of-Volume Trailer Label 1<br />

EOV2 - End-of-Volume Trailer Label 2 (optional)<br />

- Tape Mark<br />

The preceding pattern is repeated for tape reel 1 through tape reel n-1.<br />

The last tape reel (n) requires the following format.<br />

VOL1-Volume Header Label<br />

HDR1-Standard Header Label 1<br />

HDR2-Standard Header Label 2 (optional)<br />

-Tape Mark<br />

Job File (Section n)<br />

-Tape Mark<br />

EOF1-End-of-File Trailer Label 1<br />

EOF2-End-of-File Trailer Label 2 (optional)<br />

-Tape Mark<br />

-Tape Mark


Tape Labels<br />

Chapter 2. Magnetic Tape Formats<br />

Tape Labels<br />

Certain fields in the volume (VOL1) label and header/trailer 1 (HDR1/<br />

EOF1/EOV1) labels are processed by some KODAK VERSAMARK printing<br />

systems. The header/trailer 2 (HDR2/EOF2/EOV2) labels are not used.<br />

The volume serial number in the first reel's VOL1 header is saved for<br />

comparison in the event that this is a multiple volume file. For each<br />

subsequent tape reel, the data set serial number in the HDR1 header is<br />

compared to the volume serial number in the first reel's VOL1 header.<br />

This comparison makes sure that the tape reels are part of the same job<br />

file. The volume owner field in the VOL1 header is saved by some printing<br />

systems.<br />

The volume sequence number in the HDR1 header is checked for each<br />

tape reel to make sure that the reels are mounted in the proper sequence.<br />

The following fields in the HDR1 header are saved by some printing<br />

systems:<br />

Data set name<br />

Creation date<br />

Expiration date.<br />

Tables 2.1 and 2.2 provide a general outline of the IBM VOL1 and HDR1<br />

labels to show the fields used by the KODAK VERSAMARK printing systems.<br />

For more detailed information on these or other labels, refer to IBM<br />

documentation.<br />

Table 2.1 VOL1 record format<br />

Byte Position Bytes Field Name Description<br />

1-4 4 Label identifier EBCDIC characters VOL1.<br />

5-10 6 Volume serial A volume serial number, in EBCDIC,<br />

number consisting of up to 6 characters. The field<br />

must be left justified and space filled to<br />

the right. For example, hex F0 F9 F3 F6<br />

40 40 specifies a serial number of 0936.<br />

11-41 31 Not used Not used by KODAK VERSAMARK printing<br />

systems.<br />

42-51 10 Volume Owner The name and address code, in<br />

EBCDIC, of the owner of this tape.<br />

52-80 29 Not used Not used by KODAK VERSAMARK printing<br />

systems.<br />

Reference Guide 2 - 3


Chapter 2. Magnetic Tape Formats<br />

Tape Labels<br />

2 - 4 IJPDS Formats<br />

Table 2.2 HDR1/EOV1/EOF1 record format<br />

Byte Position Bytes Field Contents Description<br />

1-4 4 Characters<br />

HDR1 or EOV1<br />

or EOF1<br />

EBCDIC characters HDR1, EOV1, or<br />

EOF1.<br />

5-21 17 Data set name The file name, in EBCDIC, for this job<br />

file. The field must be left justified<br />

and space filled to the right. For<br />

example, hex D1 D6 C2 F1 F0 F0 40<br />

40 40 40 40 40 40 40 40 40 40<br />

represents a data set name of<br />

JOB100.<br />

22-27 6 Data set serial<br />

number<br />

28-31 4 Volume<br />

sequence<br />

number<br />

The contents of this field must match<br />

the volume serial number in the<br />

VOL1 label of the first (or only) tape<br />

of the file.<br />

The sequence number, in EBCDIC,<br />

of this tape in a multiple volume file.<br />

The range is 0001-9999. Use 0001<br />

for a single volume file.<br />

32-35 4 File number Not used by KODAK VERSAMARK<br />

printing systems.<br />

36-39 4 Generation<br />

number<br />

Not used by KODAK VERSAMARK<br />

printing systems.<br />

40-41 2 Version number Not used by KODAK VERSAMARK<br />

printing systems.<br />

42-47 6 Creation date The creation date of the job file in<br />

EBCDIC. The format is cyyddd,<br />

where c represents the first 2 digits of<br />

the year (hex 40 = 19 and hex F0 =<br />

20).<br />

48-53 6 Expiration date The expiration date of the job file in<br />

EBCDIC. The format is cyyddd,<br />

where c represents the first 2 digits of<br />

the year (hex 40 = 19 and hex F0 =<br />

20).<br />

54 1 Data set security Not used by KODAK VERSAMARK<br />

printing systems.<br />

55-60 6 Block count Not used by KODAK VERSAMARK<br />

printing systems.<br />

61-80 20 Special codes Not used by KODAK VERSAMARK<br />

printing systems.


Tape Blocking<br />

Chapter 2. Magnetic Tape Formats<br />

Tape Blocking<br />

When written to tape, the job file consists of variable-length records that<br />

are grouped into variable-length blocks. Each block on the tape starts with<br />

a 2-byte block-length field. This binary field indicates the length of the<br />

block, in bytes, including the block length field. The first byte in the block<br />

length field is the most significant byte and the most significant bit in each<br />

byte is the hex 80 bit. For example, hex 09 B6 specifies a block length of<br />

2,486 bytes.<br />

The maximum block length is 4,096 bytes. Each block must contain an<br />

integral number of records. Records cannot be divided between blocks<br />

(spanned).<br />

For job files that contain data for multiple RIPs, each block can contain<br />

data for only one RIP. A RIP command, identifying a specific RIP, must be<br />

the first record in each block after the first block. Multiple RIPs are<br />

explained in Chapter 1.<br />

Reference Guide 2 - 5


Chapter 3. Disk Formats<br />

An IJPDS job file contains all of the information required to run a job. The<br />

job file can be on disk or magnetic tape. This chapter describes the disk<br />

format required.<br />

The format of an IJPDS file on disk is the same as the format on magnetic<br />

tape (see Chapter 2) with two exceptions. First, tape labels and tape<br />

marks are not present on disk. Second, all blocks must be padded so that<br />

they contain exactly 4096 bytes. The pad characters can be binary zeroes<br />

or any other fill characters. The block length field is still a variable-length<br />

indicator and must contain the length of the usable portion of each 4096byte<br />

block.<br />

Reference Guide 3 - 1


Record Information<br />

Chapter 4. Record Formats<br />

An IJPDS job file consists of variable-length, special-purpose records that<br />

describe the printing job. Each record is identified by a control code. All<br />

information needed by the printing system for the job is contained in the<br />

job file.<br />

This chapter describes each record in detail. The record descriptions are<br />

presented in the sequence that the records might appear in the file. The<br />

sequence of some records is fixed while the sequence of other records<br />

can vary depending on the job requirements. Required record sequences<br />

are discussed in Chapter 5.<br />

Tables containing reference lists of all IJPDS records are contained in<br />

Appendix A. Table A.1 provides a list of all records in alphabetic order by<br />

name. The table provides the assigned control code and purpose of each<br />

record along with a page reference to the record description in this<br />

chapter. Table A.2 provides the same information in a list compiled in<br />

numeric order by control code.<br />

Records having a defined length may have pad bytes added at the end<br />

and the extra bytes will be ignored. The extra bytes must be included in<br />

the Record Length field. Defined length records are those where the<br />

length of usable information is either fixed or can be determined by<br />

examining fields in the record. A RIP record is an example of a record<br />

where the length of the usable information is fixed (the length is always 5<br />

bytes). A PHR record is an example of a record where a field in the record<br />

can be examined to determine the usable length. The “Number of<br />

Printheads” field can be used to determine the usable length (the length is<br />

18 bytes for one printhead and 42 bytes for four printheads).<br />

For records that contain binary fields with more than one byte, the<br />

leftmost byte is the most significant. If a field occupies bytes 5 and 6 in a<br />

record, byte 5 is the most significant byte. For example, hex 01 7F<br />

specifies a value of 383.<br />

Some records use 4-byte signed binary values in the two's complement<br />

form to specify X and Y escapements and offsets. The maximum negative<br />

value for these fields is shown in the following equation in both decimal<br />

and hex representation.<br />

-2 31 = -2,147,483,648 = hex 80 00 00 00<br />

The maximum positive value for these fields is shown in the following<br />

equation in both decimal and hex representation.<br />

2 31 - 1 = +2,147,483,647 = hex 7F FF FF FF<br />

Reference Guide 4 - 1


Chapter 4. Record Formats<br />

Compression Types<br />

Compression Types<br />

4 - 2 IJPDS Formats<br />

Some records use 2-byte signed binary values in the two's complement<br />

form to specify X and Y coordinates. The maximum negative value for<br />

these fields is shown in the following equation in both decimal and hex<br />

representation.<br />

-2 15 = -32,768 = hex 80 00<br />

The maximum positive value for these fields is shown in the following<br />

equation in both decimal and hex representation.<br />

2 15 - 1 = +32,767 = hex 7F FF<br />

Some records also use two-byte, unsigned binary with values ranging<br />

from 0 - 65, 535.<br />

Some fields in some records are indicated as reserved. These fields must<br />

be filled with binary zeroes, or unexpected and inconsistent results may<br />

occur.<br />

Certain fields are indicated as for use in DS2900 jobs only. Jobs for all<br />

other printers must set these fields to binary zeroes. See the description<br />

of the JCR record at the end of this chapter for restrictions on DS2900<br />

jobs.<br />

The defined compression types in this section apply to the CCD and CBM<br />

record types described in this chapter.<br />

Reserved - 0x0000<br />

This data compression type is currently undefined.<br />

32-Bit Vertical Run Length Encoding (RLEV32) - 0x0001<br />

The original data is compressed using a lossless run length encoding<br />

scheme. This scheme can provide reasonable compression of white<br />

space, text, and line art data in a format that can be quickly<br />

decompressed by the imager. This scheme may not be suitable for<br />

grayscale images rendered to bilevel data where the run lengths are<br />

typically very short.<br />

The compression parameter for this encoding scheme is currently<br />

reserved and must be set to binary 0x00000080.<br />

A compressed packet of data consists of a flag word (0x00000080 - start<br />

of run), a run count word (number of data words in a run), and a data<br />

word. The flag word, the count word, and the data word are all unsigned<br />

32-bit (4-byte) values. Each of the elements in the compressed data<br />

packet are in big-endian byte order. Run lengths of less than three are<br />

supported, but not recommended because of their inefficiency (except in<br />

the case of a run of flag words [0x00000080]; flag words cannot be left<br />

unencoded). Run lengths of less than three are generally left<br />

uncompressed. A single flag word encountered in the data stream is most<br />

efficiently encoded as a flag word, followed by a run length of zero, and<br />

not followed by a data word. Some data patterns compressed using this<br />

encoding scheme have the possibility of becoming up to 50% larger than


Chapter 4. Record Formats<br />

Compression Types<br />

the original uncompressed data. It is recommended, in cases where the<br />

compressed data becomes larger than (or, in many cases, the same size<br />

as) the uncompressed data, that the data be left uncompressed by the<br />

data preparation program.<br />

0x00000080 0x00000100 0x00000000 Run of 256 words of 0x00000000<br />

0x00000080 0x00000000 Run of 1 word of 0x00000080<br />

0x00000080 0x00000010 0x00000080 Run of 16 words of 0x00000080<br />

Consecutive compressed packets and uncompressed data words in the<br />

compressed data stream represent the original uncompressed data<br />

starting from the top left corner of the image working down each column<br />

of bitmapped data. A compressed packet may continue from the bottom<br />

of one column to the top of the next column. A compressed data packet<br />

cannot be divided among multiple data records (see the CCD record<br />

description later in this chapter). The compressed data for an object<br />

(character or bitmap) represented by a single data word value can be<br />

encoded using a single packet - 0x00000080 n value - where n is the total<br />

number of words in the original uncompressed data. In Figure 4.1, the<br />

data shown could be compressed to the following:<br />

0x00000080 0x00000027 0x00000000 0x00000080 0x00000004<br />

0x0000ffff 0x00000080 0x0000001f 0x00000000 0x00000080<br />

0x00000004 0xffffffff 0x00000080 0x0000001f 0x00000000<br />

0x00000080 0x0000001b 0xffffffff 0x00000080 0x00000008<br />

0x00000000 0x00000080 0x0000001b 0xffffffff 0x00000080<br />

0x00000008 0x00000000 0x00000080 0x00000004 0xffffffff<br />

0x00000080 0x0000001f 0x00000000 0x00000080 0x00000004<br />

0xffff0000 0x00000080 0x0000003e 0x00000000<br />

280 words compressed to 39 words, a 7 to 1 compression ratio (results<br />

not typical for all applications).<br />

Note: Each dot row of the raster must be padded to the right with zero bits to<br />

make an integral number of 32-bit segments before compression. The<br />

width of the bitmap or character pattern being compressed does not have<br />

to be a multiple of 32 bits but the length of the raster dot row does.<br />

Reference Guide 4 - 3


Chapter 4. Record Formats<br />

Compression Types<br />

4 - 4 IJPDS Formats<br />

Figure 4.1 32-bit Vertical Run Length Encoding (RLEV32)<br />

Byte address<br />

(hex) 0 4 8 C 10 14 18 1C<br />

0<br />

20<br />

40<br />

60<br />

Run #1<br />

Run #2<br />

440 440 444 448 44C 450 454 458 45C 35<br />

Row number<br />

(decimal)<br />

1<br />

2<br />

3<br />

4


Chapter 4. Record Formats<br />

Job Control Record 2 (JC2)<br />

Job Control Record 2 (JC2)<br />

The JC2 record must be the first record in the job file and must not occur<br />

again in the file. There can be only one JC2 record in each job file. This<br />

record, along with the PHR and the FAR records, contains system and job<br />

information required for both single- and multi-RIP job files.<br />

Note: The controller may use data provided in this record to formulate a<br />

printhead ID, solely or in conjunction with RIP, PHR, and SRM records.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 D4 specifies a record length of 212<br />

bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. Because the<br />

JC2 record is always the first record in the job file, the count is<br />

always hex 01 for this record. The count is used to verify record<br />

sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 24<br />

identifies the JC2 record.<br />

5-6 2 Reserved This field is not used and must contain all binary zeroes.<br />

7 1 Even An EBCDIC E (hex C5) in this field indicates that the records in this<br />

file have been padded to make them contain an even number of<br />

bytes. For records whose length indicator specifies an odd number<br />

of bytes, the printer will skip the last (pad) byte.<br />

If this field contains anything other than an EBCDIC E, normal<br />

processing of the records occurs.<br />

8-15 8 Reserved This field is not used and must contain all binary zeroes.<br />

16-17 2 RIP Configuration<br />

(Logical RIPs)<br />

Identifies the logical RIPs required for this job. Each bit position<br />

represents a RIP. If the bit is set to 1, the RIP is required. Bit<br />

assignments, shown in hex, are as follows:<br />

80 00 = RIP 0<br />

40 00 = RIP 1<br />

20 00 = RIP 2<br />

10 00 = RIP 3<br />

08 00 = RIP 4, and so forth.<br />

For example, hex B0 00 indicates that logical RIPs 0, 2, and 3 are<br />

required for the job.<br />

18-27 10 Reserved This field is not used and must contain all binary zeroes.<br />

28 1 Stitched RIP Indicator If set to binary 1 (hex 01), this field indicates that there are stitched<br />

RIPs and the following field identifies which RIPs are stitched.<br />

If set to binary 0 (hex 00), this field indicates that there are no<br />

stitched RIPs and the following field is ignored.<br />

29-92 64 Stitched RIP<br />

Configuration<br />

(Logical RIPs)<br />

This field consists of 16, 32-bit segments to define the stitching for<br />

16 possible RIPs. The first segment, bytes 29-32, specifies which<br />

physical RIPs are stitched to make logical RIP 0. For example, if<br />

bytes 29-32 contain hex C0 00 00 00, physical RIPs 0 and 1 are<br />

stitched to make logical RIP 0.<br />

The logical RIPs are identified as specified in the RIP<br />

Configuration field (byte positions 16-17). Refer to Chapter 1 for a<br />

description of physical and logical RIPs.<br />

93-143 51 Reserved This field is not used and must contain all binary zeroes.<br />

Reference Guide 4 - 5


Chapter 4. Record Formats<br />

Job Control Record 2 (JC2)<br />

Byte Position Bytes Field Name Description<br />

144-151 8 Security Code This field is used only if security is enabled. It is an 8-byte security<br />

code that is the result of an encryption of the Job Identifier Field<br />

(byte positions 205-212). The encryption may be done with or<br />

without an operator-entered password.<br />

152-174 23 Job Information A string of 23 EBCDIC characters used to identify this job. This can<br />

be a job name, the data preparation program name, or any other<br />

identifying information. This field can have any format. It is logged<br />

when the job is run, but it is not used otherwise.<br />

175-188 14 Data Prep Date A string of 14 EBCDIC characters containing the date this job file<br />

was prepared. This field can have any format. It is logged when the<br />

job is run, but it is not used otherwise.<br />

189-202 14 Data Prep Time A string of 14 EBCDIC characters containing the time this job file<br />

was prepared. This field can have any format. It is logged when the<br />

job is run, but it is not used otherwise.<br />

203-204 2 Reserved This field is not used and must contain all binary zeroes.<br />

205-212 8 Job Identifier This field is used if security is enabled. It is an 8-byte Job Identifier,<br />

in EBCDIC, that is encrypted as described in the Security Code<br />

field (byte positions 144-151).<br />

This field is logged whenever the Job History logging feature is<br />

enabled (with or without security).<br />

If the security or job history features are not used, this field can be<br />

filled with pad characters of any kind or the record can end at byte<br />

204.<br />

4 - 6 IJPDS Formats


Select RIP (RIP)<br />

The RIP record is required only for multi-RIP systems.<br />

Chapter 4. Record Formats<br />

Select RIP (RIP)<br />

It is used to identify the logical RIP that is to receive subsequent data in<br />

the job file until another RIP record is encountered. The subsequent data<br />

can be fonts, fixed files, or variable data. If the same fonts or fixed files<br />

are used for more than one RIP, they must be repeated in the job file for<br />

each RIP.<br />

The RIP record is permitted only at the start of a block on tape or disk. For<br />

a multiple RIP job, it is required that each block (with the exception of the<br />

first one) begin with the RIP record.<br />

Refer to Chapter 1 for a discussion of physical and logical RIPs.<br />

Note: The controller may use data provided in this record to formulate a<br />

printhead ID, solely or in conjunction with JC2, PHR, and SRM records.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 05 specifies a record length of 5 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 23<br />

identifies the RIP record.<br />

5 1 RIP Number This field identifies, in binary, the number of the logical RIP that is<br />

to receive the data that follows in the job file. The range is 0-255.<br />

For example, hex 04 identifies logical RIP number 4.<br />

Reference Guide 4 - 7


Chapter 4. Record Formats<br />

PrintHead Requirements Record (PHR)<br />

PrintHead Requirements Record (PHR)<br />

The PHR record specifies the number and type of printheads required by<br />

this job. It also describes the characteristics of each printhead. It is<br />

recommended that you use this record but it is not required. If the record<br />

is not present, the printer assumes the printheads present in the system<br />

are correct. For multi-RIP systems where this record is used, it must<br />

occur once for each RIP.<br />

4 - 8 IJPDS Formats<br />

Starting with byte position 11, four fields (8 bytes) are provided for each<br />

printhead. These fields contain printhead-specific information.<br />

Note: The controller may use data provided in this record to formulate a<br />

printhead ID, solely or in conjunction with JC2, RIP, and SRM records.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 2A specifies a record length of 42 bytes<br />

(the number of bytes required if four printheads are specified).<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 26<br />

identifies the PHR record.<br />

5-6 2 Print Resolution -<br />

X Direction<br />

7-8 2 Print Resolution -<br />

Y Direction<br />

The number of jets per inch, in unsigned binary, in each printhead.<br />

This is the print resolution (dots per inch or dpi) in the X direction.<br />

The X direction is perpendicular to substrate movement. All<br />

printheads controlled by the same RIP must have the same Xdirection<br />

resolution.<br />

The print resolution (dots per inch or dpi), in unsigned binary, of the<br />

printheads in the Y direction. The Y direction is upstream or<br />

opposite the direction of paper movement. All printheads<br />

controlled by the same RIP must have the same Y-direction<br />

resolution.<br />

This field is encoded in two parts: lines per tach and tachs per inch.<br />

Bits 16 - 13 (0xF000) = Number of lines per tach;<br />

0 = 1 line per tach;<br />

1 - 8 = Number of lines per tach.<br />

Bits 12 - 1 (0x0FFF) = Number of tachs per inch.<br />

9-10 2 Number of Printheads The number, in unsigned binary, of printheads required by the job<br />

for this RIP. This number is determined by comparing the number<br />

of dots required for the maximum width (X direction) of the image<br />

with the number of jets in the printheads used.<br />

For example, 00 04 specifies 4 printheads.<br />

11-12 2 Number of Jets The number, in unsigned binary, of jets in the first printhead. The<br />

first printhead is the leftmost printhead when looking in the<br />

direction of substrate movement.<br />

For example, hex 04 00 specifies 1,024 jets (4-inch printhead) and<br />

hex 01 00 specifies 256 jets (1-inch printhead).<br />

13-14 2 Number of Drops The number, in binary, of drops per dot for the first printhead. This<br />

field is printer and printhead dependent. The value of this field<br />

must not be 0.<br />

For example, hex 00 02 specifies 2 drops per dot for the first<br />

printhead.


Byte Position Bytes Field Name Description<br />

15-16 2 Relative Printhead<br />

Position<br />

Chapter 4. Record Formats<br />

PrintHead Requirements Record (PHR)<br />

An unsigned binary number that represents the offset, in dots, of<br />

this printhead relative to the starting position of the first (leftmost)<br />

printhead. A binary 0 in this field for all printheads indicates that<br />

printhead positioning is not specified in the job file.<br />

17-18 2 Reserved This field, reserved for the first printhead, is not used and must<br />

contain all binary zeroes.<br />

19-20 2 Number of Jets The number, in binary, of jets in the second printhead. The second<br />

printhead is second from the left when looking in the direction of<br />

substrate movement.<br />

Continue - repeat bytes 11-18 for each printhead.<br />

The first printhead prints from the first n columns of the page buffer, where<br />

n is the number of jets specified in positions 11-12 of the PHR. The<br />

second printhead prints from the next m columns, where m is the number<br />

of jets specified in positions 19-20 of the PHR, and so forth.<br />

Reference Guide 4 - 9


Chapter 4. Record Formats<br />

Font Assignment Record (FAR)<br />

Font Assignment Record (FAR)<br />

The FAR record assigns numbers to font names for the fonts required by<br />

this job. This record assigns names and numbers to regular and super<br />

fonts, but not to subfonts of category I super fonts. It is recommended that<br />

you use this record but it is not required. If the record is not included, the<br />

printer assumes the fonts present in the system or loaded from the tape<br />

are correct. For multi-RIP systems where this record is used, it must<br />

occur once for each RIP.<br />

Byte Position Bytes Field Name Description<br />

4 - 10 IJPDS Formats<br />

Starting with byte position 9, two fields (10 bytes) are provided for each<br />

font. These fields contain the number and associated name for each font.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 44 specifies a record length of 68 bytes<br />

(the number of bytes required if six fonts are named in this record).<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 25<br />

identifies the FAR record.<br />

5-6 2 Number of Fonts The number, in binary, of fonts required for this job for this RIP. The<br />

range is 1 - 255. For example, hex 00 16 specifies 22 fonts.<br />

7-8 2 Default Font The assignment number, in binary, of the default font. The default<br />

font is set as the current font at the start of each document if the<br />

SOD or SDC record does not contain a starting font number. The<br />

range is 0-254. For example, hex 00 0A specifies a font number of<br />

10.<br />

9-10 2 Font Number The assignment number, in binary, for the font name in the next<br />

field. The range is 0-254. For example, hex 00 02 specifies a font<br />

number of 2.<br />

11-18 8 Font Name The name of the font in EBCDIC. The field must be left justified<br />

and space filled to the right. For example, hex C8 C5 E6 C9 E3 E3<br />

40 40 specifies a font name of HEWITT. The same font in different<br />

orientations must have a different font name for each orientation.<br />

19-20 2 Font Number The assignment number, in binary, for the next font.<br />

Continue - Repeat bytes 9-18 for each font.<br />

In some printers, the font names and assigned numbers in the FAR<br />

record are compared to those already loaded in the printer. If the names<br />

and assigned numbers in this record agree with those already loaded and<br />

no font records follow, no error occurs. If the names agree and one or<br />

more assigned numbers disagree, a warning occurs and the assigned<br />

numbers of the loaded fonts are changed to agree with those in this<br />

record. If the font names in this record agree with fonts that appear later in<br />

this job file, no error occurs.<br />

If any of the font names in this record are not loaded and no fonts follow in<br />

this job file, an error occurs. If fonts follow in this job file and any of the<br />

font names in this record are not contained in these font files, an error<br />

occurs.


Chapter 4. Record Formats<br />

Set Resolution Multiplier (SRM)<br />

Set Resolution Multiplier (SRM)<br />

The SRM record allows the data preparation program to specify distances<br />

for character escapements and offsets, font escapements, spacing<br />

values, and relative position values at a resolution higher than that of the<br />

RIP.<br />

This record sets a logical resolution for the current RIP and must appear<br />

(if used) with the PHR and FAR records before any font records, fixed file<br />

records, or the first document. The logical resolution is determined by<br />

multiplying the resolution multiplier times the physical resolution of the<br />

RIP. The resolution multiplier is calculated by raising 2 to the power of the<br />

value in the exponent field of this record.<br />

For example, if the exponent field contains 03, the resolution multiplier is<br />

8 (2 to the third power). Assuming a physical resolution of 240 dpi for the<br />

RIP, the logical resolution is 8 x 240 = 1920 dpi.<br />

Assume that a distance field in one of the affected records contains a<br />

logical X or Y distance of binary 101110100101 (2981 dots) and the<br />

exponent field contains 3. The logical distance is converted to the<br />

physical resolution of the RIP by moving the “binary” point 3 places to the<br />

left, resulting in 101110100.101. The cursor is moved 372 dots according<br />

to the whole binary number 101110100, but the fractional binary number.<br />

101 is carried and added to the next fraction received. When the<br />

accumulated fractions add up to a whole dot, the cursor is moved an extra<br />

dot position.<br />

Note: The controller may use data provided in this record to formulate a<br />

printhead ID, solely or in conjunction with JC2, RIP, and PHR records.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 05 specifies a record length of 5 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 39<br />

identifies the SRM record.<br />

5 1 Resolution Exponent A binary value with a range of 1-16. The resolution multiplier is<br />

determined by raising 2 to the power of the value in this field.<br />

The SRM record applies to the following fields in the following records:<br />

SFM and FDM X and Y escapements<br />

CDM and CCD X and Y offsets and escapements<br />

SFS X and Y line spacing<br />

X and Y character spacing<br />

SRP X and Y<br />

Reference Guide 4 - 11


Chapter 4. Record Formats<br />

Page Length Requirement (PLR)<br />

Page Length Requirement (PLR)<br />

The PLR record specifies the page length requirement for the current RIP.<br />

Byte Position Bytes Field Name Description<br />

4 - 12 IJPDS Formats<br />

This record is optional. If a PLR record is used, it must appear with the<br />

PHR and FAR records before any font records, fixed file records, or the<br />

first document.<br />

Information in the PLR record can be used by the CD120 data station to<br />

reallocate page buffers for the current RIP and allow more efficient use of<br />

available memory. The maximum page length allowed is printer<br />

dependent. Some printers display a warning message if the page length<br />

requirements in this record cannot be met.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 08 specifies a record length of 8 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 3B<br />

identifies the PLR record.<br />

5-8 4 Page Length<br />

Requirement<br />

An unsigned binary number that represents the page length<br />

requirement for the current RIP in dots. For example, hex 00 00 0E<br />

00 specifies a page length of 3,584 dots. The range is 0 -<br />

4,294,967,295. The maximum page length is printer dependent.<br />

Note: Specifying a page length longer than the default length may cause less<br />

memory to be available for font storage.


Chapter 4. Record Formats<br />

Super Font with Metrics (SFM)<br />

Super Font with Metrics (SFM)<br />

The SFM record is used to provide general information about a Category<br />

II super font and to indicate that the following CDM and/or CCD records<br />

define characters in the super font. A super font is a double-byte font<br />

used with certain languages to provide a large number of characters that<br />

all have the same typeface and size.<br />

Byte Position Bytes Field Name Description<br />

After an SFM in the job file, any record other than a CDM, CCD, RIP,<br />

NOP, or MSG ends the super font.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 16 specifies a record length of 22 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 2F<br />

identifies the SFM record.<br />

5-8 4 X Escapement A signed binary number used to calculate the X coordinate of the<br />

starting position for the next line. Negative values are represented<br />

using the two's complement form. For example, hex 00 00 00 08<br />

specifies +8 dots and hex FF FF FF F8 specifies -8 dots.<br />

The current X line spacing value is added to the value in this field<br />

to calculate the X position for the next line.<br />

9-12 4 Y Escapement A signed binary number used to calculate the Y coordinate of the<br />

starting position for the next line. Negative values are represented<br />

using the two's complement form. For example, hex 00 00 00 1B<br />

specifies +27 dots and hex FF FF FF E5 specifies -27 dots.<br />

The current Y line spacing value is added to the value in this field<br />

to calculate the Y position for the next line.<br />

13 1 Font Rotation A binary code that identifies the font rotation.<br />

0 (hex 00)=Upright2 (hex 02)=Inverted<br />

1 (hex 01)=Right-Rotated3 (hex 03)=Left-Rotated<br />

The font must be patterned in an upright rotation. This field is used<br />

by the printing system to rotate the font to the desired rotation.<br />

If it is to be used in more than one rotation in the same job, a super<br />

font and all characters in the super font must be defined once for<br />

each rotation.<br />

14 1 Super Font Number A number, in binary, that identifies the super font. The range is 0 -<br />

254. For example, hex 0A specifies a font number of 10.<br />

15-22 8 Super Font Name The name of the super font in EBCDIC. The field must be left<br />

justified and space filled to the right. For example, hex C8 C5 E6<br />

C9 E3 E3 40 40 specifies a font name of HEWITT. This name must<br />

match a font name in the FAR record.<br />

Reference Guide 4 - 13


Chapter 4. Record Formats<br />

Font Definition with Metrics (FDM)<br />

Font Definition with Metrics (FDM)<br />

The FDM record contains general information about the Category II font.<br />

There is only one FDM for each font. An FDM is followed by CDM and/or<br />

CCD records that define the characters in the font.<br />

Byte Position Bytes Field Name Description<br />

4 - 14 IJPDS Formats<br />

After an FDM in the job file, any record other than a CDM, CCD, RIP,<br />

NOP, or MSG ends the font. An example of FDM and CDM coding is<br />

shown in Appendix B.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 16 specifies a record length of 22 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 2E<br />

identifies the FDM record.<br />

5-8 4 X Escapement A signed binary number used to calculate the X coordinate of the<br />

starting position for the next line. Negative values are represented<br />

using the two's complement form. For example, hex 00 00 00 08<br />

specifies +8 dots hex FF FF FF F8 specifies -8 dots.<br />

The current X line spacing value is added to the value in this field<br />

to calculate the X position for the next line.<br />

9-12 4 Y Escapement A signed binary number used to calculate the Y coordinate of the<br />

starting position for the next line. Negative values are represented<br />

using the two's complement form. For example, hex 00 00 00 1B<br />

specifies +27 dots and hex FF FF FF E5 specifies -27 dots.<br />

The current Y line spacing value is added to the value in this field<br />

to calculate the Y position for the next line.<br />

13 1 Font Rotation A binary code that identifies the font rotation.<br />

0 (hex 00)=Upright2 (hex 02)=Inverted<br />

1 (hex 01)=Right-Rotated3 (hex 03)=Left-Rotated<br />

The font must be defined in an upright rotation. This field is used<br />

by the printing system to rotate the font to the desired rotation.<br />

If a font is to be used in more than one rotation in the same job, it<br />

must be defined once for each rotation.<br />

14 1 Font Number A number, in binary, that identifies the font. The range is 0 - 254.<br />

For example, hex 0A specifies a font number of 10.<br />

15-22 8 Font Name The name of the font in EBCDIC. The field must be left justified<br />

and space filled to the right. For example, hex C8 C5 E6 C9 E3 E3<br />

40 40 specifies a font name of HEWITT. This name must match a<br />

font name in the FAR record.


Chapter 4. Record Formats<br />

Character Definition with Metrics (CDM)<br />

Character Definition with Metrics (CDM)<br />

CDM records, which are interchangeable with CCD records, follow an<br />

SFM or FDM record and define each character in the font. The CDMs<br />

contain the bitmap patterns for the characters. Up to 256 characters can<br />

be defined for each FDM and up to 65,536 characters for an SFM.<br />

Usually, there is one CDM for each character. However, in some fonts, a<br />

continuation CDM is used to divide a character bitmap into two or more<br />

records if it is necessary to limit the size of the records (because of block<br />

length restrictions or other reasons). The character bitmap can be broken<br />

only at the end of a row. When continuation CDMs are used, all fields up<br />

to the bitmap pattern field must be the same in each CDM for the<br />

character except for the continuation bit in the last CDM.<br />

When an SFM or FDM is received, the printer defines null and default<br />

characters in the following manner. When an SFM or FDM is first<br />

processed by the printer, all characters in the font are set as null<br />

characters. If the first CDM received has the default bit set, then the<br />

character in this record is used as the default character. The default<br />

character is used for all undefined characters in the font, including<br />

character 00. Subsequent CDMs then redefine the characters for their<br />

respective character identifiers. If the first CDM does not have the default<br />

character bit set, then all characters remain null until redefined by<br />

subsequent CDMs.<br />

A null character has zero width and height, zero X and Y escapement,<br />

and takes no space when printed.<br />

Note: An example of FDM and CDM coding is shown in Appendix B.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 8C specifies a record length of 140<br />

bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 30<br />

identifies the CDM record.<br />

5-6 2 Character Identifier A binary code that identifies the character defined in this record.<br />

This is the code that must be used in the input data to access this<br />

character for printing. The range is 0 - 255 for regular font<br />

characters or 0 through 65,535 for super font characters.<br />

If the default bit in byte 7 is set, this field is ignored.<br />

7 1 Options Two bits in this field are used to specify two character definition<br />

record options. Bit assignments are as follows.<br />

Bit 0 (hex 80 bit)=Default Character bit.<br />

Bit 1 (hex 40 bit)=Continuation bit.<br />

If the default bit is set, this character must be the first one defined<br />

in the font.<br />

8 1 Reserved This field is not used and must contain all binary zeroes.<br />

Reference Guide 4 - 15


Chapter 4. Record Formats<br />

Character Definition with Metrics (CDM)<br />

Byte Position Bytes Field Name Description<br />

9-10 2 Width An unsigned binary number that specifies the width, in dots, of the<br />

character bounding box. For example, hex 00 10 specifies a width<br />

of 16 dots. The practical range is limited by the page buffer size<br />

and font memory limitations. Each character in a font can have a<br />

different width. A width of zero defines a blank character.<br />

The width is the X dimension of the bounding box and the direction<br />

is determined by the orientation of the font.<br />

11-12 2 Height An unsigned binary number that specifies the height, in dots, of the<br />

character bounding box. For example, hex 00 14 represents a<br />

height of 20 dots. The practical range is limited by the page buffer<br />

size and font memory limitations. Each character in a font can<br />

have a different height. A height of zero defines a blank character.<br />

The height is the Y dimension of the bounding box and the<br />

direction is determined by the orientation of the font.<br />

13-16 4 X Offset A signed binary number that specifies the X offset of the character.<br />

The X offset is the number of dots to the left side of the character<br />

bounding box from the current cursor position. Direction of the X<br />

offset is determined by the orientation of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 03 specifies +3 dots and hex FF FF FF<br />

FD specifies -3 dots.<br />

17-20 4 Y Offset A signed binary number that specifies the Y offset of the character.<br />

The Y offset is the number of dots to the top of the character<br />

bounding box from the current cursor position. Direction of the Y<br />

offset is determined by the orientation of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 04 specifies +4 dots and hex FF FF FF<br />

FC specifies -4 dots.<br />

21-24 4 X Escapement A signed binary number that specifies the direction and distance to<br />

the cursor position for the next character from the X position of the<br />

current character. Direction of the X escapement is determined by<br />

the orientation of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 16 specifies +22 dots and hex FF FF<br />

FF EA specifies -22 dots.<br />

25-28 4 Y Escapement A signed binary number that specifies the direction and distance to<br />

the cursor position for the next character from the Y position of the<br />

current character. Direction of the Y escapement is determined by<br />

the orientation of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 1B specifies +27 dots and hex FF FF<br />

FF E5 specifies -27 dots.<br />

4 - 16 IJPDS Formats


Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Character Definition with Metrics (CDM)<br />

29-n n Bitmap Pattern This field contains the bitmap pattern for the character defined by<br />

this CDM. Each row of the pattern contains an integral number of<br />

16-bit segments. The number of rows is determined by the height<br />

field (bytes 11-12). The number of 16-bit segments per row is<br />

determined by the width field (bytes 9-10). For example, if the<br />

height is 21 and the width is 28, this field must contain 21 rows<br />

consisting of two 16-bit segments each (42 16-bit segments or 84<br />

bytes).<br />

The high-order bit in this field (bit hex 80 in byte position 29)<br />

controls the dot in the top left corner of the character bounding<br />

box. Subsequent bits in the same segment control dots in a left-toright<br />

order in the first row of the character. The first dot in the<br />

second row of the character is controlled by the high-order bit of<br />

the nth 16-bit segment, where n is the number of segments per<br />

row plus one.<br />

Each row must be padded to the right with binary zeroes.<br />

If the character pattern will not fit in a block, a continuation CDM<br />

must be used. An integral number of rows must be used in each<br />

CDM record.<br />

Reference Guide 4 - 17


Chapter 4. Record Formats<br />

Compressed Character Definition (CCD)<br />

Compressed Character Definition (CCD)<br />

CCD records, which are interchangeable with Character Definition with<br />

Metrics (CDM) records, follow an SFM or FDM record and define each<br />

character in the font. The CCDs contain the bitmap patterns for the<br />

characters. Up to 256 characters can be defined for each FDM and up to<br />

65,536 characters for an SFM.<br />

Byte Position Bytes Field Name Description<br />

4 - 18 IJPDS Formats<br />

Usually, there is one CCD for each character. However, in some fonts, a<br />

continuation CCD is used to divide a character bitmap into two or more<br />

records if it is necessary to limit the size of the records (because of block<br />

length restrictions or other reasons). The character bitmap can be broken<br />

only at the end of a row. When continuation CCDs are used, all fields up<br />

to the bitmap pattern field must be the same in each CCD for the<br />

character except for the continuation bit in the last CCD.<br />

When an SFM or FDM is received, the printer defines null and default<br />

characters in the following manner. When an SFM or FDM is first<br />

processed by the printer, all characters in the font are set as null<br />

characters. If the first CCD received has the default bit set, then the<br />

character in this record is used as the default character. The default<br />

character is used for all undefined characters in the font, including<br />

character 00. Subsequent CCDs then redefine the characters for their<br />

respective character identifiers. If the first CCD does not have the default<br />

character bit set, then all characters remain null until redefined by<br />

subsequent CCDs.<br />

A null character has zero width and height, zero X and Y escapement,<br />

and takes no space when printed.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 8C specifies a record length of 140<br />

bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 3D<br />

identifies the CCD record.<br />

5-6 2 Character Identifier A binary code that identifies the character defined in this record.<br />

This is the code that must be used in the input data to access this<br />

character for printing. The range is 0 to 255 for single byte fonts or<br />

0 to 65535 for double-byte fonts.<br />

7 1 Options The bits in position 6 define options available for this character.<br />

Bit 0 (hex 80 bit)= Default character bit<br />

Bit 1= Continuation bit<br />

If bit 0 is set to 1, this character is defined as this font’s default<br />

character. If a default character is defined, it must be the first<br />

character defined in the font, or unexpected results may occur. The<br />

default character becomes the character used for all undefined<br />

characters, including character 00.<br />

If bit 1 is set to 1, the pattern for this character is continued in the<br />

next CCD record. The continuation record looks identical to the<br />

previous record except that the pattern is different and the<br />

continuation bit is off unless the pattern is continued to the next<br />

CCD record.


Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Compressed Character Definition (CCD)<br />

8 1 Reserved This field is unused and must contain all binary zeros.<br />

9-10 2 Width A binary number representing the width of the uncompressed<br />

character data to be combined into the RIP frame buffer. The<br />

range is 0 to 65535, although the practical size is limited by the<br />

page size and font memory limitations of the data station.<br />

11-12 2 Height A binary number representing the height of the uncompressed<br />

character data to be combined into the RIP frame buffer. The<br />

range is 0 to 65535, although the practical size is limited by the<br />

page size and font memory limitations of the data station.<br />

Each character may have a different height and width, eliminating<br />

the need to supply data to position the character inside the<br />

character cell. If the CCD has a width or height of zero, a blank<br />

character is defined. No data is combined into the frame buffer of<br />

the RIP for characters with a width and/or height of zero.<br />

13-16 4 X Offset A signed binary number that defines the number of dots to the left<br />

side of the bounding box of the character from the X position of the<br />

current cursor. The X offset moves relative to the font’s orientation.<br />

The range is -2,147,483,647 to 2,147,483,647, although useful<br />

values are limited by the page size of the RIP or Super RIP.<br />

17-20 4 Y Offset A signed binary number that defines the number of dots to the top<br />

side of the bounding box of the character from the Y position of the<br />

current cursor. The Y offset moves relative to the font’s orientation.<br />

The range is -2,147,483,647 to 2,147,483,647, although useful<br />

values are limited by the page size of the RIP or Super RIP.<br />

21-24 4 X Escapement A signed binary number that defines the direction and distance to<br />

the left side of the next character cell from the X position of the<br />

current character. The X escapement moves relative to the font’s<br />

orientation. The range is -2,147,483,647 to 2,147,483,647,<br />

although useful values are limited by the page size of the RIP or<br />

Super RIP.<br />

25-28 4 Y Escapement A signed binary number that defines the direction and distance to<br />

the starting position of the next character cell from the Y position of<br />

the current character. The Y escapement moves relative to the<br />

font’s orientation. The range is -2,147,483,647 to 2,147,483,647,<br />

although useful values are limited by the page size of the RIP or<br />

Super RIP.<br />

29-30 2 Reserved This field is unused and must contain all binary zeros.<br />

31-32 2 Compression Type Specifies the compression algorithm used to compress the<br />

bitmapped character data. Undefined or unsupported compression<br />

types will cause an error message to be displayed and the font<br />

download will stop.<br />

Compression types (see “Compression Types” on page 4-2) are:<br />

0x0000 = Reserved<br />

0x0001 = 32-bit Vertical Run Length Encoding (RLEV32)<br />

33-36 4 Compression<br />

The meaning of these bytes depends on the compression type<br />

Parameter<br />

specified in bytes 30-31.<br />

Reference Guide 4 - 19


Chapter 4. Record Formats<br />

Compressed Character Definition (CCD)<br />

Byte Position Bytes Field Name Description<br />

37-n varies Compressed Character<br />

Pattern<br />

4 - 20 IJPDS Formats<br />

Only the upright orientation is supported. Use of rotated characters<br />

in this record will produce incorrect results.<br />

The character pattern data for upright characters is stored<br />

compressed and then decompressed when imaged. During<br />

imaging, the high order bit of the first decompressed byte/word<br />

controls the dot in the top left corner of the character bounding<br />

box, and subsequent bits in the same decompressed byte/word<br />

control adjacent dots in left to right order.<br />

The compressed character pattern begins at byte position 37 and<br />

is arranged in horizontal raster format compressed using the<br />

compression method specified in byte positions 31 and 32. Each<br />

row of the raster must be padded to the right with binary zeroes<br />

(before compression) to make an integral number of 32-bit<br />

segments. The width of the uncompressed character data (byte<br />

positions 9 and 10) does not have to be a multiple of 32 bits but the<br />

raster row length does.<br />

Characters that cannot be compressed into a single CCD record must be<br />

continued in one or more additional consecutive CCD records. The<br />

compressed data must be divided among the continued records so that<br />

the smallest unit of data is not divided between two CCD records. For<br />

example, a CCD record compressed with RLEV32 must contain an<br />

integral number of 32-bit words in the data pattern and a “run” cannot be<br />

divided between multiple CCDs.<br />

Should the character definition (including any continuation) contain more<br />

or less uncompressed data than what is specified by the Height and<br />

Width fields, the imager will display an error message and the font<br />

download will stop. A character definition must be completed for a given<br />

logical input RIP before any other character definitions are started.


Chapter 4. Record Formats<br />

Super Font Definition (SFD)<br />

Super Font Definition (SFD)<br />

The SFD record is used to provide general information about the<br />

Category I super font and to indicate that the following FDR and CDR<br />

records define subfonts and subfont characters. A super font is a doublebyte<br />

font used with certain languages to provide a large number of<br />

characters that all have the same typeface and size.<br />

Byte Position Bytes Field Name Description<br />

Following an SFD record, all FDR records define subfonts and all CDR<br />

records define characters for the current subfont. As an option, a single<br />

CDR may immediately follow an SFD to define the default character for<br />

any undefined character in the super font. After an SFD, any record other<br />

than CDR, RIP, NOP, MSG, or FDR ends the super font.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 12 specifies a record length of 18 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 2A<br />

identifies the SFD record.<br />

5-6 2 Row Count An unsigned binary number that specifies the number of dot rows<br />

for characters in all subfonts of this superfont. For example, hex 00<br />

16 specifies 22 rows.<br />

7 1 Reserved This field is not used and must contain all binary zeroes.<br />

8 1 Interline Spacing (ILS) A binary number that specifies the number of additional dot rows of<br />

space to be generated following each line printed with this font.<br />

The range is 0 - 255.<br />

The value in this field overrides the ILS of the subfonts. The value<br />

in this field is overridden by the ILS values in the SOD, SDC, SFI,<br />

or SFT records and the Y line spacing value in the SFS record.<br />

9 1 Font Rotation A binary code that identifies the font rotation.<br />

0 (hex 00)=Upright2 (hex 02)=Inverted<br />

1 (hex 01)=Right3 (hex 03)=Left<br />

The font must be patterned in an upright rotation. This field is used<br />

by the printing system to rotate the font to the desired rotation. All<br />

subfonts of this super font must have the same rotation.<br />

The value in this field overrides the rotation value in the subfonts.<br />

If it is to be used in more than one rotation in the same job, a super<br />

font and all corresponding subfonts must be defined once for each<br />

rotation.<br />

10 1 Super Font Number A number, in binary, that identifies the super font. The range is 0 -<br />

254. For example, hex 0A specifies a font number of 10.<br />

11-18 8 Super Font Name The name of the super font in EBCDIC. The field must be left<br />

justified and space filled to the right. For example, hex C8 C5 E6<br />

C9 E3 E3 40 40 specifies a font name of HEWITT.<br />

Reference Guide 4 - 21


Chapter 4. Record Formats<br />

Font Definition Record (FDR)<br />

Font Definition Record (FDR)<br />

The FDR record contains general information about the Category I font.<br />

There is only one FDR for each font. An FDR is followed by CDR records<br />

that define the characters in the font.<br />

4 - 22 IJPDS Formats<br />

The first FDR for each RIP causes the data station to remove all fonts<br />

currently stored in the system for the indicated RIP and start loading the<br />

new fonts. If there are no FDR records in the job file, the system checks<br />

the fonts identified in the FAR record against the fonts currently loaded in<br />

the system. If they do not match, an error is generated and printing is<br />

inhibited.<br />

For a super font, the FDRs are preceded by an SFD record and the FDRs<br />

define subfonts of the super font. After an FDR in the job file, any record<br />

other than a CDR, RIP, NOP, or MSG ends the font.<br />

Note: An example of FDR and CDR coding is shown in Appendix B.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length field.<br />

For example, hex 00 12 specifies a record length of 18 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 13<br />

identifies the FDR record.<br />

5-6 2 Row Count An unsigned binary number that specifies the number of dot rows in<br />

each character bitmap. For example, hex 00 16 specifies 22 rows.<br />

If this is a subfont, the value in this field must be the same as in<br />

bytes 5-6 of the associated SFD.<br />

7 1 Reserved This field is not used and must contain all binary zeroes.<br />

8 1 Interline Spacing (ILS) A binary number that specifies the number of additional dot rows of<br />

space to be generated following each line printed with this font. The<br />

range is 0 - 255.<br />

The value in this field for ILS is overridden by interline spacing<br />

values in the SOD, SDC, SFI, SFT, or SFD records and the Y line<br />

spacing value in the SFS record. If this is a subfont, the value in this<br />

field must be the same as in byte 8 of the associated SFD.<br />

9 1 Font Rotation A binary code that identifies the font rotation.<br />

0 (hex 00)=Upright2 (hex 02)=Inverted<br />

1 (hex 01)=Right3 (hex 03)=Left<br />

The font must be patterned in an upright rotation. This field is used<br />

by the printing system to rotate the font to the desired rotation.<br />

If a font is to be used in more than one rotation in the same job, it<br />

must be defined once for each rotation.<br />

If this is a subfont, the rotation specified in this field must be the<br />

same as that specified in byte 9 of the associated SFD.<br />

10 1 Font Number A number, in binary, that identifies the font. The range is 0 - 254.<br />

For example, hex 0A specifies a font number of 10.<br />

If this is a subfont, the range is 0 - 255.<br />

11-18 8 Font Name The name of the font in EBCDIC. The field must be left justified and<br />

space filled to the right. For example, hex C8 C5 E6 C9 E3 E3 40<br />

40 specifies a font name of HEWITT. This name must match a font<br />

name in the FAR record.<br />

If this is a subfont, the name in this field is ignored.


Chapter 4. Record Formats<br />

Character Definition Record (CDR)<br />

Character Definition Record (CDR)<br />

CDR records follow the FDR record and define each character in the font.<br />

The CDRs contain the bitmap patterns for the characters. Up to 256<br />

characters can be defined for each FDR. Usually, there is one CDR for<br />

each character. However, in some fonts, a continuation CDR is used to<br />

divide a character bitmap into two or more records if it is necessary to limit<br />

the size of the records (because of block length restrictions or other<br />

reasons). The character bitmap can be broken only at the end of a row.<br />

When continuation CDRs are used, all fields up to the bitmap pattern field<br />

must be the same in each CDR for the character except for the<br />

continuation bit in the last CDR.<br />

Note: As an option, a single CDR may immediately follow an SFD to define the<br />

default character for any undefined character in the super font.<br />

When an FDR is received, the printer defines null and default characters<br />

in the following manner. When an FDR is first processed by the printer, all<br />

256 characters in the font are set as null characters. If the first CDR<br />

received has a hex 00 in the Character Identifier field, then the character<br />

in this record is used as the default character for character identifiers hex<br />

01 through FF (character 00 remains a null character). Subsequent CDRs<br />

then redefine the characters for their respective character identifiers.<br />

Character 00 can be redefined from the null character in this manner. If<br />

the first CDR does not have a hex 00 in the Character Identifier field, then<br />

all characters remain null until redefined by subsequent CDRs.<br />

A null character has zero width, and takes no space when printed.<br />

Note: An example of FDR and CDR coding is shown in Appendix B.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 8C specifies a record length of 140<br />

bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 14<br />

identifies the CDR record.<br />

5 1 Character Identifier A binary code that identifies the character defined in this record.<br />

This is the code that must be used in the input data to access this<br />

character for printing. The range is 0 - 255.<br />

6 1 Equivalent Character<br />

Identifier<br />

A binary code that identifies a character in the font that has a<br />

bitmap pattern identical to this character. If 2 characters are the<br />

same, it is not necessary to repeat the bitmap pattern. The<br />

“Equivalent” bit in byte position 8 must be set for this field to be in<br />

effect.<br />

If the equivalent bit is set, the character defined in this field is part<br />

of the font currently being defined unless another font is identified<br />

in byte 9 or in bytes 9 and 10. If byte 9 identifies a regular font,<br />

then byte 10 (if present) is ignored. If byte 9 identifies a super font,<br />

then byte 10 must be present and identifies the subfont. In any<br />

case, the character must have been previously loaded in the same<br />

RIP.<br />

Reference Guide 4 - 23


Chapter 4. Record Formats<br />

Character Definition Record (CDR)<br />

Byte Position Bytes Field Name Description<br />

7 1 Segment Count A binary number that specifies the number of 16-bit segments<br />

required to define one horizontal row of the character bitmap. The<br />

final segment does not have to be completely used. The “Final<br />

segment width” bits in position 8 define how many bits in the final<br />

segment are used. All binary zeroes (hex 00) in position 7 indicate<br />

a null character with zero width.<br />

8 1 Options The bits in position 8 define options available for this character. Bit<br />

0 is the high order bit (hex 80) and bit 7 is the low order bit (hex<br />

01). Bit assignments are as follows.<br />

Bit 0 (hex 80 bit)=Equivalent bit (no bitmap data).<br />

Bit 1 (hex 40 bit)=Continuation bit.<br />

Bits 2-7 (hex 3F bits)=Final segment width.<br />

If bit 0 is set to 1, the bitmap for this character is equivalent to that<br />

for the character specified in byte position 6 and the bitmap is not<br />

repeated in this CDR. If bit 1 is set to 1, the pattern for this<br />

character is continued in the next CDR.<br />

Bits 2 through 7 contain a binary number in the range of 0 through<br />

63. When the value is 1 through 16, it represents the number of<br />

bits in the final 16-bit segment that are to be used. When the value<br />

is 17 through 63, the entire final segment is used and additional<br />

zero bits are created to fill out the additional bit positions. When<br />

the value is 0, the entire final segment is used and 48 additional<br />

zero bits are created to make a final segment containing 64 bits.<br />

For example, a hex 45 in position 8 indicates that the continuation<br />

bit is set and 5 bits of the final segment are used.<br />

9-n n Bitmap Pattern The bitmap pattern for the character defined by this CDR. The<br />

pattern data consists of m rows, each containing s 16-bit<br />

segments, where m is the font height (row count) defined in bytes<br />

5-6 of the FDR, and s is the segment count defined in byte 7 of the<br />

CDR.<br />

Each row must be padded to the right with binary zeroes.<br />

If the equivalent bit in byte position 8 is set, this field can contain<br />

font or super font identifiers. Refer to the description for the<br />

Equivalent Character Identifier field (byte position 6).<br />

If the character pattern will not fit in a block, a continuation CDR<br />

must be used. An integral number of rows must be used in each<br />

CDR record.<br />

4 - 24 IJPDS Formats


Load Fixed File (LFF)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Load Fixed File (LFF)<br />

The LFF record specifies that all records that follow, up to another LFF<br />

record or an EFF record, are to be loaded as part of the fixed file identified<br />

in this record. The records in a fixed file are not executed at the time they<br />

are loaded in the printer, but are stored in the fixed file for later use by the<br />

GFF, RFF, SFF, or UIL records.<br />

The first LFF record in the job file for each RIP causes all previously<br />

loaded fixed files for that RIP to be cleared. Fixed files do not have to be<br />

in numeric order in the job file. The amount of memory reserved in the<br />

printer for fixed records is dependent on the printing system.<br />

For a multiple RIP system, the RIP record is used to direct the fixed files<br />

to the proper RIP. Each RIP must receive its own set of fixed files starting<br />

with the LFF record and ending with the EFF record.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 06 specifies a record length of 6 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 01<br />

identifies the LFF record.<br />

5-6 2 File Number A file number, in binary, that identifies the fixed file. For example, a<br />

value of hex 00 0C identifies fixed file 12. The range is 0 - 255.<br />

Reference Guide 4 - 25


Chapter 4. Record Formats<br />

End of Fixed Files (EFF)<br />

End of Fixed Files (EFF) The End of Fixed Files (EFF) record specifies the end of all fixed files for<br />

4 - 26 IJPDS Formats<br />

the job or for a particular RIP.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 06 specifies a record length of 6 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 02<br />

identifies the EFF record.<br />

5-6 2 Maximum Line Width This field is used only to maintain compatibility with older job files<br />

for the KODAK VERSAMARK DS2900 printing system. It is not<br />

present for job files for other printing systems. The field contains a<br />

binary number that specifies the maximum line width, in number of<br />

dots, for this job. For example, a value of hex 06 18 specifies 1,560<br />

dots (13 inches at 120 dpi).


Chapter 4. Record Formats<br />

Range Check Record (RCR)<br />

Range Check Record (RCR)<br />

The RCR record sets limits for the four sides (top, bottom, left, and right)<br />

of the page buffer. Any data that is positioned outside of these limits<br />

causes the printer to generate a warning message for the current page.<br />

After a warning message, printing will continue but at a reduced speed.<br />

Byte Position Bytes Field Name Description<br />

Warnings can be effectively disabled for the right side and bottom by<br />

specifying the maximum positive value and for the left side and top by<br />

specifying the maximum negative value. The maximum positive field<br />

value is 2,147,483,647 (hex 7F FF FF FF). The maximum negative field<br />

value is -2,147,483,648 (hex 80 00 00 00).<br />

For compatibility with older jobs, default values for range checking are set<br />

for all sides at the start of a new job to the size of the page buffer (top = 0,<br />

bottom = maximum Y, left = 0, and right = maximum X). An RCR record in<br />

the data stream after the JC2 record and before the first font, fixed file, or<br />

SOD/SDC records will define the default range check values for the<br />

current RIP. The ranges are set to the default values each time a new<br />

document is started. An RCR record occurring after the start of a new<br />

document defines the range values for the current document only.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 14 specifies a record length of 20 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 32<br />

identifies the RCR record.<br />

5-8 4 Top Limit A signed binary number that sets the limit for the top of the page<br />

buffer. If any data is positioned at a Y value less than this field, a<br />

warning is generated.<br />

A value of binary zero in this field sets the limit to the top of the<br />

page (Y = 0).<br />

9-12 4 Bottom Limit A signed binary number that sets the limit for the bottom of the<br />

page buffer. If any data is positioned at a Y value greater than this<br />

field, a warning is generated.<br />

A value of binary zero in this field sets the limit to the bottom of the<br />

page buffer (Y = maximum Y).<br />

13-16 4 Left Limit A signed binary number that sets the limit for the left side of the<br />

page buffer. If any data is positioned at an X value less than this<br />

field, a warning is generated.<br />

A value of binary zero in this field sets the limit to the left side of the<br />

page buffer (X = 0).<br />

17-20 4 Right Limit A signed binary number that sets the limit for the right side of the<br />

page buffer. If any data is positioned at an X value greater than this<br />

field, a warning is generated.<br />

A value of binary zero in this field sets the limit to the right side of<br />

the page buffer (X = maximum X).<br />

Reference Guide 4 - 27


Chapter 4. Record Formats<br />

Start of Document and Cue (SDC)<br />

4 - 28 IJPDS Formats<br />

This record does not cause the printing system to generate a warning<br />

message for positioning outside of the specified limits. Positioning is<br />

caused by records such as SPO, SRP, and SPC, or by character and font<br />

escapements. Warnings are generated only when data such as BOX or<br />

IBM images or character bounding boxes are placed outside of the limits.<br />

This record does not control whether or not the data is printed; it controls<br />

only whether or not a warning message is issued. Data which falls entirely<br />

in the buffer will always be printed. Data which falls entirely outside the<br />

buffer will never be printed. What happens to data that is partly in the<br />

buffer is printer and release dependent.<br />

Start of Document and Cue (SDC)<br />

The SDC record specifies the start of a document at the next cue and<br />

contains general information about the document. The records that follow,<br />

up to another SDC record or an SOD record, contain the image<br />

information for this document.<br />

Byte Position Bytes Field Name Description<br />

This record causes the start of a new page. Refer to Chapter 1 for a<br />

description of documents and pages.<br />

For a multi-RIP system, there must be an SDC or SOD record for each<br />

document on each RIP.<br />

The font and ILS specified in this record become the current font and ILS<br />

and remain in effect until these values are specified by another record.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 18 specifies a record length of 24 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 05<br />

identifies the SDC record without security. A value of hex 11<br />

identifies the security version of the SDC record.<br />

5-6 2 Vertical Space This field is used only for the KODAK VERSAMARK DS2900 printing<br />

system and should be binary 0 for all other systems.<br />

An unsigned binary number that specifies the number of dot rows<br />

of vertical space to generate.<br />

7-10 4 Document Counter A document count, in binary, that identifies this document. The<br />

count starts at 1 (hex 00 00 00 01) for the first document and is<br />

incremented by 1 for each following document. This count is used<br />

to verify document sequence.<br />

11-12 2 User Output Signals This field is used to activate user output signals at the printing<br />

system. The signals available are printing system dependent.<br />

Each bit represents one output signal. The associated output<br />

signal is activated when the bit is set to 1 and deactivated when<br />

the bit is set to 0.<br />

13 1 Starting Font Number A binary number that identifies the starting font in this document.<br />

The range is 0-254. For example, hex 02 specifies a font number<br />

of 2.


Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Start of Document and Cue (SDC)<br />

14 1 Starting ILS A binary number that identifies the number of dot rows of space to<br />

be generated following each line printed with this font. For<br />

example, hex 02 specifies 2 dot rows.<br />

The value in this field overrides the ILS value in the SFD or FDR<br />

records. The value in this field is overridden by the ILS value in the<br />

SFI or SFT records.<br />

If the font is a category II font, this field should contain binary<br />

zeroes. If a value is specified, it is added to the Y line escapement<br />

value specified in the font definition record (SFM or FDM).<br />

15 1 Starting Fixed File<br />

Number<br />

A binary number that identifies the starting fixed file.<br />

16 1 Reserved This field is not used and must contain all binary zeroes.<br />

17-24 8 Job Identifier This field is used only if security is enabled. It is an eight-byte Job<br />

Identifier and must be the same as the Job Identifier field in the<br />

JC2 record.<br />

The Starting Font Number, Starting ILS, And Starting Fixed File Number<br />

fields are optional. These 3 fields are either all present or all not present.<br />

If the 3 fields are not used for a non-security SDC record (control code<br />

05), the record ends at byte position 12.<br />

For a security SDC (control code 11), the 3 fields must be present<br />

because the Job Identifier field is required.<br />

If the Starting Font Number and Starting ILS fields are present, the<br />

starting font is set and the Y line spacing is set to the value in the ILS field.<br />

The other three spacing values are set to 0.<br />

If the Starting Font Number and Starting ILS fields are not present, the<br />

starting font is set to that specified as the default font in the FAR or JCR<br />

record. If there is no FAR or JCR, the font for the current RIP with the<br />

lowest font ID is used. If the starting font was defined by SFD or FDR, the<br />

ILS value in that record is used for the Y line spacing value and the other<br />

three spacing values are set to 0. If the font was defined by SFM or FDM,<br />

the ILS is set to 0, along with the other three spacing values.<br />

If the Starting Fixed File Number field is not present, this parameter is set<br />

to fixed file 0.<br />

All fixed file pointers are reset to the beginning of their respective fixed<br />

files at the start of a document.<br />

The logical function is set to 01 (“or”) at the start of each document.<br />

Reference Guide 4 - 29


Chapter 4. Record Formats<br />

Start of Document (SOD)<br />

Start of Document (SOD) The SOD record specifies the start of a document and contains general<br />

information about the document. The document is started immediately,<br />

not waiting for a cue. The records that follow, up to another SOD record or<br />

an SDC record, contain the image information for this document.<br />

4 - 30 IJPDS Formats<br />

This record causes the start of a new page. Refer to Chapter 1 for a<br />

description of documents and pages.<br />

For a multi-RIP system, there must be an SOD or SDC record for each<br />

document on each RIP.<br />

The font and ILS specified in this record become the current font and ILS<br />

and remain in effect until these values are specified by another record.<br />

Note: The SOD record cannot be used with the CS200 and CS220 system<br />

controllers.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 18 specifies a record length of 24 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 04<br />

identifies the SOD record without security. A value of hex 10<br />

identifies the security version of the SOD record.<br />

5-6 2 Vertical Space This field is used only for the KODAK VERSAMARK DS2900 printing<br />

system and should be binary 0 for all other systems.<br />

An unsigned binary number that specifies the number of dot rows<br />

of vertical space to generate.<br />

7-10 4 Document Counter A document count, in binary, that identifies this document. The<br />

count starts at 1 (hex 00 00 00 01) for the first document and is<br />

incremented by 1 for each following document. This count is used<br />

to verify document sequence.<br />

11-12 2 User Output Signals This field is used to activate user output signals at the printing<br />

system. The signals available are printing system dependent.<br />

Each bit represents one output signal. The associated output<br />

signal is activated when the bit is set to 1 and deactivated when<br />

the bit is set to 0.<br />

13 1 Starting Font Number A binary number that identifies the starting font in this document.<br />

The range is 0-254. For example, hex 02 specifies a font number<br />

of 2.<br />

14 1 Starting ILS A binary number that identifies the number of dot rows of space to<br />

be generated following each line printed with this font. For<br />

example, hex 02 specifies 2 dot rows.<br />

The value in this field overrides the ILS value in the SFD or FDR<br />

records. The value in this field is overridden by the ILS value in the<br />

SFI or SFT records.<br />

If the font is a category II font, this field should contain binary<br />

zeroes. If a value is specified, it is added to the Y line escapement<br />

value specified in the font definition record (SFM or FDM).<br />

15 1 Starting Fixed File<br />

Number<br />

A binary number that identifies the starting fixed file.<br />

16 1 Reserved This field is not used and must contain all binary zeroes.


Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Start of Document (SOD)<br />

17-24 8 Job Identifier This field is used only if security is enabled. It is an 8-byte Job<br />

Identifier and must be the same as the Job Identifier field in the<br />

JC2 record.<br />

The Starting Font Number, Starting ILS, And Starting Fixed File Number<br />

fields are optional. These 3 fields are either all present or all not present.<br />

If the 3 fields are not used for a non-security SOD record (control code<br />

04), the record ends at byte position 12.<br />

For a security SDC (control code 11), the 3 fields must be present<br />

because the Job Identifier field is required.<br />

If the Starting Font Number and Starting ILS fields are present, the<br />

starting font is set and the Y line spacing is set to the value in the ILS field.<br />

The other three spacing values are set to 0.<br />

If the Starting Font Number and Starting ILS fields are not present, the<br />

starting font is set to that specified as the default font in the FAR or JCR<br />

record. If there is no FAR or JCR, the font for the current RIP with the<br />

lowest font ID is used. If the starting font was defined by SFD or FDR, the<br />

ILS value in that record is used for the Y line spacing value and the other<br />

three spacing values are set to 0. If the font was defined by SFM or FDM,<br />

the ILS is set to 0, along with the other three spacing values.<br />

If the Starting Fixed File Number field is not present, this parameter is set<br />

to fixed file 0.<br />

All fixed file pointers are reset to the beginning of their respective fixed<br />

files at the start of a document.<br />

The logical function is set to 01 (“or”) at the start of each document.<br />

Reference Guide 4 - 31


Chapter 4. Record Formats<br />

Set Position (SPO)<br />

Set Position (SPO)<br />

Byte Position Bytes Field Name Description<br />

4 - 32 IJPDS Formats<br />

The SPO record sets the starting position at a specific point on the page.<br />

The next printed line or space will start at this position. The X and Y<br />

coordinates in this record identify a starting position relative to the current<br />

origin. The origin is set to 0,0 by SDC, SOD, SOP, WFC, and CSR and to<br />

the current cursor position by SOR.<br />

When the starting position is set, the top left corner of the first character in<br />

the next printed line will be at that position. Printed lines and spaces<br />

subsequent to this record continue in the direction of the current font.<br />

Refer to Chapter 1 for a discussion of font direction.<br />

The effect of the SPO record will continue until another SPO, SPX, SRP,<br />

or CSR record, a start of page record (SOP or WFC), or a start of<br />

document record (SOD or SDC) is received. The top of page X,Y position<br />

of 0,0 is set by each SOP, WFC, SOD, CSR, and SDC record.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 08 specifies a record length of 8 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 21<br />

identifies the SPO record.<br />

5-6 2 X Position A signed binary number representing the X coordinate value in<br />

dots relative to the current origin. Negative values are represented<br />

using the two's complement form. For example, hex 06 A1<br />

specifies an X value of 1697 dots and F9 5F specifies an X value<br />

of -1697 dots. The useful range is printer dependent and also<br />

dependent upon the current cursor origin. Refer to Chapter 1 for a<br />

description of X position.<br />

7-8 2 Y Position A signed binary number representing the Y coordinate value in<br />

dots relative to the current origin. Negative values are represented<br />

using the two's complement form. For example, hex 03 12<br />

specifies a Y value of 786 dots and FC EE specifies a Y value of -<br />

786 dots. The useful range is printer dependent and also<br />

dependent upon the current cursor origin. Refer to Chapter 1 for a<br />

description of Y position.<br />

The following illustration shows how the starting position set by an SPO<br />

record is used by the different font orientations.


Set Position (SPX)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Set Position (SPX)<br />

The SPX record sets the starting position at a specific point on the page.<br />

The next printed line or space will start at this position. The X and Y<br />

coordinates in this record identify a starting position relative to the current<br />

origin. The origin is set to 0,0 by SDC, SOD, SOP, WFC, and CSR and to<br />

the current cursor position by SOR.<br />

When the starting position is set, the top left corner of the first character in<br />

the next printed line will be at that position. Printed lines and spaces<br />

subsequent to this record continue in the direction of the current font.<br />

Refer to Chapter 1 for a discussion of font direction.<br />

The effect of the SPX record will continue until another SPX, SPO, SRP,<br />

or CSR record, a start of page record (SOP or WFC), or a start of<br />

document record (SOD or SDC) is received. The top of page X,Y position<br />

of 0,0 is set by each SOP, WFC, SOD, CSR, and SDC record.<br />

This record performs in the same manner as the SPO record. The only<br />

difference is that the SPX record has 32-bit X and Y fields so that larger<br />

numbers can be specified.<br />

1-2 2 Record Length The length of this record, in binary, including the record length field.<br />

For example, hex 00 0C specifies a record length of 12 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 3C<br />

identifies the SPX record.<br />

5-8 4 X Position A signed binary number representing the X coordinate value in dots<br />

relative to the current origin. Negative values are represented using<br />

the two's complement form. For example, hex 00 00 19 00<br />

specifies an X value of 6400 dots and FF FF E7 00 specifies an X<br />

value of -6400 dots. The useful range is printer dependent and also<br />

dependent upon the current cursor origin. Refer to Chapter 1 for a<br />

description of X position.<br />

9-12 4 Y Position A signed binary number representing the Y coordinate value in dots<br />

relative to the current origin. Negative values are represented using<br />

the two's complement form. For example, hex 00 00 8C A0<br />

specifies a Y value of 36000 dots and FF FF 73 60 specifies a Y<br />

value of -36000 dots. The useful range is printer dependent and<br />

also dependent upon the current cursor origin. Refer to Chapter 1<br />

for a description of Y position.<br />

The following illustration shows how the starting position set by an SPX<br />

record is used by the different font orientations.<br />

Reference Guide 4 - 33


Chapter 4. Record Formats<br />

Set Origin (SOR)<br />

Set Origin (SOR)<br />

Byte Position Bytes Field Name Description<br />

4 - 34 IJPDS Formats<br />

The SOR record sets the origin for subsequent SPO and SPX records to<br />

the current cursor position. The origin is set to 0,0 at the start of each new<br />

page buffer by the SOD, SDC, SOP, and WFC records.<br />

An SPO or SPX record sets the current cursor relative to the origin.<br />

Following an SOR record, the SPO or SPX record sets the current cursor<br />

relative to the new origin.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 04 specifies a record length of 4 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 34<br />

identifies the SOR record.<br />

Refer to the Glossary at the back of this manual for definitions of origin,<br />

starting position, cursor position, and other related terms.


Chapter 4. Record Formats<br />

Set Relative Position (SRP)<br />

Set Relative Position (SRP)<br />

The SRP record contains X and Y values that set a new cursor position<br />

relative to the current cursor position.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 0C specifies a record length of 12 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 38<br />

identifies the SRP record.<br />

5-8 4 X Value A signed binary number that is added to the current X position of<br />

the cursor to determine the new X position of the cursor.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 08 specifies +8 dots and hex FF FF FF<br />

F8 specifies -8 dots.<br />

9-12 4 Y Value A signed binary number that is added to the current Y position of<br />

the cursor to determine the new Y position of the cursor.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 1B specifies +27 dots and hex FF FF<br />

FF E5 specifies -27 dots.<br />

Reference Guide 4 - 35


Chapter 4. Record Formats<br />

Cursor Save (CSS)<br />

Cursor Save (CSS)<br />

Byte Position Bytes Field Name Description<br />

4 - 36 IJPDS Formats<br />

The CSS record saves the current absolute cursor position for later<br />

retrieval by the Cursor Restore (CSR) record. Up to 15 different absolute<br />

cursor positions can be saved. Each saved position is assigned an<br />

identifying number by this record.<br />

Each saved cursor position is set to 0,0 at the start of each document.<br />

The saved cursor positions are maintained for successive pages of multipage<br />

documents.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 05 specifies a record length of 5 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 36<br />

identifies the CSS record.<br />

5 1 Save Number A binary number that identifies the saved cursor position. The<br />

range is 1-15, allowing 15 cursor positions to be saved. Save<br />

number 0 is reserved and is always set to position 0,0.


Cursor Restore (CSR)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Cursor Restore (CSR)<br />

The CSR record restores the cursor position to the last position stored by<br />

a CSS record for the specified number. The restore number in this record<br />

references the save number in the CSS record.<br />

If a cursor position was not stored for the number specified in the CSR<br />

record, the cursor is set to the default position (0,0).<br />

The CSR record does not reset the saved cursor position it restores.<br />

Successive CSR records for the same position number, without an<br />

intermediate CSS record, set the cursor to the same saved position.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 05 specifies a record length of 5 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 37<br />

identifies the CSR record.<br />

5 1 Restore Number A binary number that identifies the saved cursor position. The<br />

range is 0-15, allowing 15 cursor positions to be restored. Restore<br />

number 0 always sets the cursor position to 0,0.<br />

Reference Guide 4 - 37


Chapter 4. Record Formats<br />

Set Font and Spacing (SFS)<br />

Set Font and Spacing (SFS)<br />

The SFS record specifies a font and spacing values.<br />

4 - 38 IJPDS Formats<br />

The font identified in this record can be a regular or super font. It becomes<br />

the current font and remains in effect until another SFS record or an SOD,<br />

SDC, SFI, or SFT record is received.<br />

The SFS record sets all line and character spacing values to those<br />

contained in the spacing fields in this record. These become the current<br />

spacing values and remain in effect until another SFS record or an SOD,<br />

SDC, SFI, or SFT record is received.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length field.<br />

For example, hex 00 16 specifies a record length of 22 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 31<br />

identifies the SFS record.<br />

5 1 Font Number A binary number that identifies the font or super font to be selected.<br />

The range is 0 - 254. For example, hex 0A specifies a font number<br />

of 10.<br />

6 1 Reserved This field is not used and must contain all binary zeroes.<br />

7-10 4 X Line Spacing A signed binary number that is added to the X Escapement<br />

specified in the font record to determine the starting X position of<br />

the next line relative to the starting X position of the current line.<br />

The X line spacing moves relative to the direction of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 08 specifies +8 dots hex FF FF FF F8<br />

specifies -8 dots.<br />

11-14 4 Y Line Spacing A signed binary number that is added to the Y Escapement<br />

specified in the font record to determine the starting Y position of<br />

the next line relative to the starting Y position of the current line.<br />

The Y line spacing moves relative to the direction of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 1B specifies +27 dots and hex FF FF FF<br />

E5 specifies -27 dots.<br />

15-18 4 X Character Spacing A signed binary number that is added to the X Escapement<br />

specified in each character record to determine the starting X<br />

position of the next character cursor relative to the starting X<br />

position of the current character cursor. The X character spacing<br />

moves relative to the direction of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 16 specifies +22 dots and hex FF FF FF<br />

EA specifies -22 dots.<br />

19-22 4 Y Character Spacing A signed binary number that is added to the Y Escapement<br />

specified in each character record to determine the starting Y<br />

position of the next character cursor relative to the starting Y<br />

position of the current character cursor. The Y character spacing<br />

moves relative to the direction of the font.<br />

Negative values are represented using the two's complement form.<br />

For example, hex 00 00 00 1B specifies +27 dots and hex FF FF FF<br />

E5 specifies -27 dots.


Set Font (SFT)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Set Font (SFT)<br />

The SFT record contains the number and the interline spacing (ILS) of a<br />

font or super font.<br />

The SFT record sets all line and character spacing values. The Y line<br />

spacing is set to the ILS value in this record, and the other three spacing<br />

values are set to 0. The font and ILS specified in this record become the<br />

current font and ILS and remain in effect until these values are specified<br />

by another record.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 06 specifies a record length of 6 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 2C<br />

identifies the SFT record.<br />

5 1 Font Number The font assignment number, in binary, for the font to be selected.<br />

The range is 0-254. For example, hex 16 specifies a font number<br />

of 22.<br />

6 1 Interline Spacing (ILS) A binary number that specifies the number of additional dot rows of<br />

space to be generated following each line printed with this font.<br />

The range is 0 - 255. This ILS becomes the current ILS and is used<br />

until another ILS is specified in a subsequent record.<br />

The value in this field overrides the ILS values in all previous<br />

records.<br />

Reference Guide 4 - 39


Chapter 4. Record Formats<br />

Set Font and Image (SFI)<br />

Set Font and Image (SFI) The SFI record specifies the font and interline spacing to be used when<br />

printing the line of text characters in the record. The font can be a regular<br />

(single-byte) font or a super (double-byte) font.<br />

Byte Position Bytes Field Name Description<br />

4 - 40 IJPDS Formats<br />

The SFI record sets all line and character spacing values. The Y line<br />

spacing is set to the ILS value in this record, and the other three spacing<br />

values are set to 0. The font and ILS specified in this record become the<br />

current font and ILS and remain in effect until these values are specified<br />

by another record.<br />

If there are no text characters in the SFI record, a blank line will be<br />

printed.<br />

If the multi-part line mode is enabled by an MPL record, the cursor is left<br />

at the end of the text printed by this record and is not positioned for the<br />

next line.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 2F specifies a record length of 47 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 0B<br />

identifies the SFI record.<br />

5 1 Font Number A binary number that identifies the font to be used for this line of<br />

text. This font becomes the current font and is used until another<br />

font is specified in a subsequent record. For example, hex 0E<br />

specifies font number 14.<br />

6 1 Interline Spacing A binary number that identifies the number of dot rows of space to<br />

be generated following each line printed with the font identified in<br />

the previous field. The range is 0 - 255. For example, hex 02<br />

specifies 2 dot rows. This ILS becomes the current ILS and is used<br />

until another ILS is specified in a subsequent record.<br />

The value in this field overrides the ILS values in all previous<br />

records.<br />

7-n n Print Line A character string representing a line of text. The character coding<br />

must agree with the coding of characters in the font. There is no<br />

end-of-line character.<br />

If the font is a super font, there must be an even number of bytes in<br />

this field.


Image a Line (IML)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Image a Line (IML)<br />

The IML record contains the characters for a line of print. It is the same as<br />

the SFI record except that a font and ILS are not specified. The current<br />

font and ILS are used. The current font can be a regular (single-byte) font<br />

or a super (double-byte) font. If there are no text characters in the record,<br />

a blank line is printed.<br />

If the multi-part line mode is enabled by an MPL record, the cursor is left<br />

at the end of the text printed by this record and is not positioned for the<br />

next line.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 2F specifies a record length of 47 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 0C<br />

identifies the IML record.<br />

5-n n Print Line A character string representing a line of text. The character coding<br />

must agree with the coding of characters in the font. There is no<br />

end-of-line character.<br />

If the font is a super font, there must be an even number of bytes in<br />

this field.<br />

Reference Guide 4 - 41


Chapter 4. Record Formats<br />

Two-Byte Image Line (SIL)<br />

Two-Byte Image Line (SIL)<br />

The SIL record contains the characters for a line of print. It is the same as<br />

the IML record except that two bytes are used to identify each character.<br />

For a category I super font, the first byte is for the subfont number and the<br />

second byte is for the character within that subfont. A category II font is<br />

not divided into subfonts so the two bytes simply identify the desired<br />

character. The current font must be a super (double-byte) font when this<br />

record occurs or an error occurs and printing stops.<br />

Byte Position Bytes Field Name Description<br />

4 - 42 IJPDS Formats<br />

If there is no text included, a blank line will be printed.<br />

If the multi-part line mode is enabled by an MPL record, the cursor is left<br />

at the end of the text printed by this record and is not positioned for the<br />

next line.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 30 specifies a record length of 48 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 2B<br />

identifies the SIL record.<br />

5-n n Print Line A character string representing a line of text. The character coding<br />

must agree with the coding of characters in the font. There is no<br />

end-of-line character.<br />

Each character is identified using two bytes.


Chapter 4. Record Formats<br />

Multi-Part Line Mode (MPL)<br />

Multi-Part Line Mode (MPL)<br />

The MPL record enables or disables the multi-part line mode.<br />

Byte Position Bytes Field Name Description<br />

When the multi-part line mode is disabled and a line is printed with an<br />

SFI, IML, SIL, or UIL record, the cursor is positioned to the start of the<br />

next line according to the current font metrics and spacing.<br />

When the multi-part line mode is enabled and a line is printed with an SFI,<br />

IML, SIL, or UIL record, the cursor is left at the end of the current line.<br />

The MPL record is useful when you want to change fonts within a line.<br />

The multi-part line mode is disabled at the start of each document. Once<br />

enabled by an MPL record, the mode remains enabled until disabled by<br />

another MPL record or the start of a new document.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 05 specifies a record length of 5 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 35<br />

identifies the MPL record.<br />

5 1 Mode A binary number that sets the multi-part line mode as follows:<br />

Hex 00 = Disable<br />

Hex 01 = Enable<br />

Reference Guide 4 - 43


Chapter 4. Record Formats<br />

Set Fixed File (SFF)<br />

Set Fixed File (SFF)<br />

Byte Position Bytes Field Name Description<br />

4 - 44 IJPDS Formats<br />

The SFF record executes selected records in the fixed file identified in the<br />

record. The SFF record leaves the fixed-file pointer at the next record<br />

after the last record skipped or executed, or at the end of the file.<br />

The fixed file pointer indicates the current position in the file. The pointer<br />

is moved forward by the SFF and GFF records. It can be reset by the RFF<br />

record for a single file. The SOD and SDC records reset the pointers for<br />

all fixed files simultaneously.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 08 specifies a record length of 8 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 0D<br />

identifies the SFF record.<br />

5 1 Record Displacement The number, in binary, of records in the fixed file to be skipped. For<br />

example, hex 06 specifies that 6 records are to be skipped. The<br />

number can be zero (hex 00). The records specified in this field are<br />

skipped before the records specified in the next field are executed.<br />

6 1 Records Executed The number, in binary, of records to be executed. For example,<br />

hex 0A specifies that 10 records are to be executed. The number<br />

can be zero (hex 00). The records specified in this field are<br />

executed after the records specified in the previous field are<br />

skipped.<br />

7 1 Reserved This field is not used and must contain all binary zeroes.<br />

8 1 Fixed File Number The number, in binary, of the fixed file to be used. For example,<br />

hex 1D specifies a file number of 29. This becomes the current<br />

fixed file and is used in subsequent fixed file operations that do not<br />

specify a file number.


Go to Fixed File (GFF)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Go to Fixed File (GFF)<br />

The GFF record performs the same function as the SFF record except<br />

that the fixed file is not identified. The current fixed file, the last one to be<br />

identified in an SFF, RFF, SOD, or SDC record, is used.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 06 specifies a record length of 6 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 0F<br />

identifies the GFF record.<br />

5 1 Record Displacement The number, in binary, of records in the fixed file to be skipped. For<br />

example, hex 06 specifies that 6 records are to be skipped. The<br />

number can be zero (hex 00). The records specified in this field are<br />

skipped before the records specified in the next field are executed.<br />

6 1 Records Executed The number, in binary, of records to be executed. For example,<br />

hex 0A specifies that 10 records are to be executed. The number<br />

can be zero (hex 00). The records specified in this field are<br />

executed after the records specified in the previous field are<br />

skipped.<br />

Reference Guide 4 - 45


Chapter 4. Record Formats<br />

Reset Fixed File (RFF)<br />

Reset Fixed File (RFF)<br />

Byte Position Bytes Field Name Description<br />

4 - 46 IJPDS Formats<br />

The RFF record performs the same function as the SFF record except<br />

that the fixed-file pointer is first reset to the start of the file. Resetting the<br />

pointer to the start of the file allows the file to be used in random order.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 08 specifies a record length of 8 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 0E<br />

identifies the RFF record.<br />

5 1 Record Displacement The number, in binary, of records in the fixed file to be skipped. For<br />

example, hex 06 specifies that 6 records are to be skipped. The<br />

number can be zero (hex 00). The records specified in this field are<br />

skipped before the records specified in the next field are executed.<br />

6 1 Records Executed The number, in binary, of records to be executed. For example,<br />

hex 0A specifies that 10 records are to be executed. The number<br />

can be zero (hex 00). The records specified in this field are<br />

executed after the records specified in the previous field are<br />

skipped.<br />

7 1 Reserved This field is not used and must contain all binary zeroes.<br />

8 1 Fixed File Number The number, in binary, of the fixed file to be used. For example,<br />

hex 1D specifies a file number of 29. This becomes the current<br />

fixed file and is used in subsequent fixed file operations that do not<br />

specify a file number.


Chapter 4. Record Formats<br />

Unformatted Image Line (UIL)<br />

Unformatted Image Line (UIL)<br />

The UIL record specifies the portion of an unformatted image string that is<br />

to be printed. Unformatted image strings are stored in IML records in fixed<br />

files. GFF, RFF, and SFF records are used to position the fixed file pointer<br />

at the IML record and then the UIL record specifies the portion to print. If<br />

the record pointed to by the fixed file pointer is not an IML record, printing<br />

stops and an error is generated when the UIL record is executed.<br />

Byte Position Bytes Field Name Description<br />

The UIL record does not affect the current fixed file and current record<br />

numbers set by the GFF, RFF, and SFF records.<br />

If the multi-part line mode is enabled by an MPL record, the cursor is left<br />

at the end of the text printed by this record and is not positioned for the<br />

next line.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 08 specifies a record length of 8 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 33<br />

identifies the UIL record.<br />

5-6 2 Start of String An unsigned binary number that specifies the number of the byte<br />

within the unformatted image string at which printing is to start.<br />

A binary zero starts printing at the first byte of the string. The range<br />

is 0-65535.<br />

If the current font is a super font, the start value must be an even<br />

number.<br />

A start value that is equal to or greater than the length of the string<br />

causes printing to stop and an error message to be generated.<br />

7-8 2 String Length An unsigned binary number that specifies the number of bytes to<br />

be printed from the unformatted image string. The range is<br />

0-65535.<br />

A length value of binary zero causes the printing of a blank line if<br />

the Multi-Part line mode is disabled. Refer to the description for the<br />

MPL record. If the Multi-Part line mode is enabled, a length value<br />

of binary zero does not affect the current cursor position.<br />

If the length value added to the start value exceeds the length of<br />

the unformatted string, printing stops and an error message is<br />

generated.<br />

If the current font is a super font, the length must be an even<br />

number.<br />

Reference Guide 4 - 47


Chapter 4. Record Formats<br />

Space (SPC)<br />

Space (SPC)<br />

Byte Position Bytes Field Name Description<br />

4 - 48 IJPDS Formats<br />

The SPC record generates vertical space in the direction of the current<br />

font. Refer to Chapter 1 for a description of font direction. The space is<br />

generated just by moving the cursor; the logical function (see SLF) has no<br />

effect.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 06 specifies a record length of 6 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 07<br />

identifies the SPC record.<br />

5-6 2 Vertical Space An unsigned binary number that specifies the number of dot rows<br />

of vertical space to be generated. The range is 1 - 65535. The<br />

vertical space is generated in the direction of the current font. The<br />

current font is the last font specified in a previous record.


Chapter 4. Record Formats<br />

Set Logical Function (SLF)<br />

Set Logical Function (SLF)<br />

The SLF record sets the logical function to be used when an image is<br />

written to the page buffer in an area where another image already exists.<br />

The logical function determines how new dots are combined with existing<br />

dots.<br />

Byte Position Bytes Field Name Description<br />

The effects of the logical function apply only to character dots, not to any<br />

spacing defined for the font. Data that is written into a previously unused<br />

area of the page buffer will be combined with the existing 0 bits according<br />

to the current logical function. Data generated by BOX and IBM records is<br />

also affected by the logical function.<br />

Space characters are processed according to the current logical function<br />

just like any other character. Only spaces actually present in the SFI, IML,<br />

or SIL records are processed. Spaces are not generated at the end of a<br />

line to extend to the page limit. Trailing spaces present in SFI, IML, or SIL<br />

records could overlay existing data.<br />

The SPC record moves the cursor to the desired vertical position. The<br />

buffer area skipped over is not changed, and therefore the logical function<br />

does not affect the result of an SPC record.<br />

Characters are rectangular images. The logical functions apply to the<br />

entire area of the rectangle, not just to the black dots of the character.<br />

Before the first SLF record in each document occurs, the default logical<br />

function is OR.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 05 specifies a record length of 5 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 28<br />

identifies the SLF record.<br />

5 1 Function A binary value that specifies the logical function to be used. The<br />

range is 0-7 with each value having the following meaning, where<br />

X is the existing value of the dot and Y is the new value.<br />

00-REPLACE (Y)<br />

01-OR (X ∨ Y)<br />

02-AND (X ∧ Y)<br />

03-EXCLUSIVE OR (X _ Y)<br />

04-REPLACE NOT (Replace by “Ones complement”) (-Y)<br />

05-OR NOT [X ∨ (-Y)]<br />

06-AND NOT [X ∧ (-Y)]<br />

07-EXCLUSIVE OR NOT [X _ (-Y)]<br />

With category II fonts, character bounding boxes may overlap other<br />

characters in the same line. When using such fonts, you should be<br />

especially careful not to use a logical function that would cause some<br />

characters to destroy parts of other characters. In general, the logical<br />

functions that are “safe” are 01, 03, and possibly 06.<br />

Reference Guide 4 - 49


Chapter 4. Record Formats<br />

Set Logical Function (SLF)<br />

4 - 50 IJPDS Formats<br />

Refer to the following table for a definition of each logical function. For<br />

each dot, if X is the existing value (0 or 1) and Y is the new value (0 or 1),<br />

the table shows the resulting value.<br />

00 01 02 03 04 05 06 07<br />

X Y Y (X ∨ Y) (X ∧ Y) (X | Y) (-Y) [X ∨ (-Y)] [X ∧ (-Y)] [X | (-Y)]<br />

0 0 0 0 0 0 1 1 0 1<br />

0 1 1 1 0 1 0 0 0 0<br />

1 0 0 1 0 1 1 1 1 0<br />

1 1 1 1 1 0 0 1 0 1


Chapter 4. Record Formats<br />

Fill a Rectangular Area (BOX)<br />

Fill a Rectangular Area (BOX)<br />

The BOX record defines the size of an area that is to be filled with a black<br />

or white fill pattern. The fill pattern is placed in the page bitmap using the<br />

current logical function as defined by a previous SLF record or by the<br />

default function (OR).<br />

Byte Position Bytes Field Name Description<br />

After this record, the cursor position is at the current X position and the<br />

current Y position plus the height of the box. The height and width of the<br />

box are in the upright orientation.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 09 specifies a record length of 9 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 27<br />

identifies the BOX record.<br />

5-6 2 Height An unsigned binary value representing the height of the box in<br />

dots. The range depends on the printer and the PLR record. The<br />

height is measured down the length of the page in the Y direction<br />

when looking at the substrate in the direction it is moving. For<br />

example, hex 00 37 specifies a box height of 55 dots.<br />

7-8 2 Width An unsigned binary value representing the width of the box in dots.<br />

The range is printer and printhead dependent. For example, the<br />

range is 1-4096 for systems using four stitched 4-inch printheads<br />

and 1-1024 for systems with one 4-inch printhead. The width is<br />

measured across the width of the page in the X direction when<br />

looking at the substrate in the direction it is moving. For example,<br />

hex 06 A1 specifies a width of 1697 dots.<br />

9 1 Fill Pattern A binary value that specifies the fill pattern. Hex 00 = white and<br />

hex 01 = black.<br />

Some KODAK VERSAMARK printers support clipping of the image created<br />

by a BOX record. Clipping means that if part of the box falls outside the<br />

buffer, the part that is in the buffer is printed and the cursor is moved. The<br />

cursor is moved as if the entire image was printed, even though it may fall<br />

outside the buffer. See Appendix C to determine if your printer supports<br />

clipping for the BOX record.<br />

If clipping is not supported and part of the box falls outside the buffer,<br />

none of the box is printed and the cursor is not moved.<br />

In both cases (clipping supported and clipping not supported), a message<br />

is generated only if the image falls outside the limits set by the RCR<br />

record (or the default range if no RCR). Refer to the RCR record<br />

description.<br />

Reference Guide 4 - 51


Chapter 4. Record Formats<br />

Image Bitmap (IBM)<br />

Image Bitmap (IBM)<br />

Byte Position Bytes Field Name Description<br />

4 - 52 IJPDS Formats<br />

The IBM record, which is interchangeable with the Compressed Bitmap<br />

(CBM) record, contains a bitmap that is to be printed at the current cursor<br />

position according to the current logical function set by the last SLF<br />

record. The bitmap is placed on the page in the upright orientation.<br />

After this record, the cursor position is at the current X position and the<br />

current Y position plus the height of the bitmap.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 22 specifies a record length of 34 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 29<br />

identifies the IBM record.<br />

5-6 2 Height An unsigned binary value representing the height of the bitmap in<br />

dots. The range is printer dependent and also dependent upon the<br />

blocking of input data. The height is measured down the length of<br />

the page in the Y direction when looking at the substrate in the<br />

direction it is moving. For example, hex 00 37 specifies a bitmap<br />

height of 55 dots.<br />

7-8 2 Width An unsigned binary value representing the width of the bitmap in<br />

dots. The range is printer dependent. For example, the range is<br />

1-4096 for systems using four stitched 4-inch printheads and<br />

1-1024 for systems with one 4-inch printhead. The width is<br />

measured across the width of the page in the X direction when<br />

looking at the substrate in the direction it is moving. For example,<br />

hex 06 A1 specifies a width of 1697 dots.<br />

9-10 2 Reserved This field is not used and must contain all binary zeroes.<br />

11-n n Bitmap The bitmap begins at byte position 11 and is arranged in horizontal<br />

raster format. Each row of the raster must be padded to the right<br />

with binary zeroes to make an integral number of 16-bit segments.<br />

The width of the bitmap (byte positions 7 and 8) does not have to<br />

be a multiple of 16 bits but the bitmap does.<br />

The total length of the bitmap, in bytes, is the width specified in bytes 7-8,<br />

rounded up to a multiple of 16, divided by 8, and multiplied by the height<br />

specified in bytes 5-6. Because this record cannot be continued, it must<br />

all fit in one block, which limits the size of the bitmap to 4084 bytes. If a<br />

bitmap is larger than 4084 bytes, it must be broken up into multiple IBM<br />

records.<br />

Some KODAK VERSAMARK printers support clipping of the image created<br />

by an IBM record. Clipping means that if part of the bitmap falls outside<br />

the buffer, the part that is in the buffer is printed and the cursor is moved.<br />

The cursor is moved as if the entire image was printed, even though it<br />

may fall outside the buffer. See Appendix C to determine if your printer<br />

supports clipping for the IBM record.<br />

If clipping is not supported and part of the bitmap falls outside the buffer,<br />

none of the box is printed and the cursor is not moved.


Chapter 4. Record Formats<br />

Compressed Bitmap (CBM)<br />

Compressed Bitmap (CBM)<br />

The CBM record, which is interchangeable with the Image Bitmap (IBM)<br />

record, contains a compressed bitmap that is to be printed at the current<br />

cursor position according to the current logical function set by the last SLF<br />

record. The bitmap is placed on the page in the upright orientation.<br />

Byte Position Bytes Field Name Description<br />

After this record, the cursor position is at the current X position and the<br />

current Y position plus the height of the bitmap.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 22 specifies a record length of 34 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 3E<br />

identifies the CBM record.<br />

5-6 2 Height An unsigned binary value representing the height of the bitmap in<br />

dots. The range is printer dependent and also dependent upon the<br />

blocking of input data. The height is measured down the length of<br />

the page in the Y direction when looking at the substrate in the<br />

direction it is moving. For example, hex 00 37 specifies a bitmap<br />

height of 55 dots.<br />

7-8 2 Width An unsigned binary value representing the width of the bitmap in<br />

dots. The range is printer dependent. For example, the range is<br />

1-4096 for systems using four stitched 4-inch printheads and<br />

1-1024 for systems with one 4-inch printhead. The width is<br />

measured across the width of the page in the X direction when<br />

looking at the substrate in the direction it is moving. For example,<br />

hex 06 A1 specifies a width of 1697 dots.<br />

9-10 2 Reserved This field is not used and must contain all binary zeroes.<br />

11-12 2 Compression Type Specifies the compression algorithm used to compress the<br />

bitmapped character data. Undefined or unsupported compression<br />

types will cause the imager to display an error message and stop<br />

printing.<br />

Compression types (see “Compression Types” on page 4-2) are:<br />

0x0000 = Reserved<br />

0x0001 = 32-bit Vertical Run Length Encoding (RLEV32)<br />

13-16 4 Compression<br />

Parameter<br />

17-n varies Compressed Bitmap<br />

Data<br />

The meaning of these bytes depends on the compression type<br />

specified in bytes 10-11.<br />

The bitmap is always imaged upright into the frame buffer at the<br />

current position and according to the current logical function. The<br />

cursor position following this command will be left at the current X<br />

position and at the current Y position plus the height of the bitmap.<br />

Should the compressed bitmap contain more or less<br />

uncompressed data than what is specified by the Height and Width<br />

fields, the imager will display an error message and imaging will<br />

stop.<br />

The compressed bitmap begins at byte position 17 and is arranged<br />

in horizontal raster format compressed using the compression<br />

method specified in byte positions 11 and 12. Each row of the<br />

raster must be padded to the right with binary zeroes (before<br />

compression) to make an integral number of 32-bit segments. The<br />

width of the bitmap (byte positions 7 and 8) does not have to be a<br />

multiple of 32 bits but the bitmap raster row length does.<br />

Reference Guide 4 - 53


Chapter 4. Record Formats<br />

Remote Resource (RSRC)<br />

Remote Resource (RSRC)<br />

The RSRC record in the data stream directs the data system to read a<br />

sequence of IJPDS records from a remote resource file.<br />

Byte Position Bytes Field Name Description<br />

4 - 54 IJPDS Formats<br />

Primary applications can read fonts or bitmaps (IBMs and CBMs) from the<br />

remote resource file to enable:<br />

Faster font loading<br />

Faster inline bitmap (IBM or CBM) printing<br />

Smaller data stream<br />

Reuse of IBMs and CBMs.<br />

Resource files are assumed to be placed on the source by the host or a<br />

customer application.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 22 specifies a record length of 34 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 3F<br />

identifies the RSRC record.<br />

5 1 Resource Type Resource type:<br />

0 = This value is reserved;<br />

1 = IJPDS (the resource file is a sequence of IJPDS records).<br />

There is no block length or file length at the beginning of the<br />

resource file; the file starts with the first IJPDS record of the<br />

resource. The IJPDS records are sequential; there is no provision<br />

to pad the file for odd record lengths.<br />

6-8 3 Reserved These bytes are reserved for future use.<br />

9-n varies Resource Name NULL-terminated ASCII file name or path from the source file<br />

system.


Chapter 4. Record Formats<br />

Set Page Length (SPL)<br />

Set Page Length (SPL) The SPL record specifies the length of the current page. By default, the<br />

length of each page is calculated based on the image data on the page.<br />

The page length is the number of dot rows to be printed. Printing always<br />

starts at the top of the buffer (Y = 0). The default page length is the<br />

maximum of the Y value of any position that the cursor ever occupied on<br />

the page, or one more than the highest Y position occupied by the cell or<br />

bounding box of any character, BOX or IBM.<br />

Byte Position Bytes Field Name Description<br />

Using the SPL record, the page length can be set to be longer or shorter<br />

than the length calculated based on the image data. If the page length is<br />

set to be shorter than the calculated length, part of the image will be<br />

clipped. If the page length is set to be longer than the calculated length,<br />

white space is included up to the specified length.<br />

If the SPL record occurs more than once for a page, the last value<br />

specified is used.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 0C specifies a record length of 12 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 3A<br />

identifies the SPL record.<br />

5-6 2 Page Length An unsigned binary value representing the page length in dots.<br />

The range is 1 to the maximum page buffer length. For example,<br />

0E 06 represents a page length of 3590 dots.<br />

Reference Guide 4 - 55


Chapter 4. Record Formats<br />

Start of Page (SOP)<br />

Start of Page (SOP)<br />

Byte Position Bytes Field Name Description<br />

4 - 56 IJPDS Formats<br />

The SOP record specifies the start of a new page and sets the starting<br />

position to the top of the page. The X,Y coordinates are 0,0 for the top of<br />

the page (upper left corner when looking at the substrate in the direction it<br />

is moving). The current origin and cursor position are also set to 0,0 by<br />

the SOP record. Refer to Chapter 1 for a discussion of pages, position<br />

coordinates, origin, and multiple pages per document.<br />

The SOP record should be used only if the document is longer than the<br />

page buffer length. A long document should be divided among pages as<br />

equally as possible for system efficiency.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 04 specifies a record length of 4 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 20<br />

identifies the SOP record.


Wait for Cue (WFC)<br />

Chapter 4. Record Formats<br />

Wait for Cue (WFC)<br />

The WFC record causes the printing system to wait for a cue and then<br />

start a new page. Subsequent records are not processed until the cue<br />

signal occurs. This record also resets the cursor origin, the starting<br />

position, and the cursor position to 0,0. Refer to Chapter 1 for a<br />

description of pages.<br />

Note: The WFC record cannot be used with the CS200 and CS220 system<br />

controllers.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 06 specifies a record length of 6 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 06<br />

identifies the WFC record.<br />

5-6 2 Vertical Space This field is used only for the KODAK VERSAMARK DS2900 printing<br />

system and should be binary 0 for all other systems.<br />

A binary number that specifies the number of dot rows of vertical<br />

space to generate after the cue is reached.<br />

Reference Guide 4 - 57


Chapter 4. Record Formats<br />

Stop (STP)<br />

Stop (STP)<br />

Byte Position Bytes Field Name Description<br />

4 - 58 IJPDS Formats<br />

The STP record causes the printing system to stop printing. An optional<br />

message can be included in this record for the printing system to display.<br />

Timing of the display is not synchronized with the printing of the last<br />

document. After an STP record, printing must be restarted by the<br />

operator.<br />

This record should occur only at the end of a document, just before an<br />

SOD or SDC. For multiple RIP printing systems, the STP record must be<br />

present at the end of the same document for each RIP.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 2F specifies a record length of 47 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 08<br />

identifies the STP record.<br />

5-n n Message An EBCDIC character string representing a message to be<br />

displayed at the printing system.<br />

Note: Some data stations do not have the ability to display messages; in this<br />

case, the MSG record is ignored.


Message (MSG)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

Message (MSG)<br />

The MSG record can be placed anywhere in the stream of documents,<br />

after the first SOD or SDC record. The message is displayed as printing<br />

continues. Timing of the display is not synchronized with the time of<br />

printing of the documents before or after the MSG record.<br />

When the MSG record is used in a fixed file, the message is displayed<br />

when the MSG record is executed from the file.<br />

This record should be used only where necessary. Frequent use can<br />

reduce printing speed.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 2F specifies a record length of 47 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 0A<br />

identifies the MSG record.<br />

5-n n Message An EBCDIC character string representing a message that is<br />

displayed at the printing system.<br />

Note: Some data stations are not capable of displaying messages, in which<br />

case, the MSG record is ignored.<br />

Reference Guide 4 - 59


Chapter 4. Record Formats<br />

Verify Character Checksum (VCC)<br />

Verify Character Checksum (VCC)<br />

The VCC record is used to verify the data written to each page buffer. The<br />

printer starts calculating a checksum value at the start of each page and<br />

continues until the end of the page. When the VCC record occurs, the<br />

checksum value in the record is compared to the current checksum value<br />

calculated by the printer. If the two checksums do not agree, the printer<br />

does a fast stop operation. The VCC record may appear several times in<br />

the data stream for one page. For a multiple RIP, the checksum is<br />

calculated independently for each page for each RIP.<br />

Byte Position Bytes Field Name Description<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 08 specifies a record length of 8 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 2D<br />

identifies the VCC record.<br />

5-8 4 Checksum A value calculated by the printer in the printing system as<br />

described below.<br />

4 - 60 IJPDS Formats<br />

The character checksum is calculated as follows:<br />

The checksum is set to 0 by the printer at the start of each page.<br />

As each character printed by an SFI, IML, SIL, or UIL record is placed<br />

into the page buffer, its character value is added to the character<br />

checksum for the page. Only the least significant 32 bits of the<br />

checksum is retained and checked.<br />

For a single-byte font, the character value is an 8-bit number calculated<br />

as follows:<br />

Character value = (character position + font number) modulo 256.<br />

Where:<br />

Character position = character identifier specified in CDR/CDM/CCD.<br />

Font number = number specified in FDR/FDM.<br />

For a double-byte font, the character value is an 8-bit number calculated<br />

as follows:<br />

Character value = (character position + subfont number + super font<br />

number) modulo 256.<br />

Where:<br />

Character position = character identifier specified in CDR.<br />

Subfont number is the number specified in FDR.<br />

Character position + subfont number = the sum of the two bytes in the<br />

character identifier in CDM/CCD.<br />

Superfont number is the number specified in SFD/SFM.


No Operation (NOP)<br />

Byte Position Bytes Field Name Description<br />

Chapter 4. Record Formats<br />

No Operation (NOP)<br />

The NOP record indicates that the remainder of the record, which can be<br />

any length, is to be ignored by the printing system. Using the control code<br />

for the NOP record allows existing records to remain in the file but not be<br />

used.<br />

The NOP record can be used during font definitions, fixed file definitions,<br />

or within variable data records. If an NOP record is found while loading<br />

fixed files, the record is loaded into fixed file memory.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 04 specifies a record length of 4 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 22<br />

identifies the NOP record.<br />

Reference Guide 4 - 61


Chapter 4. Record Formats<br />

End of Job (EOJ)<br />

End of Job (EOJ)<br />

Byte Position Bytes Field Name Description<br />

4 - 62 IJPDS Formats<br />

The EOJ record is placed after the last document and indicates the end of<br />

the job. An optional message can be included in this record for the<br />

printing system to display. Timing of the display is not synchronized with<br />

the printing of the last document.<br />

For multi-RIP printing systems, this record must be included after the last<br />

document for each RIP.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 2F specifies a record length of 47 bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. The 255th<br />

record is hex FF and the 256th record is hex 00. This count is used<br />

to verify record sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 09<br />

identifies the EOJ record.<br />

5-n n Message An EBCDIC character string representing a message that is<br />

displayed at the printing system.


Chapter 4. Record Formats<br />

Job Control Record (JCR)<br />

Job Control Record (JCR)<br />

The JCR record is used only in job files intended for the KODAK<br />

VERSAMARK DS2900 printing system. The JC2, PHR, and FAR records<br />

have replaced the JCR record and are required in job files for all printing<br />

systems newer than the DS2900.<br />

Byte Position Bytes Field Name Description<br />

A job file for a DS2900 printing system may not include any record with a<br />

control code larger than hex 14.<br />

1-2 2 Record Length The length of this record, in binary, including the record length<br />

field. For example, hex 00 D4 specifies a record length of 212<br />

bytes.<br />

3 1 Cyclic Record Count A binary cyclic record count using modulo 256. Each record in the<br />

job is counted, starting with hex 01 for the first record. Because the<br />

JCR record is always the first record in the job file, the count is<br />

always hex 01 for this record. The count is used to verify record<br />

sequence.<br />

4 1 Control Code A binary code that identifies the record type. A value of hex 00<br />

identifies the JCR record.<br />

5 1 Printhead Description An EBCDIC digit that describes the printhead being used for this<br />

job.<br />

1 (hex F1)=8 inch, 120 dpi printhead<br />

2 (hex F2)=10.66 inch, 120 dpi printhead<br />

3 (hex F3)=13.33 inch, 120 dpi printhead<br />

6 1 Print Resolution An EBCDIC character that specifies the print resolution for this job.<br />

(Space) (hex 40) = 120 dpi x 120 dpi<br />

D (hex C4) = 120 dpi x 240 dpi<br />

7-14 7 Reserved This field is not used and must contain all binary zeroes.<br />

15 1 Default Font The assignment number, in binary, of the default font. The default<br />

font is set as the current font at the start of each document if the<br />

SOD or SDC record does not contain a starting font number. The<br />

range is 0 - 15. For example, hex 0A specifies a font number of 10.<br />

16-18 3 Reserved This field is not used and must contain all binary zeroes.<br />

19 1 Print Density A value, in binary, that specifies the default print density for this<br />

job. The range is 0 - 15. The operator can override this field.<br />

20-147 128 Font Names Up to 16 eight-character names, in EBCDIC, of the fonts to be<br />

used in this job. Each name must be space filled to the right and all<br />

unused names must be space filled. If the fonts listed in this field<br />

are not loaded in the printer and no fonts follow in the file, an error<br />

is generated.<br />

148-151 4 Security Code This field is used only if security is enabled. It is a 4-byte security<br />

code that is the result of an encryption of the Job Identifier Field<br />

(byte positions 205-212). The encryption may be done with a fixed<br />

or an operator-entered password.<br />

Reference Guide 4 - 63


Chapter 4. Record Formats<br />

Job Control Record (JCR)<br />

Byte Position Bytes Field Name Description<br />

152-174 23 Job Information A string of 23 EBCDIC characters used to identify this job. This can<br />

be a job name, the data preparation program name, or any other<br />

identifying information. This field can have any format. It is logged<br />

when the job is run, but it is not used otherwise.<br />

175-188 14 Data Prep Date A string of 14 EBCDIC characters containing the date this job file<br />

was prepared. This field can have any format. It is logged when the<br />

job is run, but it is not used otherwise.<br />

189-202 14 Data Prep Time A string of 14 EBCDIC characters containing the time this job file<br />

was prepared. This field can have any format. It is logged when the<br />

job is run, but it is not used otherwise.<br />

203-204 2 Reserved This field is not used and must contain all binary zeroes.<br />

205-212 8 Job Identifier This field is used if security is enabled. It is an 8-byte Job Identifier<br />

that is encrypted as described in the Security Code field (byte<br />

positions 148-151).<br />

This field is logged whenever the Job History logging feature is<br />

enabled (with or without security).<br />

If the security or job history features are not used, this field can be<br />

filled with pad characters of any kind or the record can end at byte<br />

204.<br />

4 - 64 IJPDS Formats


Single-RIP System<br />

Chapter 5. Record Sequence<br />

This chapter describes the requirements for the sequence of records in<br />

the IJPDS job file. Some records are required to be in a prescribed<br />

sequence while other records, within certain limits, can occur as the job<br />

image layout requires.<br />

The sequence of records is also affected by the RIP configuration of the<br />

printing system. Job files for multi-RIP systems have different sequence<br />

requirements than single-RIP systems. Single-RIP and multi-RIP systems<br />

are discussed separately in this chapter.<br />

Some KODAK VERSAMARK printers allow portions of the job information to<br />

be placed in separate files. The sequence requirements for separate files<br />

are discussed at the end of this chapter.<br />

Figure 5.1 illustrates the record sequence required for a single-RIP job<br />

file. Because there is no RIP record immediately following the JC2 record<br />

all data is assigned to RIP 0. The PHR and FAR records (in either order)<br />

must follow the JC2 record. The PHR record describes the printheads<br />

required for the job and the FAR record lists all the fonts required. If the<br />

fonts listed in the FAR record are the same as the fonts already loaded in<br />

the data station, then font records are not required.<br />

If any of the following records are used, they must be included with the<br />

PHR and FAR records, before the first font, fixed file, SOD, or SDC<br />

record.<br />

SRM - Set Resolution Multiplier<br />

PLR - Page Length Requirement<br />

RCR - Range Check Record<br />

After the previously described records, the fonts must be defined. There<br />

can be up to 255 font definition records (FDRs, FDMs, SFDs, or SFMs).<br />

With one exception, category I fonts and category II fonts (both super and<br />

regular) can be defined in any order. The exception is that a category I<br />

super font cannot be immediately followed by a category I regular font.<br />

Reference Guide 5 - 1


Chapter 5. Record Sequence<br />

Single-RIP System<br />

5 - 2 IJPDS Formats<br />

The following rules apply to the sequence of font records:<br />

After an FDR, any record other than a CDR ends the subfont or<br />

regular font.<br />

An SFD may optionally be followed by one CDR, defining a character<br />

that becomes the default for any undefined character in the super<br />

font.<br />

After an SFD, any record other than CDR or FDR ends the super font.<br />

After an FDM, any record other than a CDM or CCD ends the regular<br />

font.<br />

After an SFM, any record other than a CDM or CCD ends the super<br />

font.<br />

Super fonts defined with SFD may be followed by regular fonts<br />

defined with FDM. FDRs following the SFD (and default CDR, if<br />

present) are subfonts of the super font.<br />

A CDM or CCD may follow an FDM, an SFM, or another CDM or<br />

CCD.<br />

A CDR may follow an FDR, an SFD, or another CDR.<br />

RIP, MSG, and NOP records which may occur do not affect the<br />

sequence of the font records.<br />

When continuation records for a character are used, the first CDR, CDM,<br />

or CCD for a character and its continuation records must be in the proper<br />

sequence in the job file. Apart from these restrictions and the default/null<br />

restrictions described in the CDR, CDM, and CCD descriptions in Chapter<br />

4, characters in a font can be defined in any order.<br />

If required, fixed file records must occur after the fonts have been defined.<br />

Fixed files are optional and up to 256 fixed files can be present in a job<br />

file. A fixed file is started with a load fixed file record (LFF). The records<br />

that are permitted in fixed files are shown in Figure 5.1. A fixed file is<br />

ended with another LFF record or an end of fixed files (EFF) record.<br />

The variable data follows the EFF record. The first record of the variable<br />

data must be a start of document (SOD), start of document and cue<br />

(SDC), or message (MSG) record. The records that are permitted in the<br />

variable data section of the job file are shown in Figure 5.1.<br />

A document may not be split across tape volumes. The end of the job file<br />

is signaled by an end of job (EOJ) record.


Figure 5.1 Single RIP-record sequence<br />

Chapter 5. Record Sequence<br />

Single-RIP System<br />

Reference Guide 5 - 3


Chapter 5. Record Sequence<br />

Multi-RIP System<br />

Multi-RIP System<br />

5 - 4 IJPDS Formats<br />

For a multi-RIP system, the JC2 record must be in a block by itself. All<br />

records following the JC2 record are RIP specific. That is, each record is<br />

assigned to a specific RIP. Other than this requirement, all of the record<br />

sequence rules described for a single-RIP system apply. Just remember<br />

that for a multi-RIP system, the record sequences must be repeated for<br />

each RIP.<br />

Each block on tape or disk can contain data for only one RIP. It is required<br />

that each block start with a RIP record to identify the target RIP even if the<br />

RIP assignment does not change from one block to another.<br />

All fonts for one RIP must be defined before switching to another RIP. All<br />

fixed files for one RIP must be defined before switching to another RIP.<br />

The fonts and fixed files for all RIPs must be loaded before any variable<br />

data for any of the RIPs.<br />

All RIPs for a given document must be on the same tape.<br />

Figures 5.2 and 5.3 show two versions of how the data in the job file can<br />

be divided between RIPs in a system with two RIPs. To keep the<br />

diagrams simple, some optional records like SRM, RCR, or PLR and<br />

category II font records are not included in the illustrations.<br />

In Figure 5.2, the data segments (printhead and font requirements, font<br />

definitions, and fixed file definitions) are separated and repeated for each<br />

RIP. In Figure 5.3, these data segments are joined and then repeated for<br />

each RIP. The method used may depend on the quantity of data such as<br />

the number of fonts and fixed files.<br />

For variable data, the decision as to when to change RIP assignments<br />

with a RIP record depends on the relative output rates of the different<br />

RIPs. Factors such as the distance between printheads for each RIP and<br />

the amount of data each RIP prints must be considered when preparing<br />

the job file. The job file should be prepared so that a situation where the<br />

data station buffers are full with data for one RIP while another RIP needs<br />

data does not occur. Although the requirements vary significantly from job<br />

to job, a general guideline is to format the file so that each group of 20<br />

consecutive blocks contains at least one block for each RIP.<br />

The end of job record (EOJ) must come after the last document for each<br />

RIP.


Figure 5.2 Multiple RIP sequence 1<br />

JC2<br />

RIP<br />

PHR<br />

FAR<br />

RIP<br />

PHR<br />

FAR<br />

RIP<br />

FDR<br />

CDR<br />

RIP<br />

FDR<br />

CDR<br />

RIP<br />

LFF<br />

EFF<br />

RIP<br />

LFF<br />

EFF<br />

RIP<br />

SOD or SDC<br />

RIP<br />

SOD or SDC<br />

EOJ<br />

Figure 5.3 Multiple RIP sequence 2<br />

JC2<br />

RIP<br />

PHR<br />

FAR<br />

FDR<br />

CDR<br />

LFF<br />

EFF<br />

RIP<br />

PHR<br />

FAR<br />

FDR<br />

CDR<br />

LFF<br />

EFF<br />

RIP<br />

SOD or SDC<br />

RIP<br />

SOD or SDC<br />

EOJ<br />

Chapter 5. Record Sequence<br />

Multi-RIP System<br />

Reference Guide 5 - 5


Chapter 5. Record Sequence<br />

Separate Files<br />

Separate Files<br />

5 - 6 IJPDS Formats<br />

The fonts, fixed files, and data for a job can placed in separate files to be<br />

read separately by the data station. Presently, only the KODAK VERSAMARK<br />

DS3000 series printing systems support the concept of separate files.<br />

The possible variations for separate files are provided in the following list<br />

along with the required record sequences for each type of file.<br />

Fonts Only<br />

JC2, FAR (optional), font records, EOJ.<br />

Fixed Files Only<br />

JC2, LFF, fixed file records, EFF, EOJ.<br />

Fonts and Fixed Files<br />

JC2, FAR (optional), font records, LFF, fixed file records, EFF, EOJ.<br />

Data Only<br />

JC2, PHR, FAR, PLR, SDC/SOD, document records, EOJ.<br />

Fixed Files and Data<br />

JC2, PHR, PLR, FAR, LFF, fixed file records, EFF, SDC/SOD,<br />

document records, EOJ.<br />

Fonts and Data<br />

JC2, PHR, PLR, FAR (optional), font records, SDC/SOD, document<br />

records, EOJ.<br />

The “Data Only” and “Fixed Files and Data” files contain a FAR record<br />

that specifies the fonts that must be loaded for the job. It should be noted<br />

that there is no check available to determine if the correct fixed files are<br />

loaded.


Appendix A. Record References<br />

The records in IJPDS job files are cross-referenced in this appendix so<br />

that if you have the record name or control code you can quickly find other<br />

information about the record.<br />

Table A.1 lists all IJPDS records by acronym in alphabetic order. Table<br />

A.2 lists all IJPDS records by control code in numeric order.<br />

Both tables provide a brief description of the purpose of the record and a<br />

page reference to the detailed description in Chapter 4.<br />

Reference Guide A - 1


Appendix A. Record References<br />

Table A.1 Records by acronym<br />

Record<br />

Acronym<br />

Control<br />

Code<br />

A - 2 IJPDS Formats<br />

Name Page Description<br />

BOX 27 Fill a Rectangular Area 4-51 Fills a specified area with a black or white fill pattern.<br />

CBM 3E Compressed Bitmap 4-53 Contains compressed bitmap to be printed.<br />

Interchangeable with the IBM.<br />

CCD 3D Compressed Character<br />

Definition<br />

CDM 30 Character Definition with<br />

Metrics<br />

4-18 Defines each character in a category I font. Contains a<br />

compressed bitmap pattern for the character.<br />

Interchangeable with the CDM.<br />

4-15 Defines each character in a category II font. Contains a<br />

bitmap pattern for the character. Interchangeable with the<br />

CCD.<br />

CDR 14 Character Definition Record 4-23 Defines each character in a category I font. Contains a<br />

bitmap pattern for the character.<br />

CSR 37 Cursor Restore 4-37 Restores the cursor to a position saved by the CSS<br />

record.<br />

CSS 36 Cursor Save 4-36 Saves the current absolute cursor position for later<br />

retrieval by the CSR record.<br />

EFF 02 End Fixed Files 4-26 Indicates end of fixed files.<br />

EOJ 09 End of Job 4-62 Indicates end of job. Can contain a message for display.<br />

FAR 25 Font Assignment Record 4-10 List fonts needed for the job and assigns font numbers to<br />

font names.<br />

FDR 13 Font Definition Record 4-22 Contains general information about a category I font.<br />

Followed by CDRs.<br />

FDM 2E Font Definition with Metrics 4-14 Contains general information about a category II font.<br />

Followed by CDMs and/or CCDs.<br />

GFF 0F Go to Fixed File 4-45 Identifies records in current fixed file to be executed.<br />

IBM 29 Image Bitmap 4-52 Contains bitmap to be printed. Interchangeable with the<br />

CBM.<br />

IML 0C Image a Line 4-41 Contains one line of print. Uses last identified font and<br />

ILS.<br />

JC2 24 Job Control Record 2 4-5 Used for all KODAK VERSAMARK printing systems except<br />

DS2900. Must be the first record in a job file.<br />

JCR 00 Job Control Record 4-63 Used only for KODAK VERSAMARK DS2900 printing<br />

systems. Must be the first record in a job file.<br />

LFF 01 Load Fixed Files 4-25 Indicates that a fixed file follows this record.<br />

MPL 35 Multi-Part Line Mode 4-43 Allows the printing of more than one SFI, IML, SIL, or UIL<br />

record on a line.<br />

MSG 0A Message 4-59 Contains a message for display.<br />

NOP 22 No Operation 4-61 Used to remark out a record.<br />

PHR 26 Printhead Requirements<br />

Record<br />

4-8 Specifies the number and type of printheads required for<br />

the job.<br />

PLR 3B Page Length Requirement 4-12 Specifies the page length requirement for the current RIP.<br />

RCR 32 Range Check Record 4-27 Sets boundary limits for the four sides of the page buffer.<br />

RFF 0E Reset Fixed File 4-46 Identifies fixed file and records to be executed after<br />

pointer is first reset to start of file.<br />

RIP 23 Select RIP 4-7 Specifies which RIP is to receive subsequent data.<br />

RSRC 3F Remote Resource 4-54 Directs the data system to read a sequence of IJPDS<br />

records from a remote resource file.


Table A.1 Records by acronym (Continued)<br />

Record<br />

Acronym<br />

SDC 05<br />

11<br />

Appendix A. Record References<br />

Start of Document and Cue 4-28 Starts new document after waiting for a cue. Code 11 is<br />

for security version.<br />

SFD 2A Super Font Definition 4-17 Contains general information about a category I super<br />

font. Followed by FDRs and CDRs.<br />

SFF 0D Set Fixed File 4-44 Identifies fixed file and records to be executed.<br />

SFI 0B Set Font and Image 4-40 Identifies the font and ILS and contains characters for<br />

one line of print.<br />

SFM 2F Super Font with Metrics 4-13 Contains general information about a category II super<br />

font. Followed by FDMs, CDMs, and/or CCDs.<br />

SFS 31 Set Font and Spacing 4-38 Sets font or super font and spacing for following records.<br />

SFT 2C Set Font 4-39 Sets font or super font and spacing for following records.<br />

SIL 2B Two-Byte Image Line 4-42 Contains double-byte text. Using current super font,<br />

specifies subfonts and characters.<br />

SLF 28 Set Logical Function 4-49 Defines how new pixels will combine with old pixels.<br />

SOD 04<br />

10<br />

Control<br />

Code<br />

Name Page Description<br />

Start of Document 4-30 Starts a new document without waiting for cue. Code 10<br />

is for security version.<br />

Note: The SOD record cannot be used with the CS200<br />

and CS220 system controllers.<br />

SOP 20 Start of Page 4-56 Starts a new page. Sets the X and Y starting point to the<br />

top of the page (0,0).<br />

SOR 34 Set Origin 4-34 Sets the origin to the current cursor position.<br />

SPC 07 Space 4-48 Specifies dot rows of vertical space to be inserted.<br />

SPL 3A Set Page Length 4-55 Sets current page length. Can be shorter or longer than<br />

actual image data.<br />

SPO 21 Set Position 4-32 Sets the X and Y position for following data (16-bit<br />

position fields).<br />

SPX 3C Set Position Extended 4-33 Sets the X and Y position for following data (32-bit<br />

position fields).<br />

SRM 39 Set Resolution Multiplier 4-11 Sets the logical resolution of the current RIP. Allows data<br />

prep to use higher resolution for distances.<br />

SRP 38 Set Relative Position 4-35 Sets a new cursor position relative to the current cursor<br />

position.<br />

STP 08 Stop 4-58 Stops printing. Can contain a message for logging.<br />

UIL 33 Unformatted Image Line 4-47 Permits printing of a portion of a stored image string.<br />

VCC 2D Verify Character Checksum 4-60 Compares checksum in this record against current page<br />

checksum calculated by system.<br />

WFC 06 Wait for Cue 4-57 Causes system to wait for next cue and start a new page.<br />

Note: The WFC record cannot be used with the CS200<br />

and CS220 system controllers.<br />

Reference Guide A - 3


Appendix A. Record References<br />

Table A.2 Records by control code<br />

Control<br />

Code<br />

Record<br />

Acronym<br />

A - 4 IJPDS Formats<br />

Name Page Description<br />

00 JCR Job Control Record 4-63 Used only for KODAK VERSAMARK DS2900 printing<br />

systems. Must be the first record in a job file.<br />

01 LFF Load Fixed Files 4-25 Indicates that a fixed file follows this record.<br />

02 EFF End Fixed Files 4-26 Indicates end of fixed files.<br />

04 SOD Start of Document 4-30 Starts new document without waiting for cue. Code 04 is<br />

for non-security version.<br />

Note: The SOD record cannot be used with the CS200<br />

and CS220 system controllers.<br />

05 SDC Start of Document and Cue 4-28 Starts new document after waiting for a cue. Code 05 is<br />

for non-security version.<br />

06 WFC Wait for Cue 4-57 Causes system to wait for next cue and start a new page.<br />

Note: The WFC record cannot be used with the CS200<br />

and CS220 system controllers.<br />

07 SPC Space 4-48 Specifies dot rows of vertical space to be inserted.<br />

08 STP Stop 4-58 Stops printing. Can contain a message for logging.<br />

09 EOJ End of Job 4-62 Indicates end of job. Can contain a message for display.<br />

0A MSG Message 4-59 Contains a message for display.<br />

0B SFI Set Font and Image 4-40 Identifies the font and ILS and contains characters for<br />

one line of print.<br />

0C IML Image a Line 4-41 Contains one line of print. Uses last identified font and<br />

ILS.<br />

0D SFF Set Fixed File 4-44 Identifies fixed file and records to be executed.<br />

0E RFF Reset Fixed File 4-46 Identifies fixed file and records to be executed after<br />

pointer is first reset to start of file.<br />

0F GFF Go to Fixed File 4-45 Identifies records in current fixed file to be executed.<br />

10 SOD Start of Document 4-30 Starts new document without waiting for cue. Code 10 is<br />

for security version.<br />

Note: The SOD record cannot be used with the CS200<br />

and CS220 system controllers.<br />

11 SDC Start of Document and Cue 4-28 Starts a new document after waiting for a cue. Code 11 is<br />

for security version.<br />

13 FDR Font Definition Record 4-22 Contains general information about a category I font.<br />

Followed by CDRs.<br />

14 CDR Character Definition Record 4-23 Defines each character in a category I font. Contains a<br />

bitmap pattern for the character.<br />

20 SOP Start of Page 4-56 Starts a new page. Sets the X and Y starting point to the<br />

top of the page (0,0).<br />

21 SPO Set Position 4-32 Sets the X and Y position for following data (16-bit<br />

position fields).<br />

22 NOP No Operation 4-61 Used to remark out a record.<br />

23 RIP Select RIP 4-7 Specifies which RIP is to receive subsequent data.<br />

24 JC2 Job Control Record 2 4-5 Used for all KODAK VERSAMARK printing systems except<br />

DS2900. Must be the first record in a job file.<br />

25 FAR Font Assignment Record 4-10 List fonts needed for the job and assigns font numbers to<br />

font names.


Table A.2 Records by control code (Continued)<br />

Control<br />

Code<br />

Record<br />

Acronym<br />

Name Page Description<br />

26 PHR Printhead Requirements<br />

Record<br />

Appendix A. Record References<br />

4-8 Specifies the number and type of printheads required for<br />

the job.<br />

27 BOX Fill a Rectangular Area 4-51 Fills a specified area with a black or white fill pattern.<br />

28 SLF Set Logical Function 4-49 Defines how new pixels will combine with old pixels.<br />

29 IBM Image Bitmap 4-52 Contains bitmap to be printed. Interchangeable with the<br />

CBM.<br />

2A SFD Super Font Definition 4-17 Contains general information about a category I super<br />

font. Followed by FDRs and CDRs.<br />

2B SIL Two-Byte Image Line 4-42 Contains double-byte text. Using current super font,<br />

specifies subfonts and characters.<br />

2C SFT Set Font 4-39 Sets font or super font for following records.<br />

2D VCC Verify Character Checksum 4-60 Compares checksum in this record against current page<br />

checksum calculated by system.<br />

2E FDM Font Definition with Metrics 4-14 Contains general information about a category II font.<br />

Followed by CDMs and/or CCDs.<br />

2F SFM Super Font with Metrics 4-13 Contains general information about a category II super<br />

font. Followed by FDMs, CDMs, and/or CCDs.<br />

30 CDM Character Definition with 4-15 Defines each character in a category II font. Contains a<br />

Metrics<br />

bitmap pattern for the character. Interchangeable with the<br />

CCD.<br />

31 SFS Set Font and Spacing 4-38 Sets font or super font and spacing for following records.<br />

32 RCR Range Check Record 4-27 Sets boundary limits for the four sides of the page buffer.<br />

33 UIL Unformatted Image Line 4-47 Permits printing of a portion of a stored image string.<br />

34 SOR Set Origin 4-34 Sets the origin to the current cursor position.<br />

35 MPL Multi-Part Line Mode 4-43 Allows the printing of more than one SFI, IML, SIL, or UIL<br />

record on a line.<br />

36 CSS Cursor Save 4-36 Saves the current absolute cursor position for later<br />

retrieval by the CSR record.<br />

37 CSR Cursor Restore 4-37 Restores the cursor to a position saved by the CSS<br />

record.<br />

38 SRP Set Relative Position 4-35 Sets a new cursor position relative to the current cursor<br />

position.<br />

39 SRM Set Resolution Multiplier 4-11 Sets the logical resolution of the current RIP. Allows data<br />

prep to use higher resolution for distance parameters.<br />

3A SPL Set Page Length 4-55 Sets current page length. Can be shorter or longer than<br />

actual image data for the page.<br />

3B PLR Page Length Requirement 4-12 Specifies the page length requirement for the current RIP.<br />

3C SPX Set Position Extended 4-33 Sets the X and Y position for following data (32-bit<br />

position fields).<br />

3D CCD Compressed Character 4-18 Defines each character in a category I font. Contains a<br />

Definition<br />

compressed bitmap pattern for the character.<br />

Interchangeable with the CDM.<br />

3E CBM Compressed Bitmap 4-53 Contains compressed bitmap to be printed.<br />

Interchangeable with the IBM.<br />

3F RSRC Remote Resource 4-54 Directs the data system to read a sequence of IJPDS<br />

records from a remote resource file.<br />

Reference Guide A - 5


Appendix B. Sample Font Coding<br />

This chapter provides an example of font coding for both category I fonts<br />

and category II fonts. The examples show the coding for the font record<br />

and one character record for each font category. Also, a diagram of each<br />

character bitmap is provided.<br />

Reference Guide B - 1


Appendix B. Sample Font Coding<br />

Category I Font<br />

Category I Font<br />

B - 2 IJPDS Formats<br />

The following sample coding of the beginning of a category I font provides<br />

an example of how the records and fields in this font type are used. The<br />

example consists of the FDR and the first CDR.<br />

The sample coding is followed by a diagram of the bitmap described by<br />

the font file records for the first character. This allows you to see the result<br />

of field coding in the FDR and CDR.<br />

The coding is presented in groups of 8 rows of 16 bytes.<br />

00 12 01 13 00 21 00 00 - 00 00 C4 D6 D5 E2 C6 D6<br />

D5 E3 00 8C 02 14 61 00 - 02 04 00 00 00 00 00 00<br />

00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00<br />

00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00<br />

00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 3F C0<br />

00 00 3F E0 00 00 00 70 - 00 00 00 30 00 00 00 30<br />

00 00 00 30 00 00 3F B0 - 00 00 7F F0 00 00 E0 70<br />

00 00 C0 30 00 00 C0 30 - 00 00 E0 30 00 00 7F FC<br />

00 00 3F FC 00 00 00 00 - 00 00 00 00 00 00 00 00<br />

00 00 00 00 00 00 00 00 - 00 00 00 00 00 00<br />

This coding along with the following diagram show that the font specifies<br />

an ILS of 0 (hex 00 in position 8 in the FDR. Also, the character cell for<br />

the first character is defined by a row count of 33 (hex 00 21 in positions<br />

5-6 in the FDR), a segment count of 2 (hex 02 in position 7 of the CDR),<br />

and a final segment width of 4 (hex 04 in position 8 of the CDR).


Appendix B. Sample Font Coding<br />

Category I Font<br />

As shown in the diagram, the last 12 bits of each row are not used<br />

because of the final segment width of 4, and therefore are set to binary<br />

zeroes.<br />

Reference Guide B - 3


Appendix B. Sample Font Coding<br />

Category II Font<br />

Category II Font<br />

B - 4 IJPDS Formats<br />

The following sample coding of the beginning of a category II font<br />

provides an example of how the records and fields in this font type are<br />

used. The example consists of the FDM and the first CDM.<br />

The sample coding is followed by a diagram of the bitmap described by<br />

the font file records for the first character. This allows you to see the result<br />

of field coding in the FDM and CDM.<br />

The coding is presented in groups of 8 rows of 16 bytes.<br />

00 16 04 2E 00 00 00 00 - 00 00 00 28 00 00 C4 D6<br />

D5 E2 C6 D6 D5 E3 00 68 - 46 30 00 81 00 00 00 13<br />

00 13 00 00 00 03 FF FF - FF EE 00 00 00 18 00 00<br />

00 00 07 F0 00 00 1F FC - 00 00 3F FE 00 00 3C 1E<br />

00 00 10 0F 00 00 00 07 - 00 00 00 07 00 00 07 F7<br />

00 00 1F FF 00 00 3F FF - 00 00 7C 07 00 00 F0 07<br />

00 00 E0 07 00 00 E0 07 - 00 00 E0 1F 00 00 F8 7F<br />

00 00 7F FF E0 00 3F E7 - E0 00 0F 83 E0 00<br />

This coding shows that the font specifies an X escapement of 0 (hex 00<br />

00 00 00 in positions 5-8 in the FDM) and a Y escapement of 40 (hex 00<br />

00 00 28 in positions 9-12 in the FDM). Also, the coding shows that the<br />

character has the following parameters.<br />

Parameter Code Byte Position in CDM<br />

Width = 19 00 13 9-10<br />

Height = 19 00 13 11-12<br />

X Offset = 3 00 00 00 03 13-16<br />

Y Offset = -18 FF FF FF EE 17-20<br />

X Escapement = 24 00 00 00 18 21-24<br />

Y Escapement = 0 00 00 00 00 25-28<br />

The character bounding box is placed in the page buffer relative to the<br />

current cursor position as shown in the diagram. The upper left corner of<br />

the bounding box is positioned by adding the X and Y character offsets to<br />

the X and Y coordinates of the current cursor position.<br />

In this example, the Y offset is a negative number and moves the<br />

character bounding box above the cursor position, making this a baseline<br />

font. The X escapement of 24 positions the cursor for the next character.<br />

The X offset of 3 provides 3 dot columns of white space before the<br />

character and the X escapement of 24 provides 2 dot columns of white<br />

space after the character. The offsets and escapements of the characters<br />

printed before and after this character could cause them to overlap some<br />

of this white space or even some of the space occupied by the bounding<br />

box of this character.


Y offset = -18<br />

Cursor<br />

position<br />

Appendix B. Sample Font Coding<br />

Category II Font<br />

Because the character width is 19, but each row of the dot pattern must<br />

be a multiple of 16 bits, 13 zero bits are added to the end of each row,<br />

making each row 32 bits (4 bytes).<br />

Cursor position<br />

for next character<br />

X offset = 3<br />

X escapement for character = 24<br />

Reference Guide B - 5


Appendix C. Printer Support for<br />

IJPDS<br />

Different KODAK VERSAMARK printers have different levels of support for<br />

IJPDS. This appendix describes how each KODAK VERSAMARK printer<br />

supports the records in the IJPDS job file.<br />

All records presently available for use in IJPDS are listed in Table C.1.<br />

This table shows the support for these records provided by the CD3000<br />

data station used in the DS3000 series printing systems, the CD100,<br />

CD120, and CD130 data stations, and the data system software in the<br />

DP5120 and DP5240 printers.<br />

The version number of the software that supports each record is provided<br />

for each data station or printer data system. If the record has had a new<br />

feature added, the software version that supports the original record is<br />

given along with the first version that supports the new feature.<br />

For example, consider the entry under the CD3000 data station for the<br />

BOX record in Table C.1.<br />

V2.03<br />

V2.13 - Supports clipping.<br />

This entry indicates that 2.03 is the first version of the CD3000 data<br />

station software that supports the BOX record and that 2.13 is the first<br />

version of the software that supports clipping of the box image.<br />

Note: There is one overall restriction for data stations and data systems being<br />

controlled by a system controller running MPC system software: the SOD,<br />

WFC, STP, and MSG records are not supported. Although the individual<br />

data stations and data systems may support these records, they may not<br />

be used with the MPC system software.<br />

Reference Guide C - 1


Appendix C. Printer Support for IJPDS<br />

Table C.1 Printer support for IJPDS<br />

Record CD3000 data station<br />

BOX V2.03<br />

V2.13 - Supports clipping.<br />

CBM V2.03<br />

V2.13 - Supports clipping in<br />

the Y dimension (top and<br />

bottom of the buffer).<br />

C - 2 IJPDS Formats<br />

CD100/CD120/CD130<br />

data station<br />

V1.11<br />

V1.13 - Supports clipping.<br />

All<br />

V1.13 - Supports clipping in the<br />

Y dimension (top and bottom of<br />

the buffer).<br />

V1.14 - Supports clipping in the<br />

X and Y dimensions.<br />

DP5120/DP5240 printer data station<br />

V1.05<br />

V1.05 - Supports square bitmaps (bitmaps<br />

that are the same height and width).<br />

V2.18 - Supports Image Bitmaps with heights<br />

greater than 1 inch.<br />

CCD V2.13 is the current version,<br />

which does not support the<br />

CCD.<br />

V1.16 No support. Invalid record error generated.<br />

CDM V2.13 V1.13 No support. Invalid record error generated.<br />

CDR All All V1.05<br />

CSR V2.13 V1.13 No support. Invalid record error generated.<br />

CSS V2.13 V1.13 No support. Invalid record error generated.<br />

EFF All All V1.05<br />

EOJ All All V1.05 - The message field is ignored.<br />

FAR V2.03 All V1.05 - Only Default Font field is used.<br />

FDR All All V1.05 - The Font Name field is ignored.<br />

FDM V2.13 V1.13 No support. Invalid record error generated.<br />

GFF All All V1.05<br />

IBM V2.03<br />

All<br />

V1.05 - Supports square bitmaps (bitmaps<br />

V2.13 - Supports clipping in V1.13 - Supports clipping in the that are the same height and width).<br />

the Y dimension (top and Y dimension (top and bottom of V2.18 - Supports Image Bitmaps with heights<br />

bottom of the buffer). the buffer).<br />

V1.14 - Supports clipping in the<br />

X and Y dimensions.<br />

greater than 1 inch.<br />

IML All<br />

V2.13 - Supports 2-byte<br />

data.<br />

All<br />

V1.13 - Supports 2-byte data.<br />

Supports clipping.<br />

JC2 V2.03 All V1.05<br />

The following fields are ignored: RIP<br />

Configuration, Stitched RP Configuration,<br />

Security Code, Job Information, Data Prep<br />

Date, Data Prep Time, and Job Identifier.<br />

JCR All All No support. Invalid record error generated.<br />

LFF All All V1.05<br />

MPL V2.13 V1.13 No support. Invalid record error generated.<br />

MSG All All No support. Ignored.<br />

NOP V2.03 All V1.05<br />

PHR V2.03 All V1.05<br />

The following fields are ignored: Printhead<br />

Position, Number of Printheads, Number of<br />

Jets, and Number of Drops.<br />

V1.05


Table C.1 Printer support for IJPDS (Continued)<br />

Record CD3000 data station<br />

PLR V2.14<br />

The data station's internal<br />

buffer size cannot be<br />

adjusted to meet the<br />

requirements defined in this<br />

record.<br />

V1.14<br />

The CD100's internal buffer<br />

size cannot be adjusted to<br />

meet the requirements defined<br />

in this record.<br />

Appendix C. Printer Support for IJPDS<br />

No support. Invalid record error generated.<br />

RCR V2.13 V1.13 No support. Invalid record error generated.<br />

RFF All All V1.05<br />

RIP V2.03 All No support. Ignored.<br />

RSRC No support. CD120 and CD130 are<br />

supported. CD100 is not<br />

supported.<br />

No support for narrow format products.<br />

SDC All All V1.05<br />

The following fields are ignored: Vertical<br />

Space, User Output Signals, and Job<br />

Identifier.<br />

SFD V2.04 All V1.05<br />

Font Name field is ignored.<br />

SFF All All V1.05<br />

SFI All<br />

2.13 - Supports 2-byte data.<br />

All<br />

V1.13 - Supports 2-byte data.<br />

Supports clipping.<br />

SFM V2.13 V1.13 No support. Invalid record error generated.<br />

SFS V2.13<br />

The X and Y character<br />

spacing fields are ignored.<br />

CD100/CD120/CD130<br />

data station<br />

V1.13<br />

The X and Y character spacing<br />

fields are ignored.<br />

V1.14<br />

The X and Y character spacing<br />

fields are supported.<br />

V1.05<br />

SFT V2.04 All V1.05<br />

SIL V2.04 All<br />

V1.13 - Supports clipping.<br />

V1.05<br />

SLF V2.03 V1.11 - Only OR supported for<br />

IBM.<br />

V1.14 - Supports all logical<br />

functions for IBM.<br />

V1.05<br />

DP5120/DP5240 printer data station<br />

No support. Invalid record error generated.<br />

SOD All All V1.05<br />

The following fields are ignored: Vertical<br />

Space, User Output Signals, and Job<br />

Identifier.<br />

SOP V2.03 All V1.05<br />

SOR V2.13 V1.13 No support. Invalid record error generated.<br />

SPC All All V1.05<br />

SPL V2.13 V1.13 No support. Invalid record error generated.<br />

SPO V2.03 All V1.05<br />

SPX V2.14 V1.14 No support. Invalid record error generated.<br />

SRM No support. No support. No support. Invalid record error generated.<br />

SRP V2.13 V1.13 No support. Invalid record error generated.<br />

Reference Guide C - 3


Appendix C. Printer Support for IJPDS<br />

Table C.1 Printer support for IJPDS (Continued)<br />

Record CD3000 data station<br />

STP All All V1.05<br />

The Message field is ignored<br />

UIL V2.13 V1.13 No support. Invalid record error generated.<br />

VCC V2.08 V1.08<br />

V1.14 - Supports VCC with<br />

stitched RIPs.<br />

No support. Ignored.<br />

WFC All All No support.<br />

C - 4 IJPDS Formats<br />

CD100/CD120/CD130<br />

data station<br />

DP5120/DP5240 printer data station


Appendix D. Indexing and Multi-File<br />

IJPDS<br />

The following index and multi-file discussion applies to CS220 system<br />

controllers. For the older DS3500/DS3600 printing systems the rules are<br />

slightly different. That information is documented elsewhere.<br />

Reference Guide D - 1


Appendix D. Indexing and Multi-File IJPDS<br />

Basic Index Files (for Single-File IJPDS Jobs)<br />

Basic Index Files (for Single-File IJPDS Jobs)<br />

D - 2 IJPDS Formats<br />

For GEORGE.IJP the index file is GEORGE.NDX in the same directory.<br />

An index file is a file of two or more 32-bit words which are file offsets into<br />

the IJPDS file. Each word is the offset to the block containing the<br />

document being indexed (not the offset of the SDC). Words are 32-bit (it<br />

does not matter if they are signed or unsigned; the maximum value is<br />

2GB, not 4GB) integers in Intel byte-order. (The OS/2-hosted Pentium<br />

controller will use the values directly in fseek() operations.)<br />

The first word is the offset to the block containing the earliest SDC for<br />

Document 1 (whichever RIP that may be); this is always present.<br />

The last word is the offset to the block containing the earliest SDC for the<br />

last document (whichever RIP that may be); this is always present.<br />

If the IJPDS file has more than 99 documents, then additional words are<br />

in the index file (between the first word and the last word) with offsets to<br />

the blocks containing the earliest SDCs for Documents 100, 200, 300,<br />

400, etc. If the file ends with a document number that is a multiple of 100,<br />

then the next-to-last index entry will be the pointer for the last multiple-of-<br />

100 document, and the last entry will be, as always, the pointer to the last<br />

document (even though in this case the last two entries are the same).<br />

Here are some example index files:<br />

IJPDS file Index file<br />

87 documents 2 entries<br />

125 documents 3 entries<br />

800 documents 10 entries<br />

801 documents 10 entries<br />

Entries<br />

for<br />

document<br />

1<br />

87<br />

1<br />

100<br />

125<br />

1<br />

100<br />

200<br />

300<br />

400<br />

500<br />

600<br />

700<br />

800<br />

800<br />

1<br />

100<br />

200<br />

300<br />

400<br />

500<br />

600<br />

700<br />

800<br />

801


Multiple-File (Very Large) Jobs<br />

File Structure<br />

Appendix D. Indexing and Multi-File IJPDS<br />

Multiple-File (Very Large) Jobs<br />

Multi-file jobs were designed to break the 2-gigabyte barrier of maximum<br />

file size imposed by several factors in the implementation of the printing<br />

system (and by NFS when that is the networking protocol). Multi-file jobs<br />

may not change to the second file until after documents have begun to<br />

appear in the data stream. You may not break the job until after all fonts<br />

and fixed files have appeared.<br />

For a duplex process color job (8 RIPs: CMKY front and CMKY back) this<br />

allows a total of just under 2GB of total fonts in the job, or an average of<br />

128MB per RIP (even though the RIP allows up to 256MB).<br />

Break the job on a document boundary. That is to say, as you are<br />

approaching 2GB (or whatever size at which you want to break) finish up<br />

to the same document number for all RIPs, and then break. (No<br />

document should exist partly on one file and partly on the next file.)<br />

Stop at the end of a 4K block. Begin the next file with what would have<br />

been the next 4K block if you were not splitting files. The next IJPDS<br />

record must have the next cyclic count value after the last record in the<br />

previous file. Do not repeat the JC2 in the subsequent files; do not end<br />

the files before the last file with EOJ (End-Of-Job) records. The structure<br />

should be such that if all the multiple files were concatenated together,<br />

they would look like one (albeit too large) correctly-composed IJPDS job.<br />

The system will keep looking for the next file any time it hits end-of-file<br />

without an IJPDS EOJ record.<br />

File Naming<br />

If a job is named “ralph” then the multiple files are named ralph.a01,<br />

ralph.a02, ralph.a03, etc. The filename extensions do not limit you to 99<br />

files. It goes like this: .a01, .a02, .a03... .a98, .a99, .b00, .b01, .b02 ...<br />

.b98, .b99, .c00, .c01, .c02 ... etc. Note the first file is .a01 but the bxx,<br />

cxx, dxx, etc. files run from 00 through 99 (not 01 through 99).<br />

Reference Guide D - 3


Appendix D. Indexing and Multi-File IJPDS<br />

Multiple-File Job index Files<br />

Multiple-File Job index Files<br />

D - 4 IJPDS Formats<br />

Index File Structure<br />

The first index file is the same as a normal .ndx file in a single file job:<br />

pointers to blocks containing 1st document, every multiple-of-100<br />

document, and last document, with the last-document pointer being a<br />

duplicate of the last “every-100 pointer” in the case where the last<br />

document number is a multiple of 100. In the case of the 2nd through last<br />

index files of a multi-file job, the pointers are first, every multiple-of-100<br />

and last (with last duplicating next-to-last if last is a multiple of 100, same<br />

as the first file) but in the special case of the 2nd or subsequent files<br />

starting with a multiple of 100 the index file does not have an extra first<br />

entry as you might suspect, but is in fact made with just the one first entry.<br />

Therefore your routines making index files do not need to treat 2nd or<br />

subsequent files beginning with a multiple of 100 as a special case.<br />

Simply index the first document, every multiple-of-100 document after the<br />

first, and then the last document (even if the last is a 100-multiple and<br />

was indexed by the next-to-last index pointer).<br />

Index File Naming and Location<br />

Old Scheme (Prior to MPC4RUN.EXE Version 1.56)<br />

If a job is named “ralph” and the multiple files are named ralph.a01,<br />

ralph.a02, ralph.a03, etc., the index files are named a01.ndx, a02.ndx,<br />

a03.ndx, etc. and should be placed in a sub-directory named “ralph” in the<br />

system's spool directory (usually on the E: drive on the system). This is<br />

regardless of the location of the IJPDS files.<br />

New Scheme (MPC4RUN.EXE Version 1.56 and Newer)<br />

If a job is named “ralph” and the multiple files are named ralph.a01,<br />

ralph.a02, ralph.a03, etc., the index files are named ralphA01.ndx,<br />

ralphA02.ndx, ralphA03.ndx, etc. and should be placed in the same<br />

location as the IJPDS files unless otherwise specified by the optional<br />

"/IndexPath=" command line parameter for the controller. The index<br />

directory must support long filenames for this scheme (unless the job<br />

filenames are 5 characters or less). The E: drive on the CS220 is<br />

formatted as an HPFS partition and supports long filenames. The D: drive<br />

is formatted as FAT16 and does not support long filenames. Note that we<br />

always recommend that jobs not be placed on D: as that is the OS/2<br />

system drive, is only 500MB in capacity, and is mostly filled with OS/2<br />

system files.


Monochrome RIP Data Structure<br />

CMYK RIP Data Structure<br />

Appendix E. IJQ File Format<br />

The IJQ file is a binary RIP setup file, which is used to set up the RIP<br />

positions, colors, and web sides in the IJPDS proofer software. The IJQ<br />

file must be stored in the same folder as its corresponding IJP file. In the<br />

IJQ file, there are two kinds of RIPs: Monochrome (Spot Color) RIP and<br />

CMYK RIP (which has four spot color RIPs).<br />

An IJQ file contains the RIP count followed by an array of RIP structures<br />

as shown below.<br />

1. BOOL isCMYK; (0 - Monochrome RIP, 1 - CMYK RIP) (0 in this<br />

case) [4 bytes]<br />

2. int web_Side; (0 - Front side, 1 - Back side) [4 bytes]<br />

3. float pos_In_Inches; (RIP position relative to the upper-left corner<br />

of the web template) [4 bytes]<br />

4. int <strong>ijpds</strong>_RIP_ID; (range can be between 0 and 15 including 0 and<br />

15 according to the IJPDS specification) [16 bytes]<br />

5. COLORREF color; (Refer to the WINDOWS SDK for information on<br />

making a COLORREF value based on Red, Green, and Blue<br />

numbers. Example: COLORREF color = RGB(255, 235, 200))<br />

[4 bytes]<br />

1. BOOL isCMYK; (0 - Monochrome RIP, 1 - CMYK RIP) (1 in this<br />

case)<br />

2. int web_Side; (0 - Front side, 1 - Back side)<br />

3. float pos_In_Inches; (RIP position relative to the upper-left corner<br />

of the web template)<br />

4. int <strong>ijpds</strong>_RIP_ID[4]]; (Four RIP IDs must be specified in order of<br />

Cyan, Magenta, Yellow, and Black. Range can be between 0 and 15<br />

including 0 and 15 according to the IJPDS specification) [16 bytes]<br />

Reference Guide E - 1


Appendix E. IJQ File Format<br />

C++ Implementation of the Above Data Structures and Their Serialization<br />

C++ Implementation of the Above Data Structures and Their Serialization<br />

E - 2IJPDS Formats<br />

/////CRIP/////<br />

class CRIP<br />

{<br />

public:<br />

CRIP() {};<br />

~CRIP() {};<br />

};<br />

BOOL isCMYK;<br />

int side;<br />

float posDx;<br />

virtual void Write(CFile &file)<br />

{<br />

file.Write((BOOL *)&isCMYK, sizeof(BOOL));<br />

file.Write((int *)&side, sizeof(int));<br />

file.Write((float *)&posDx, sizeof(float));<br />

}<br />

/////CRIPMono/////<br />

class CRIPMono : public CRIP<br />

{<br />

public:<br />

CRIPMono() {};<br />

~CRIPMono() {};<br />

};<br />

int idRip;<br />

COLORREF rgb;<br />

virtual void Write(CFile &file)<br />

{<br />

CPrefRIP::Write(file);<br />

file.Write((BOOL *)&idRip, sizeof(int));<br />

file.Write((COLORREF*)&rgb, sizeof(COLORREF));<br />

}<br />

/////CRIPCmyk/////<br />

class CRIPCmyk : public CRIP<br />

{<br />

public:<br />

CRIPCmyk() {};<br />

~CRIPCmyk() {};<br />

};<br />

int idRips[4];<br />

virtual void Write(CFile &file)<br />

{<br />

CPrefRIP::Write(file);<br />

for (int i=0; i


Example of File Writing (in MFC and C++)<br />

void GenerateIJQFile()<br />

{<br />

CString ijqFileName = _T("C:\\jobname.ijq");<br />

}<br />

Appendix E. IJQ File Format<br />

Example of File Writing (in MFC and C++)<br />

CFile file(ijqFileName, CFile::modeCreate|CFile::modeWrite);<br />

int ripcount = 4;<br />

file.write((int*)&ripcount, sizeof(int));<br />

CRIPMono monochromeRIP1;<br />

monochromeRIP1.isCMYK = FALSE;<br />

monochromeRIP1.side = 0;<br />

monochromeRIP1.posDx = 0.0;<br />

monochromeRIP1.rgb = RGB(255, 0, 0);<br />

monochromeRIP1.idRip = 0;<br />

monochromeRIP1.Write(file);<br />

CRIPMono monochromeRIP2;<br />

monochromeRIP2.isCMYK = FALSE;<br />

monochromeRIP2.side = 0;<br />

monochromeRIP2.posDx = 1.0;<br />

monochromeRIP2.rgb = RGB(255, 0, 255);<br />

monochromeRIP2.idRip = 1;<br />

monochromeRIP2.Write(file);<br />

CRIPCmyk cmykRIP3;<br />

cmykRIP3.isCMYK = 1;<br />

cmykRIP3.side = 1;<br />

cmykRIP3.posDx = 8.0;<br />

cmykRIP3.idRips[0] = 2;<br />

cmykRIP3.idRips[1] = 3;<br />

cmykRIP3.idRips[2] = 4;<br />

cmykRIP3.idRips[3] = 5;<br />

cmykRIP3.Write(file);<br />

CRIPMono monochromeRIP4;<br />

monochromeRIP4.isCMYK = FALSE;<br />

monochromeRIP4.side = 0;<br />

monochromeRIP4.posDx = 1.0;<br />

monochromeRIP4.rgb = RGB(255, 255, 255);<br />

monochromeRIP4.idRip = 6;<br />

monochromeRIP4.Write(file);<br />

/////end/////<br />

Reference Guide E - 3


Glossary<br />

absolute cursor position A position of the cursor in the page buffer<br />

that is referenced to the upper left corner of the document (X,Y<br />

coordinates = 0,0). See also cursor and relative cursor position.<br />

ASCII American Standard Code for Information Interchange.<br />

A standard 7-bit code used to represent a set of characters numbered<br />

0-127. Extended, or 8-bit, ASCII adds characters 128-255. ASCII is<br />

usually used on PCs, workstations, and most minicomputers.<br />

baseline An imaginary line on which characters sit. Used in category II<br />

font design to allow for different sizes of characters on the same line.<br />

big-endian A computer architecture in which, within a given multi-byte<br />

numeric representation, the most significant byte has the lowest address<br />

(the word is stored “big-end-first”). Most processors, including the IBM<br />

370 family, the PDP-10, the Motorola microprocessor families, and most<br />

of the various RISC designs current in mid-1993, are big-endian.<br />

bitmap An arrangement of dots that represents text or graphics.<br />

A computer uses the dots in an arrangement of binary 1s and 0s to<br />

represent the presence and absence of ink drops and sends this data to<br />

the printheads.<br />

bounding box An imaginary rectangle that encloses a character<br />

image. The rectangle includes only the dots used to make the image.<br />

Spacing around the image is not included. See also character cell.<br />

bpi Bits per inch. A measure of tape density giving the number of bits<br />

that can be recorded on 1 inch (25mm) of magnetic tape.<br />

category I font A KODAK VERSAMARK font that defines characters in<br />

cells that include character and line spacing. Character cells cannot<br />

overlap. Line escapement is in the positive Y direction only. See also font.<br />

category II font A KODAK VERSAMARK font that defines characters in<br />

bounding boxes that contain only the character image. Character<br />

definitions allow both positive and negative X and Y character<br />

escapements and offsets. Line escapement is defined using positive and<br />

negative X and Y values. This font category permits character<br />

overlapping, vertical printing, and right-to-left printing. See also font.<br />

character cell An imaginary rectangle that encloses a character image<br />

and surrounding space. The area can include white space for characterto-character<br />

and interline spacing. See also bounding box.<br />

character escapement The distance the cursor is moved from its<br />

position for the present character to its position for the next character.<br />

The cursor can be moved in both the X and Y dimensions in positive or<br />

negative directions. Character escapement values are specified when<br />

defining the font.<br />

Reference Guide


Glossary<br />

IJPDS Formats<br />

character offset The distance a bounding box is offset from the<br />

current cursor position. The offset can be in both the X and Y dimensions<br />

in positive or negative directions. Character offset values are specified<br />

when defining the font.<br />

character spacing X and Y character spacing values that are<br />

contained in an SFS spacing record. These values are added to the<br />

character escapement values defined in the font.<br />

cue A signal that represents the start of a document. A cue signal<br />

occurs each time the cue sensor detects the leading edge of a piece of<br />

substrate or a preprinted cue mark on a web.<br />

cue mark A preprinted mark on a web that is the reference point for the<br />

start of a new document.<br />

current fixed file The last fixed file to be identified by an SFF, RFF,<br />

SOD, or SDC record. See also fixed files.<br />

current font The font currently in effect. The font specified by the last<br />

IJPDS record executed that contained a font identification field.<br />

cursor A pointer in the page buffer. Cursor position is defined using X<br />

and Y coordinates. See also cursor position, absolute cursor position and<br />

relative cursor position.<br />

cursor position The current position of the cursor in the page buffer.<br />

The cursor is set to the starting position in IJPDS position records, but is<br />

moved by various records such as SFI, IML, SIL, UIL, SPC, BOX, and<br />

IBM according to the rules for the record. For example, when printing a<br />

line of text, the starting position for the line remains the same, but the<br />

cursor moves as each character is placed in the buffer. See also starting<br />

position.<br />

data station The component of the printing system that receives<br />

character-coded input data and produces image data in bitmapped format<br />

that is sent to the printheads at the print stations.<br />

document A unit of input data that is printed in one area of the<br />

substrate. A document may include more than one page. Most common<br />

data preparation establishes one document for each cue mark on a web<br />

or one document for each piece in cut-sheet printing. See also page.<br />

dot 1. The smallest mark that can be printed by the printing system. 2.<br />

The distance between pixels (dots) in the printed image. With a 240-dpi<br />

resolution, a distance of 1 dot equals 1/240 in.<br />

downstream The direction that is the same as substrate movement.<br />

See also upstream.<br />

dpi Dots per inch. A measure of print resolution.<br />

EBCDIC Extended Binary-Coded Decimal Interchange Code. A<br />

standard 8-bit code used to represent a set of characters numbered 0 -<br />

255. EBCDIC is usually used on IBM mainframe and midrange systems.<br />

EOT marker A reflective strip on a magnetic tape that indicates the<br />

end of the physical medium (end of tape).<br />

escapement The distance the cursor is moved for character spacing or<br />

for line spacing. See also character escapement and font escapement.


Glossary<br />

fixed data Print fields containing fixed text and/or graphics that are<br />

printed on every document or on selected documents. See also variable<br />

data.<br />

fixed files Files containing fixed data for each RIP. Fixed files are read<br />

from the job file and stored in the data station. They can be referenced in<br />

the data stream so that the same information does not have to be<br />

repeated. See also current fixed file.<br />

font A collection of characters that have the same typeface, style,<br />

weight, and point size. In KODAK VERSAMARK printing systems, fonts can<br />

also contain graphics identified by one or more characters. See also<br />

category I font and category II font.<br />

font escapement The distance the cursor is moved from its position<br />

for the present line to its position for the next line. The cursor can be<br />

moved in both the X and Y dimensions in positive or negative directions.<br />

Font escapement values are specified when defining the font.<br />

highest row used The Y value of the last dot row used on a page. The<br />

highest row used is one less than the page length which is the number of<br />

rows used (the Y value of the first row is 0).<br />

image A pattern of filled and unfilled dots. It can be a character, a line<br />

of characters, or a graphic.<br />

InterLine Spacing (ILS) The distance, in dots, to be added to the<br />

space between lines specified by the font. This is the Y component of line<br />

spacing. See also line spacing.<br />

job file A file that contains information describing a print job. The file<br />

can contain setup information, fixed messages, font identification, and<br />

variable data.<br />

line spacing X and Y line spacing values that are contained in an SFS<br />

spacing record or as an ILS value in an SOD, SDC, SFI, or SFT record.<br />

The ILS is the Y component of line spacing. These values are added to<br />

the font escapement values defined in the font. See also character<br />

spacing.<br />

logical RIP number A number assigned to each unstitched RIP or pair<br />

of stitched RIPs in the printing system for which the IJPDS job file is<br />

intended. See also physical RIP number.<br />

offset See character offset.<br />

orientation Print fields can be rotated 360° in 90° increments, allowing<br />

4 different orientations of 0°, 90°, 180°, and 270°. See also rotation.<br />

origin The position in the page buffer from which SPO and SPX<br />

commands start their measurement. The origin is set to 0,0 at the start of<br />

each page by SOD, SDC, SOP, or WFC records and is set to the current<br />

cursor position by the SOR record.<br />

page The data for a document in a page buffer. If the document data is<br />

equal to or less than the page buffer length, there is one page per<br />

document. If the document data length is greater than the length of the<br />

page buffer, there are two or more pages per document. See also<br />

document.<br />

Reference Guide


Glossary<br />

IJPDS Formats<br />

page buffer Memory in a RIP in which pages are assembled for<br />

printing. The buffer size is printer dependent.<br />

page length The number of dot rows to be printed. The page length<br />

can be set by the SPL record to be longer or shorter than the image. If<br />

shorter, the image will be clipped. If longer, white space is printed to the<br />

end of the page.<br />

physical RIP number A number assigned to each physical RIP in the<br />

printing system for which the IJPDS job file is intended, regardless of<br />

whether the RIP is stitched or not. See also logical RIP number.<br />

piece A discrete segment of substrate upon which the image is printed.<br />

For example, an envelope.<br />

print station The component of the printing system that receives<br />

image data in bitmapped format from the data station and produces a<br />

printed image as output. Each print station contains a fluid controller,<br />

umbilical, and printhead.<br />

print width The maximum width of the area that can be printed by the<br />

printhead. It is usually given in inches or dots.<br />

printhead The part of the print station that forms charged ink drops,<br />

allows uncharged drops to fall on the substrate, and recovers charged<br />

drops to be returned to the fluid cabinet. The printhead receives data in<br />

bitmapped format from the data station through a fiberoptic cable and<br />

uses ink and charge voltages from the fluid cabinet to create inkjet<br />

images.<br />

raster A rectangular bitmap arranged in rows of dots.<br />

regular font A font that allows characters to be accessed with a 1-byte<br />

code. Up to 256 characters are possible.<br />

relative cursor position A position of the cursor in the page buffer that<br />

is referenced to a position other than the upper left corner of the buffer.<br />

See also cursor and absolute cursor position.<br />

resolution The degree of sharpness of an image created by a<br />

computer, measured in dots per inch (dpi).<br />

resolution multiplier A method of setting a logical resolution for the<br />

current RIP that is higher than the RIP physical resolution. This allows the<br />

data preparation program to specify distances at a resolution higher than<br />

that of the RIP.<br />

RIP Raster image processor. The part of the data station or data<br />

system that builds raster bitmaps from character data received from the<br />

data processor and sends bitmapped data to the printheads.<br />

RIP number A number assigned to each RIP or pair of stitched RIPs in<br />

a printing system. See also logical RIP number and physical RIP number.<br />

rotation Print fields can be rotated to orientations of 0°, 90°, 180°, and<br />

270°. See also orientation.<br />

starting position The last position for the cursor specified by an<br />

IJPDS position record (SPO, SPX, SRP, CSR) or by a page start record<br />

(SOD, SDC, SOP, WFC), which sets the starting position to 0,0. See also<br />

cursor position.


Glossary<br />

stitching The process where a single contiguous image is produced<br />

by two or more printheads.<br />

substrate The surface on which an image is printed. The substrate can<br />

be a continuous sheet (web) or separate pieces of various types of<br />

material.<br />

super font A font that requires characters to be accessed with 2-byte<br />

codes. Up to 65,536 characters are possible.<br />

super RIP Two physically separate RIPs that can be stitched and<br />

treated as a single double-width RIP by the input data.<br />

tape mark A unique code written to magnetic tape to indicate the start<br />

or end of a file. A double tape mark indicates the end of a tape volume.<br />

upstream The direction that is opposite that of the substrate<br />

movement. See also downstream.<br />

variable data Print fields that change from document to document.<br />

See also fixed data.<br />

web A continuous sheet of substrate.<br />

Reference Guide


0113991-602<br />

0113991-603<br />

© <strong>Kodak</strong> Versamark, Inc.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!