Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Kernel API Approach to Driving IPDs Printers

IP.com Disclosure Number: IPCOM000110348D
Original Publication Date: 1992-Nov-01
Included in the Prior Art Database: 2005-Mar-25
Document File: 4 page(s) / 178K

Publishing Venue

IBM

Related People

Carlock, JR: AUTHOR [+2]

Abstract

A method is required for converting various types of printer data into Intelligent Printer Data Stream (IPDS) for driving IBM page printers. The method must be fast enough so that high-speed printers can be driven at rated speed from a PS/2 print server, and must not require storage--either memory or disk space--for any intermediate file.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Kernel API Approach to Driving IPDs Printers

       A method is required for converting various types of
printer data into Intelligent Printer Data Stream (IPDS) for driving
IBM page printers.  The method must be fast enough so that high-speed
printers can be driven at rated speed from a PS/2 print server, and
must not require storage--either memory or disk space--for any
intermediate file.

      A Conversion Kernel programming interface, and the underlying
design, was developed to meet the requirements stated above.

      The Conversion Kernel consists of an interface (called
Conversion Kernel calls) and software modules to service those calls.
Any number of private converters can be integrated with the print
server, with each private converter responsible for processing a
specific type of printer data.  So far, private converters have been
implemented for ASCII data and Presentation Manager Metafile data.
Another converter, the AFPDS Converter, acts both as a private
converter and as an extension to the Conversion Kernel.

      The interface to the Conversion Kernel is a set of C
programming language function calls.  Most of these calls are used to
pass data to the Conversion Kernel, and are modeled after the
Advanced Printer Data Stream (AFPDS) structured fields.  For example,
the CAFP_icp() function declared below corresponds to the AFPDS Image
Cell Position structured field.
/**************************************************************/
/* Image Cell Position--IM1 */
/**************************************************************/
int CAFP_icp(
      unsigned short x_offset,       /* X offset-position */
      unsigned short y_offset,       /* Y offset-position */
      unsigned short X_cell_size,    /* Cell X-dimension */
      unsigned short y_cell_size,    /* Cell Y-dimension */
      unassigned short x_fill_size,  /* Fill Rectangle X-size */
      unassigned short y_fill_size;  /* Fill Rectangle Y-size */
Using AFPDS as the model for the data stream calls relieves the
private converter from handling the device-specific details of the
IPDS data stream.

      Other calls have purposes, including calls to:
*    Instruct the Conversion Kernel to process AFPDS resource files
(fonts, electronic forms, and images), convert those resource to IPDS
format and load them into the printer.
*    Determine image and graphic capabilities of the printer, for
example: Does the printer support the Image Object Content
Architecture (IOCA), or only the more limited image function of the
3820 printer?
*    Obtain font metrics, that is, the width and height of
characters.  This information is necessary for formatting text, as
the size of the characters determines where text strings can be
placed on a page.
*    Save information that a private converter must use, if required,...