394 lines
21 KiB
HTML
394 lines
21 KiB
HTML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-us">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
|
<meta name="dc.language" scheme="rfc1766" content="en-us" />
|
|
<!-- All rights reserved. Licensed Materials Property of IBM -->
|
|
<!-- US Government Users Restricted Rights -->
|
|
<!-- Use, duplication or disclosure restricted by -->
|
|
<!-- GSA ADP Schedule Contract with IBM Corp. -->
|
|
<meta name="dc.date" scheme="iso8601" content="2005-09-06" />
|
|
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
|
|
<meta name="security" content="public" />
|
|
<meta name="Robots" content="index,follow"/>
|
|
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
|
|
<title>IPDS</title>
|
|
<link rel="stylesheet" type="text/css" href="ibmidwb.css" />
|
|
<link rel="stylesheet" type="text/css" href="ic.css" />
|
|
</head>
|
|
<body>
|
|
<a id="Top_Of_Page" name="Top_Of_Page"></a><!-- Java sync-link -->
|
|
<script language = "Javascript" src = "../rzahg/synch.js" type="text/javascript"></script>
|
|
|
|
|
|
<a name="rzaluidps"></a>
|
|
<h4 id="rzaluidps">IPDS</h4>
|
|
<p>Intelligent Printer Data Stream™ (IPDS™) is IBM's host-to-printer
|
|
data stream for Advanced Function Presentation™ subsystems.
|
|
It provides an interface to all-points-addressable (APA) printers that makes
|
|
possible the presentation of pages containing an architecturally unlimited
|
|
mixture of different data types: high-quality text, raster image, vector graphics,
|
|
and bar code.</p>
|
|
<p>IPDS incorporates the following functions: </p>
|
|
<ul>
|
|
<li>Different applications can create source data (graphics, image, bar code,
|
|
and text), independently of one another. IPDS makes it possible for the output of these
|
|
independent applications to be merged at print time resulting in an integrated
|
|
mixed data page.
|
|
<p>IPDS makes this possible by carrying independently defined
|
|
blocks of data <span class="italic">(objects)</span>. The IBM® 3270 display
|
|
data stream also carries similarly defined independent objects, thus making
|
|
it possible to use the same objects in both environments.</p></li>
|
|
<li>IPDS is independent of the carrying communications protocol. This allows
|
|
the transmission of the same data stream to channel-attached printers, controllers,
|
|
local area networks, and any other networking link supporting transparent
|
|
transmission of data.</li>
|
|
<li>IPDS transfers all data and commands through self-identifying structured
|
|
fields which describe the presentation of the page and provide for the following:
|
|
<ul>
|
|
<li>Dynamic management of downloaded resources (overlays, page segments, and
|
|
loaded fonts) and resident fonts</li>
|
|
<li>Control of device functions such as duplexing, media bin selection, and
|
|
output finishing</li>
|
|
<li>Comprehensive handling of exception functions, enabling users to control
|
|
the level of exception handling.</li></ul></li>
|
|
<li>IPDS provides an extensive acknowledgement protocol at the data stream
|
|
level. This acknowledgement protocol helps synchronize host and printer processes,
|
|
exchange query/reply information, and return detailed exception information.</li></ul>
|
|
<p><span class="bold">IPDS functional divisions</span></p>
|
|
<p>IPDS architecture is divided into several functional areas, each of which
|
|
contains a set of IPDS commands representing a major printer capability.
|
|
This function set design allows IPDS to support a wide range of printer products.
|
|
Product developers can match function set implementations to the specific
|
|
needs of their product. </p>
|
|
<div class="mmobj">
|
|
<img src="rbaft531.gif" alt="IPDS architecture is divided into several functional areas" /></div>
|
|
<dl>
|
|
<dt class="bold">Device control</dt>
|
|
<dd>Function set is composed of the IPDS commands that set up a page, communicate
|
|
device controls, and manage acknowledgement protocol. The device-control function
|
|
set is the only mandatory function set for IPDS printers, although not all DC1 orders
|
|
are required to be supported.
|
|
</dd>
|
|
<dt class="bold">Text</dt>
|
|
<dd>Function set composed of commands and orders (text controls) required
|
|
to present text information on a page, page segment (stored command sequence),
|
|
or an overlay (electronic form). The text function set contains two presentation
|
|
text (PT) subsets: PT1 and PT2. Text printers support either subset. PT2
|
|
is a superset of PT1 and, therefore, all orders contained in PT1 are also
|
|
in PT2.
|
|
</dd>
|
|
<dt class="bold">IM image</dt>
|
|
<dd>Function set containing the IPDS commands required to present raster image
|
|
data on a page, page segment, or an overlay.
|
|
</dd>
|
|
<dt class="bold">IO image</dt>
|
|
<dd>Function set containing commands that present raster data (similar to
|
|
IM image) but with additional functions.
|
|
</dd>
|
|
<dt class="bold">Graphics</dt>
|
|
<dd>Function set composed of the IPDS commands and drawing orders required to
|
|
present vector graphics on a page, page segment, or overlay. The graphics
|
|
function set contains two drawing (DR) subsets: DR1 and DR2. Vector graphics
|
|
printers support DR2, which is a superset of DR1.
|
|
</dd>
|
|
<dt class="bold">Bar code</dt>
|
|
<dd>Function set composed of the IPDS commands required to present machine-readable
|
|
bar code information on a page, page segment, or overlay.
|
|
</dd>
|
|
<dt class="bold">Page segments and overlays</dt>
|
|
<dd>Function sets composed of the IPDS commands required to store and present IPDS constructs containing text, graphics, image, and bar code information.
|
|
These stored constructs can be either page segments or overlays.
|
|
</dd>
|
|
<dt class="bold">Loaded font</dt>
|
|
<dd>Function set composed of the IPDS commands necessary to load and delete
|
|
font information.
|
|
</dd>
|
|
</dl>
|
|
<p><span class="bold">Function-set requirements for IPDS</span></p>
|
|
<p>In order to claim support of the IPDS architecture, a product must do the following: </p>
|
|
<ul>
|
|
<li>Accomplish all required commands in the device-control function set</li>
|
|
<li>Accomplish at least one subset of one other data function set</li>
|
|
<li>Accomplish all required commands, orders, and controls for each supported
|
|
function set or subset.</li></ul>
|
|
<p><span class="bold">Return of function-set information</span></p>
|
|
<p>A host presentation services program determines the functional capabilities
|
|
of an IPDS printer by issuing certain IPDS query commands to the printer and requesting
|
|
an acknowledgement. The data that the printer returns in the acknowledge reply
|
|
shows the printer type and model, details of the function sets supported,
|
|
and a variety of printer characteristics.</p>
|
|
<p><span class="bold">The IPDS page environment</span></p>
|
|
<p>IPDS creates mixed-data pages within a hierarchy of presentation spaces.
|
|
These presentation spaces are: physical page, logical page, and data blocks. </p>
|
|
<dl>
|
|
<dt class="bold">Physical page</dt>
|
|
<dd>The medium (typically paper) on which information is placed. The physical
|
|
page has boundaries of width and depth that define the limits of the medium.
|
|
</dd>
|
|
<dt class="bold">Logical page</dt>
|
|
<dd>The electronic representation of the page that is sent to the printer.
|
|
The logical page is a rectangular area that might not be the same size as
|
|
the physical page on which it is placed. Printing can only occur where the
|
|
current logical page intersects the physical page (valid printable area).
|
|
</dd>
|
|
<dt class="bold">Data blocks</dt>
|
|
<dd>Rectangular areas positioned on the logical page. Data blocks can be
|
|
one of three types:
|
|
<ul>
|
|
<li>Image Data Blocks: Raster information</li>
|
|
<li>Graphics Data Blocks: Lines, curves, areas, and other drawing elements</li>
|
|
<li>Bar Code Data Blocks: Bar-coded, machine-readable characters or human-readable
|
|
characters.</li></ul>
|
|
<a name="wq30"></a>
|
|
<div class="notetitle" id="wq30">Note:</div>
|
|
<div class="notebody">There is no text data block. Text can be positioned
|
|
anywhere in the valid printable area. Data blocks can be positioned in relation
|
|
to the text.</div>
|
|
</dd>
|
|
</dl>
|
|
<p>IPDS has a hierarchical relationship between a physical page, a logical
|
|
page, and data blocks. In the following figure, the logical page boundaries
|
|
do not correspond to the physical page boundaries.</p>
|
|
<div class="mmobj">
|
|
<img src="rbaft532.gif" alt="IPDS has an hierarchical relationship between a physical page, a logical page, and data blocks." /></div>
|
|
<p>One of the strengths of IPDS is that independent applications can create
|
|
source data for each data block. The output of these independent applications
|
|
is merged at the printer to create an integrated mixed data page. For example,
|
|
text data could be produced on an editor, image data could be the output of
|
|
a scanner stored in a folder, and graphics data could be produced by Business
|
|
Graphics Utility. IPDS makes it possible to integrate application output
|
|
rather than requiring the use of integrated applications.</p>
|
|
<p><span class="bold">Overlays and page segments</span></p>
|
|
<p>IPDS stores resources in the printer for later use. Overlays and page
|
|
segments can be merged with the logical page before the logical page is printed
|
|
on the physical page. </p>
|
|
<dl>
|
|
<dt class="bold">Overlay</dt>
|
|
<dd>Macro-like construct loaded by the host processor and sent to the printer's
|
|
storage. An overlay can consist of any combination of text data, image block
|
|
data, graphics block data, or bar code block data. An overlay contains the
|
|
same type of presentation commands used in the logical page, but overlays
|
|
are independent of the logical page environment. The major difference between
|
|
overlays and logical pages is that overlays are stored until deleted but logical
|
|
pages, if stored, are only stored until printed. Overlays are often used as
|
|
electronic forms.
|
|
</dd>
|
|
<dt class="bold">Page segment</dt>
|
|
<dd>This is like the overlay in makeup. The difference between a page segment
|
|
and an overlay is that page segments are not independent of the page environment;
|
|
they are merged with the logical page and assume the currently active environment.
|
|
</dd>
|
|
</dl>
|
|
<p><span class="bold">Loaded fonts</span></p>
|
|
<p>A font is a set of characters in a particular type style and size. Fonts
|
|
can be downloaded from the host or can be resident in printer storage. Downloaded
|
|
fonts are called <span class="italic">loaded fonts</span> and come in one of the
|
|
following configurations: </p>
|
|
<dl>
|
|
<dt class="bold">Coded font</dt>
|
|
<dd>A complete code page of graphic characters in a particular style. (A
|
|
code page maps each character in a font to a numeric value or code point.)
|
|
</dd>
|
|
<dt class="bold">Symbol set</dt>
|
|
<dd>A set of characters simpler in structure than a coded font. Symbol sets
|
|
are used where typographic quality is not required. Many dot matrix printers
|
|
and displays use symbol sets.
|
|
</dd>
|
|
</dl>
|
|
<p><span class="bold">Coordinate systems</span></p>
|
|
<p><span class="underlined"> Xm, Ym coordinate system (physical page)</span></p>
|
|
<p>IPDS uses orthogonal coordinate systems to define any point on a page.
|
|
Distances between these coordinate systems are measured in logical units
|
|
or <span class="italic">L-units</span> rather than physical pels.</p>
|
|
<p>The Xm, Ym coordinate system is the physical-page coordinate system. The
|
|
top-left corner of the physical page is always (0,0).</p>
|
|
<p>The printer defines the top of a physical page.</p>
|
|
<div class="mmobj">
|
|
<img src="rbaft533.gif" alt=" Xm, Ym coordinate system (physical page)" /></div>
|
|
<p>The Xm, Ym coordinate system is fixed for each media size. IPDS commands cannot
|
|
change the orientation of these coordinates.</p>
|
|
<p><span class="underlined"> Xp, Yp coordinate system (logical page)</span></p>
|
|
<p>The Xp, Yp coordinate system is the logical-page coordinate system. The
|
|
origin of this system (Xp=0, Yp=0) is specified as an offset from the physical
|
|
page origin (Xm=0, Ym=0) through the Load Page Position command. IPDS commands cannot
|
|
change the orientation of the Xp, Yp coordinate system; it is always parallel
|
|
to, but offset from, the Xm, Ym coordinate system.</p>
|
|
<p>The size of the logical page in the Xp dimension is called the <span class="italic">Xp extent</span>. The size of the logical page in the Yp dimension is called
|
|
the <span class="italic">Yp extent</span>. The Xp, Yp coordinate system is used
|
|
to locate data blocks on the logical page.</p>
|
|
<p>The coordinate system for overlays is the same as the Xp, Yp coordinate
|
|
system for logical pages.</p>
|
|
<div class="mmobj">
|
|
<img src="rbaft534.gif" alt=" Xp, Yp coordinate system (logical page)" /></div>
|
|
<p><span class="underlined"> I, B Coordinate System (Text)</span></p>
|
|
<p>The Inline, Baseline (I, B) coordinate system describes the placement of
|
|
data blocks on the logical page. The printer places characters along the I-axis
|
|
to form a line of text and places lines of text along the B-axis on the logical
|
|
page. IPDS commands can change both the origin and the orientation of the inline
|
|
and baseline axes.</p>
|
|
<p>As characters are developed on the page, the inline coordinate is incremented
|
|
in the <span class="bold">positive inline</span> (or +I) direction. As lines are
|
|
developed on the page, the baseline coordinate is incremented in the <span class="bold">positive baseline</span> (or +B) direction.</p>
|
|
<a name="wq31"></a>
|
|
<div class="notetitle" id="wq31">Note:</div>
|
|
<div class="notebody">Characters are developed
|
|
on a page in the direction in which they will be read (left to right, for
|
|
example). The printer can actually place characters or lines on a page in
|
|
various directions (as in bidirectional printing).</div>
|
|
<p>The coordinates of the first text position on the logical page are called
|
|
the initial inline text coordinate (Io) and the initial baseline text coordinate
|
|
(Bo). The coordinates of the current position on the logical page are called
|
|
the current inline text coordinate (Ic) and the current baseline text coordinate
|
|
(Bc).</p>
|
|
<div class="mmobj">
|
|
<img src="rbaft535.gif" alt="The coordinates of the first text position on the logical page are called the initial inline text coordinate (Io) and the initial baseline text coordinate (Bo). The coordinates of the current position on the logical page are called the current inline text coordinate (Ic) and the current baseline text coordinate (Bc)." /></div>
|
|
<p><span class="bold">Processing IPDS commands</span></p>
|
|
<p>The structured field format of IPDS allows commands to be sent to the printer
|
|
in a continuous stream. Each command is self-describing. The command length,
|
|
identifier, flag byte, and data (not always present) are all part of each
|
|
command. The printer-host conversation is carried on as if IPDS commands were
|
|
processed in sequential order by the printer.</p>
|
|
<p>Every IPDS command contains a flag byte. The setting on the acknowledgement-required
|
|
bit on this flag byte indicates the end of a command sequence to the printer.
|
|
The printer then sends an acknowledge reply to the host, as illustrated in
|
|
the following diagram:</p>
|
|
<div class="mmobj">
|
|
<img src="rbaft536.gif" alt="Processing IPDS Commands" /></div>
|
|
<p><span class="bold">The IPDS command format</span></p>
|
|
<p>All IPDS commands are encoded in the following format: </p>
|
|
<a name="wq32"></a>
|
|
<table id="wq32" width="100%" summary="" border="1" frame="border" rules="all" class="singleborder">
|
|
<tbody valign="top">
|
|
<tr>
|
|
<td width="17%">Length</td>
|
|
<td width="23%">Command</td>
|
|
<td width="10%">Flag</td>
|
|
<td width="19%">CID</td>
|
|
<td width="28%">Data</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<dl>
|
|
<dt class="bold">Length</dt>
|
|
<dd>A 2-byte field that specifies the length of the command. This count
|
|
includes itself, the command field, the flag byte and the optional correlation
|
|
ID (CID), and data fields. The length field can range from X'0005' to X'7FFF'.
|
|
</dd>
|
|
<dt class="bold">Command</dt>
|
|
<dd>A 2-byte field that specifies the IPDS command.
|
|
</dd>
|
|
<dt class="bold">Flag</dt>
|
|
<dd>A 1-byte field that contains the IPDS command stream flags.
|
|
<ul>
|
|
<li>Bit 0 is the acknowledgement required (ARQ) flag. If this bit is on, the
|
|
host requests the printer to send an acknowledge reply.</li>
|
|
<li>Bit 1 is the correlation ID (CID) flag. If it is on, a 2-byte correlation
|
|
ID follows. If it is off, the CID is not present and the following bytes (if
|
|
any) contain the data field.</li></ul>
|
|
</dd>
|
|
<dt class="bold">CID (correlation ID)</dt>
|
|
<dd>A 2-byte field that specifies an identifier for the command. A presentation
|
|
services program can use any value between X'0000' and X'FFFF' for the correlation
|
|
ID.
|
|
</dd>
|
|
<dt class="bold">Data</dt>
|
|
<dd>Not present for all commands. If present, it contains specific orders,
|
|
parameters, and data appropriate for the given command.
|
|
</dd>
|
|
</dl>
|
|
<p><span class="bold">IPDS operating states</span></p>
|
|
<p>IPDS commands are defined within the context of printer operating states.
|
|
The printer moves between these operating states during command processing. IPDS printers are <span class="italic">state machines</span> with the following
|
|
operating states:</p>
|
|
<ul>
|
|
<li>Home state</li>
|
|
<li>Block state
|
|
<ul>
|
|
<li>IO image block state</li>
|
|
<li>IM image block state</li>
|
|
<li>Graphics block state</li>
|
|
<li>Bar code block state.</li></ul></li>
|
|
<li>Page state</li>
|
|
<li>Overlay state</li>
|
|
<li>Page segment state</li>
|
|
<li>Font state</li>
|
|
<li>Any-state</li></ul>
|
|
<dl>
|
|
<dt class="bold">Home state</dt>
|
|
<dd>The initial IPDS operating state. The printer returns to home state
|
|
at the end of each downloaded page, page segment, coded font, or overlay.
|
|
<p>While in home state, the printer receives control and initialization commands
|
|
to prepare for the print operation. In home state, the printer can also receive
|
|
commands that delete resources or request the return of printer information
|
|
to the host presentation services program.</p>
|
|
</dd>
|
|
<dt class="bold">Block states</dt>
|
|
<dd>State for establishing the initial processing conditions for a block
|
|
of data and placing the block of data on the logical page, page segment or
|
|
overlay. The printer can only enter a block state from page, page segment,
|
|
or overlay states.
|
|
</dd>
|
|
<dt class="bold">Page state</dt>
|
|
<dd>The operating state for printing a logical page. The printer enters
|
|
page state from home state on receiving a Begin Page command and exits on
|
|
receiving an End Page command.
|
|
<p>In page state, the printer can receive commands
|
|
that merge previously defined and loaded overlays and page segments with the
|
|
current page information. The printer can also receive Write Text commands
|
|
that position text on the logical page and can enter a block state to write
|
|
image, bar code, and graphics blocks.</p>
|
|
</dd>
|
|
<dt class="bold">Overlay state</dt>
|
|
<dd>State that allows overlay data to be stored in the printer. The printer
|
|
enters overlay state from home state on receiving a Begin Overlay command
|
|
and exits on receiving an End Page command.
|
|
<p>In overlay state, the printer
|
|
can receive commands that merge previously defined and loaded overlays and
|
|
page segments with the current page information. The printer can also receive
|
|
Write Text commands that position text on the logical page and can enter a
|
|
block state to write image, bar code, and graphics blocks.</p>
|
|
</dd>
|
|
<dt class="bold">Page segment state</dt>
|
|
<dd>State that allows page segment data to be stored in the printer. The
|
|
printer enters page segment state from home state on receiving a Begin Page
|
|
Segment command and exits on an End Page command.
|
|
<p>In page segment state,
|
|
the printer can receive Write Text commands that position text on the logical
|
|
page and can enter a block state to write image, bar code, and graphics blocks.</p>
|
|
</dd>
|
|
<dt class="bold">Font state</dt>
|
|
<dd>State that allows the printer to receive downloaded coded-font data.
|
|
The printer enters font state from home state on receiving a Load Font Control
|
|
command.
|
|
<p>While the printer is in font state, the Load Font command can send
|
|
coded-font, character-raster pattern data to the printer. Receipt of an End
|
|
command returns the printer to home state.</p>
|
|
</dd>
|
|
<dt class="bold">Any-state</dt>
|
|
<dd>Some IPDS commands can be received in any IPDS operating state. These commands do not
|
|
change the IPDS operating state, with the exception of XOA Discard Buffered Data.
|
|
</dd>
|
|
</dl>
|
|
<p><span class="bold">Default handling</span></p>
|
|
<p>Defaults are values used as control parameters when no other values are
|
|
specified in the current command. IPDS defaults are called through omission or
|
|
through values transmitted in the data field portion of commands. The IPDS default structure is normally hierarchical. General IPDS default rules
|
|
are: </p>
|
|
<ul>
|
|
<li>If power has been interrupted or if the printer has been initialized,
|
|
printer-established page default values are used until specific IPDS default values
|
|
are received.</li>
|
|
<li>Initial page values are established when the printer receives a Load Page
|
|
Descriptor command. If no such command is received, printer-established default
|
|
values remain in effect.</li>
|
|
<li>Initial data block values are established when the printer receives either
|
|
a Write Image Control, Write Image Control 2, Write Bar Code Control, or Write
|
|
Graphics Control command. These values remain in effect until data controls
|
|
override them or until the printer receives an End command that ends the block.</li></ul>
|
|
<a id="Bot_Of_Page" name="Bot_Of_Page"></a>
|
|
</body>
|
|
</html>
|