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.
IPDS incorporates the following functions:
IPDS makes this possible by carrying independently defined blocks of data (objects). The IBM® 3270 display data stream also carries similarly defined independent objects, thus making it possible to use the same objects in both environments.
IPDS functional divisions
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.
Function-set requirements for IPDS
In order to claim support of the IPDS architecture, a product must do the following:
Return of function-set information
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.
The IPDS page environment
IPDS creates mixed-data pages within a hierarchy of presentation spaces. These presentation spaces are: physical page, logical page, and data blocks.
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.
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.
Overlays and page segments
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.
Loaded fonts
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 loaded fonts and come in one of the following configurations:
Coordinate systems
Xm, Ym coordinate system (physical page)
IPDS uses orthogonal coordinate systems to define any point on a page. Distances between these coordinate systems are measured in logical units or L-units rather than physical pels.
The Xm, Ym coordinate system is the physical-page coordinate system. The top-left corner of the physical page is always (0,0).
The printer defines the top of a physical page.
The Xm, Ym coordinate system is fixed for each media size. IPDS commands cannot change the orientation of these coordinates.
Xp, Yp coordinate system (logical page)
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.
The size of the logical page in the Xp dimension is called the Xp extent. The size of the logical page in the Yp dimension is called the Yp extent. The Xp, Yp coordinate system is used to locate data blocks on the logical page.
The coordinate system for overlays is the same as the Xp, Yp coordinate system for logical pages.
I, B Coordinate System (Text)
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.
As characters are developed on the page, the inline coordinate is incremented in the positive inline (or +I) direction. As lines are developed on the page, the baseline coordinate is incremented in the positive baseline (or +B) direction.
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).
Processing IPDS commands
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.
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:
The IPDS command format
All IPDS commands are encoded in the following format:
Length | Command | Flag | CID | Data |
IPDS operating states
IPDS commands are defined within the context of printer operating states. The printer moves between these operating states during command processing. IPDS printers are state machines with the following operating states:
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.
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.
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.
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.
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.
Default handling
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: