12.11.2012 Views

ijpds formats.book - Kodak

ijpds formats.book - Kodak

ijpds formats.book - Kodak

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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!