1811 lines
58 KiB
HTML
1811 lines
58 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
|
|
<title>Writer Transform Exit Program</title>
|
|
<!-- 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. -->
|
|
<!-- Begin Header Records ========================================== -->
|
|
<!-- Print SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
|
|
<!-- at RCHVMW2 on 17 Feb 1999 at 11:05:09 -->
|
|
<!--End Header Records -->
|
|
<!--Edited by Kersten Nov 2001 -->
|
|
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
|
|
</head>
|
|
<body>
|
|
<a name="Top_Of_Page"></a>
|
|
<!-- Java sync-link -->
|
|
<script type="text/javascript" language="Javascript" src="../rzahg/synch.js">
|
|
</script>
|
|
|
|
<h2>Writer Transform Exit Program</h2>
|
|
|
|
<div class="box" style="width: 95%;">
|
|
<br>
|
|
Required Parameter Group:<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
|
|
<table width="100%">
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">1</td>
|
|
<td align="left" valign="top" width="50%">Process option</td>
|
|
<td align="left" valign="top" width="20%">Input</td>
|
|
<td align="left" valign="top" width="20%">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">2</td>
|
|
<td align="left" valign="top">Option specific input information to transform
|
|
exit</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">3</td>
|
|
<td align="left" valign="top">Length of option specific input information to
|
|
transform exit</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">Spooled file data buffer</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">5</td>
|
|
<td align="left" valign="top">Length of spooled file data buffer</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">6</td>
|
|
<td align="left" valign="top">Option specific output information from transform
|
|
exit</td>
|
|
<td align="left" valign="top">Output</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">7</td>
|
|
<td align="left" valign="top">Length of option specific output information from
|
|
transform exit</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">Length of option specific output information
|
|
available from transform exit</td>
|
|
<td align="left" valign="top">Output</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">9</td>
|
|
<td align="left" valign="top">Transformed data buffer</td>
|
|
<td align="left" valign="top">Output</td>
|
|
<td align="left" valign="top">Char(*)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">Length of transformed data buffer</td>
|
|
<td align="left" valign="top">Input</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">11</td>
|
|
<td align="left" valign="top">Length of transformed data available</td>
|
|
<td align="left" valign="top">Output</td>
|
|
<td align="left" valign="top">Binary(4)</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
QSYSINC Member Name: ESPTRNXT<br>
|
|
<!-- iddvc RMBR -->
|
|
<br>
|
|
</div>
|
|
|
|
<p>The Writer Transform exit program describes the interface between a
|
|
user-defined transform exit program (transform exit) and an i5/OS printer
|
|
writer (writer).</p>
|
|
|
|
<p><strong>Note:</strong> This exit interface can also be used for remote
|
|
writers and on the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
|
|
|
|
<p>A transform exit program can be enabled by an operator when a writer is
|
|
started to an output queue. The writer handles the scheduling of spooled files
|
|
to print, and relies on the transform exit program to complete transforming of
|
|
the data necessary to print the file. The data is processed by the writer as
|
|
DEVTYPE(*USERASCII).</p>
|
|
|
|
<p>For informational purposes, the example below is provided to show the
|
|
interaction between the printer writer and the transform exit program.</p>
|
|
|
|
<ol>
|
|
<li>Printer writer is started by an operator.
|
|
|
|
<p>This ties a specific output queue to a specific printer. In this case, the
|
|
printer is capable of accepting the Printer Control Language (PCL) data
|
|
stream.</p>
|
|
</li>
|
|
|
|
<li>The writer calls the transform exit program with the initialize (10)
|
|
process option.
|
|
|
|
<p>The transform exit program creates its work spaces and returns to the writer
|
|
a successful return code.</p>
|
|
</li>
|
|
|
|
<li>The writer selects the first eligible file to process.
|
|
|
|
<p>The writer calls the transform exit program with the process file (20)
|
|
process option. The name and identifier of the spooled file are passed in the
|
|
input information.</p>
|
|
|
|
<p>The transform exit program determines if it will transform the file, returns
|
|
to the writer a successful return code and an indication whether it will
|
|
transform the file.</p>
|
|
</li>
|
|
|
|
<li>The writer calls the transform exit program with the transform data process
|
|
option (30).
|
|
|
|
<p>The writer calls the transform exit program, passing the data to transform.
|
|
The transform exit program transforms the data and passes it back to the
|
|
writer. This step happens repeatedly, until the entire spooled file has been
|
|
passed to the transform exit program.</p>
|
|
</li>
|
|
|
|
<li>The writer calls the transform exit program with the end file process
|
|
option (40).
|
|
|
|
<p>The transform exit program returns to the writer any remaining data to be
|
|
sent to the printer.</p>
|
|
</li>
|
|
|
|
<li>The writer selects the next eligible spooled file from the output queue.
|
|
|
|
<p>Steps starting with the process file option are repeated.</p>
|
|
</li>
|
|
|
|
<li>The operator ends the printer writer.
|
|
|
|
<p>The writer calls the transform exit program with the terminate process
|
|
option (50). The transform exit program cleans up any work spaces that it has
|
|
created and returns to the writer.</p>
|
|
</li>
|
|
</ol>
|
|
|
|
<p>The transform program should be capable of handling the case where the
|
|
program could lose control while processing a spooled file.</p>
|
|
|
|
<p><strong>Note:</strong> This could happen when the spooled file being
|
|
processed is held using the Hold Spooled File (HLDSPLF) command, deleted using
|
|
the Delete Spooled File (DLTSPLF) command, or a restart page specified using
|
|
the Change Spooled File Attributes (CHGSPLA) command.</p>
|
|
|
|
<p>When this happens, the transform program will be called with the end file
|
|
(40) process option. The transform program is expected to be able to continue
|
|
processing normally.</p>
|
|
|
|
<br>
|
|
<!-- Please NOTE: DO NOT DELETE THIS SECTION if this API has no authorities and locks. -->
|
|
<!-- Instead, use the commented out coding below to indicate NONE. -->
|
|
<h3>Authorities and Locks</h3>
|
|
|
|
<!-- Use this if there are no authorities and locks. -->
|
|
<p>None.</p>
|
|
|
|
<br>
|
|
<h3>Required Parameter Group</h3>
|
|
|
|
<dl>
|
|
<dt><strong>Process option</strong></dt>
|
|
|
|
<dd>INPUT; BINARY(4)
|
|
|
|
<p>The action for the transform exit program to take. This information is
|
|
filled in by the writer. The first option should be initialize (10). This is
|
|
done when the writer is started.</p>
|
|
|
|
<p>Possible values are:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top" nowrap><em>10 (Initialize)</em></td>
|
|
<td align="left" valign="top">The transform exit program sets any initial
|
|
information with this option.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" nowrap><em>20 (Process file)</em></td>
|
|
<td align="left" valign="top">A spooled file is available to print. The spooled
|
|
file name and other information are passed in the Option specific input
|
|
information parameter to the transform exit program. The transform exit program
|
|
decides whether to transform the data and sets the Transform file field in the
|
|
output information structure. The transform exit may pass data to the writer.
|
|
This data is treated as open time commands and is sent to the printer before
|
|
the spooled file is printed.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" nowrap><em>30 (Transform data)</em></td>
|
|
<td align="left" valign="top">The writer calls the transform exit program after
|
|
reading one or more buffers of data from the spooled file. The data is in the
|
|
Spooled file data buffer. This process is repeated for a spooled file until all
|
|
data has been processed. Alignment data could also be returned.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" nowrap><em>40 (End file)</em></td>
|
|
<td align="left" valign="top">The writer calls the transform exit to inform the
|
|
transform exit that all data for the spooled file has been passed. No data is
|
|
passed on this call. The transform exit may pass additional data to the writer
|
|
as an append to the end of the printed data.
|
|
|
|
<p>This option is used even if the transform exit did not transform the spooled
|
|
file.</p>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top" nowrap><em>50 (Terminate)</em></td>
|
|
<td align="left" valign="top">The writer is ending. The transform exit will do
|
|
cleanup.</td>
|
|
</tr>
|
|
</table><br>
|
|
</dd>
|
|
|
|
<dt><strong>Option specific input information to transform exit</strong></dt>
|
|
|
|
<dd>INPUT; CHAR(*)
|
|
|
|
<p>Information which is input to the transform exit program from the writer.
|
|
For the format and description of this information, see <a href=
|
|
"#HDRtopTINP">Option Specific Input Information to Transform Exit
|
|
Program</a>.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Length of option specific input information to transform
|
|
exit</strong></dt>
|
|
|
|
<dd>INPUT; BINARY(4)
|
|
|
|
<p>The length of the option specific input information specified in the Option
|
|
specific input information to transform exit program parameter.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Spooled file data buffer</strong></dt>
|
|
|
|
<dd>INPUT; CHAR(*)
|
|
|
|
<p>The spooled file data to be transformed by the transform exit program.</p>
|
|
|
|
<p>The space is created and destroyed by the writer.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Length of spooled file data buffer</strong></dt>
|
|
|
|
<dd>INPUT; BINARY(4)
|
|
|
|
<p>The length of the spooled file data specified in the Spooled file data
|
|
buffer parameter.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Option specific output information from transform
|
|
exit</strong></dt>
|
|
|
|
<dd>OUTPUT; CHAR(*)
|
|
|
|
<p>Information which is output from the transform exit program to the writer.
|
|
For the format and description of this information, see <a href=
|
|
"#HDRtopTOUT">Option Specific Output Information From Transform Exit</a>.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Length of option specific output information from transform
|
|
exit</strong></dt>
|
|
|
|
<dd>INPUT; BINARY(4)
|
|
|
|
<p>The size, in bytes, of the option specific output information buffer.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Length of option specific output information available from
|
|
transform exit</strong></dt>
|
|
|
|
<dd>OUTPUT; BINARY(4)
|
|
|
|
<p>The length of the option specific output information available. If this
|
|
length is less than or equal to the length of the option specific output
|
|
information, all available information has been returned. If this length is
|
|
greater than the length of the option specific output information, only data up
|
|
to the length provided is returned in the option specific output information
|
|
buffer.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Transformed data buffer</strong></dt>
|
|
|
|
<dd>OUTPUT; CHAR(*)
|
|
|
|
<p>Spooled file data which has been transformed by the transform exit program.
|
|
The data in this buffer will be sent by the writer to the printer. It will not
|
|
be validity checked or syntax checked by the writer. If the print data is not a
|
|
valid data stream for the device, errors will be returned from the device. The
|
|
data is processed by the writer as DEVTYPE(*USERASCII).</p>
|
|
|
|
<p>Alignment data, if requested, is also returned in the transformed data
|
|
buffer. The lengths and offsets of the alignment information is returned in the
|
|
option specific output information. For the format and description of this
|
|
information, see <a href="#HDRtopTOUT">Option Specific Output Information From
|
|
Transform Exit</a>.</p>
|
|
|
|
<p>The space is created and destroyed by the writer.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Length of transformed data buffer</strong></dt>
|
|
|
|
<dd>INPUT; BINARY(4)
|
|
|
|
<p>The size, in bytes, of the transformed data buffer.</p>
|
|
</dd>
|
|
|
|
<dt><strong>Length of transformed data available</strong></dt>
|
|
|
|
<dd>OUTPUT; BINARY(4)
|
|
|
|
<p>The length of the transformed data that is available to be returned in the
|
|
transformed data buffer. If this length is less than or equal to the length of
|
|
the transform data buffer, all available information has been returned. If this
|
|
length is greater than the length of the transformed data buffer, only data up
|
|
to the length provided was returned in the transformed data buffer.</p>
|
|
</dd>
|
|
</dl>
|
|
|
|
<p><a href="#TBLA1">Parameters Used by the Printer Writer or Transform Exit
|
|
Program</a> presents, in the same order, all the required parameters previously
|
|
described. Each entry indicates if a parameter is to be used by the writer or
|
|
transform exit program. Possible values are Y and N.<br>
|
|
</p>
|
|
|
|
<p><strong><a name="TBLA1">Parameters Used by the Printer Writer or Transform
|
|
Exit Program</a></strong></p>
|
|
|
|
<table border cellpadding="5">
|
|
<!-- cols="20 10 10 10 10 10 30" -->
|
|
<tr>
|
|
<th align="left" valign="BOTTOM">Parameter</th>
|
|
<th align="center" valign="BOTTOM">Initialize (10)</th>
|
|
<th align="center" valign="BOTTOM">Process file (20)</th>
|
|
<th align="center" valign="BOTTOM">Transform data (30)</th>
|
|
<th align="center" valign="BOTTOM">End file (40)</th>
|
|
<th align="center" valign="BOTTOM">Terminate (50)</th>
|
|
<th align="left" valign="BOTTOM">Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Process option</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">30</td>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">50</td>
|
|
<td align="left" valign="top"><br>
|
|
</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Option specific input information to transform
|
|
exit</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">See description of this parameter.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of option specific input information</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">Length of option specific input information</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Spooled file data buffer</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Contains data only on spooled data to transform
|
|
option.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of spooled file data buffer</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The length of spooled data buffer.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Option specific output information from transform
|
|
exit</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">See description of this parameter.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of option specific output information</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">Length of option specific output information</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of option specific output information
|
|
available</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">The number of bytes of option specific output
|
|
information that is available. If this is greater than the length of the
|
|
buffer, only information that can fit in the option specific output information
|
|
buffer will be returned.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Transformed data buffer</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">This buffer can contain data to send to the
|
|
device before the transformed data (Start of file option) or after the
|
|
transformed data (End of file option), as well as transformed data (Spooled
|
|
data to transform option).</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of transformed data buffer</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The size, in bytes, of the transformed data
|
|
buffer.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of transformed data available</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The number of bytes of transformed data that is
|
|
available.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="HDRtopTINP">Option Specific Input Information to Transform Exit
|
|
Program</a></h3>
|
|
|
|
<p>The following table shows the structure for the option specific information
|
|
input parameter. For more details about the fields in the following table see,
|
|
<a href="#HDRTFIELDI">Field Descriptions</a>.</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="BOTTOM" colspan="2">Offset</th>
|
|
<th align="left" valign="BOTTOM" rowspan="2">Type</th>
|
|
<th align="left" valign="BOTTOM" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="BOTTOM">Dec</th>
|
|
<th align="center" valign="BOTTOM">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">CHAR(16)</td>
|
|
<td align="left" valign="top" width="60%">Writer handle</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Writer name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">26</td>
|
|
<td align="center" valign="top">1A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Printer device name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">36</td>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Writer output queue name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">46</td>
|
|
<td align="center" valign="top">2E</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Writer output queue library name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="center" valign="top">38</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Writer message queue name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">66</td>
|
|
<td align="center" valign="top">42</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Writer message queue library name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">76</td>
|
|
<td align="center" valign="top">4C</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">86</td>
|
|
<td align="center" valign="top">56</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Spooled file handle</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">96</td>
|
|
<td align="center" valign="top">60</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Internal job identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="center" valign="top">70</td>
|
|
<td align="left" valign="top">CHAR(16)</td>
|
|
<td align="left" valign="top">Internal spooled file identifier</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">128</td>
|
|
<td align="center" valign="top">80</td>
|
|
<td align="left" valign="top">CHAR(26)</td>
|
|
<td align="left" valign="top">Qualified job name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">154</td>
|
|
<td align="center" valign="top">9A</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Spooled file name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">164</td>
|
|
<td align="center" valign="top">A4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Spooled file number</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">168</td>
|
|
<td align="center" valign="top">A8</td>
|
|
<td align="left" valign="top">CHAR(12)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">180</td>
|
|
<td align="center" valign="top">B4</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">End file type</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">184</td>
|
|
<td align="center" valign="top">B8</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Termination type</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">188</td>
|
|
<td align="center" valign="top">BC</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Current writer form type</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">198</td>
|
|
<td align="center" valign="top">C6</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Return alignment data</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">199</td>
|
|
<td align="center" valign="top">C7</td>
|
|
<td align="left" valign="top">CHAR(5)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">204</td>
|
|
<td align="center" valign="top">CC</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Number of complete pages</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">208</td>
|
|
<td align="center" valign="top">D0</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Workstation customizing object name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">218</td>
|
|
<td align="center" valign="top">DA</td>
|
|
<td align="left" valign="top">CHAR(10)</td>
|
|
<td align="left" valign="top">Workstation customizing object library</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">228</td>
|
|
<td align="center" valign="top">E4</td>
|
|
<td align="left" valign="top">CHAR(15)</td>
|
|
<td align="left" valign="top">Manufacturer type and model</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">
|
|
243</td>
|
|
<td align="center" valign="top">F3</td>
|
|
<td align="left" valign="top">CHAR(31)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">274</td>
|
|
<td align="center" valign="top">112</td>
|
|
<td align="left" valign="top">CHAR(8)</td>
|
|
<td align="left" valign="top">Job system name</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">282</td>
|
|
<td align="center" valign="top">11A</td>
|
|
<td align="left" valign="top">CHAR(7)</td>
|
|
<td align="left" valign="top">Spooled file create date</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">289</td>
|
|
<td align="center" valign="top">121</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">290</td>
|
|
<td align="center" valign="top">122</td>
|
|
<td align="left" valign="top">CHAR(6)</td>
|
|
<td align="left" valign="top">Spooled file create time</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="HDRTFIELDI">Field Descriptions</a></h3>
|
|
|
|
<p><strong>Current writer form type.</strong> The form type the writer is
|
|
currently printing.</p>
|
|
|
|
<p>This field is set to blanks when the transform exit program is called from
|
|
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
|
|
|
|
<p><strong>End file type.</strong> The type of ending for the file.</p>
|
|
|
|
<p>Possible values are:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>1 (normal)</em></td>
|
|
<td align="left" valign="top">Processing of the file ends normally.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>2 (immediate)</em></td>
|
|
<td align="left" valign="top">Processing of the file ends immediately.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>3 (page end)</em></td>
|
|
<td align="left" valign="top">Processing of the file ends at the end of the
|
|
current page.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Internal job identifier.</strong> The internal job identifier of the
|
|
job that created the spooled file.</p>
|
|
|
|
<p><strong>Internal spooled file identifier.</strong> The internal spooled file
|
|
identifier of the spooled file being processed.</p>
|
|
|
|
<p><strong>Job system
|
|
name.</strong> The name of the system where the job that created the spooled
|
|
file ran. </p>
|
|
|
|
<p><strong>Manufacturer type and model.</strong> The manufacturer, type and
|
|
model for a printer using transform support.</p>
|
|
|
|
<p><strong>Number of complete pages.</strong> The number of complete pages that
|
|
are contained in the data to be transformed.</p>
|
|
|
|
<p><strong>Printer device name.</strong> The name of the printer device.</p>
|
|
|
|
<p><strong>Qualified job name.</strong> The qualified job name of the job that
|
|
created the spooled file.</p>
|
|
|
|
<p><strong>Reserved.</strong> This field is reserved.</p>
|
|
|
|
<p><strong>Return alignment data.</strong> Whether the transform should return
|
|
data to the caller which can be used for alignment purposes.</p>
|
|
|
|
<p>Possible values are:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="5 95" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">Do not return alignment information.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>1</em></td>
|
|
<td align="left" valign="top">Return alignment information.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Spooled file create
|
|
date.</strong> The date the spooled file was created on the system in the
|
|
CYYMMDD format. See field Date file opened in API QUSRSPLA under field
|
|
descriptions for more information on the date format.</p>
|
|
|
|
<p><strong>Spooled file create time.</strong> The time the spooled file was
|
|
created on the system in the HHMMSS format. See field Time file opened in API
|
|
QUSRSPLA under field descriptions for more information on the time format.</p>
|
|
|
|
<p><strong>Spooled file handle.</strong> The handle for the spooled file to be
|
|
printed.</p>
|
|
|
|
<p>This field is set to blanks when the transform exit program is called from
|
|
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
|
|
|
|
<p><strong>Spooled file name.</strong> The name of the spooled file being
|
|
processed.</p>
|
|
|
|
<p><strong>Spooled file number.</strong> The number of the spooled file being
|
|
processed.</p>
|
|
|
|
<p><strong>Termination type.</strong> The type of termination by the
|
|
writer:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>1 (normal)</em></td>
|
|
<td align="left" valign="top">The writer ended normally.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>2 (immediate)</em></td>
|
|
<td align="left" valign="top">The writer ended immediately.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>3 (abnormal)</em></td>
|
|
<td align="left" valign="top">The writer ended abnormally.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Workstation customizing object library.</strong> The library
|
|
containing the workstation customizing object.</p>
|
|
|
|
<p><strong>Workstation customizing object name (WSCST).</strong> The name of an
|
|
object that consists of a table of attributes used to customize a given ASCII
|
|
device.</p>
|
|
|
|
<p><strong>Writer handle.</strong> The handle to the writer job.</p>
|
|
|
|
<p>This field is set to blanks when the transform exit program is called from
|
|
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
|
|
|
|
<p><strong>Writer message queue library name.</strong> The name of the library
|
|
in which the writer message queue resides.</p>
|
|
|
|
<p>This field is set to blanks when the transform exit program is called from
|
|
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
|
|
|
|
<p><strong>Writer message queue name.</strong> The name of the message queue to
|
|
which the writer issues messages.</p>
|
|
|
|
<p>This field is set to blanks when the transform exit program is called from
|
|
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
|
|
|
|
<p><strong>Writer name.</strong> The name of the writer.</p>
|
|
|
|
<p>This field is set to blanks when the transform exit program is called from
|
|
the Send TCP/IP Spooled File (SNDTCPSPLF or LPR) command.</p>
|
|
|
|
<p><strong>Writer output queue library name.</strong> The name of the library
|
|
in which the output queue resides.</p>
|
|
|
|
<p><strong>Writer output queue name.</strong> The name of the output queue from
|
|
which the writer is processing spooled files.</p>
|
|
|
|
<p><a href="#TBLA2">Fields Used by the Option Specific Input Information
|
|
Parameter</a> presents, in the same order, all the fields previously described
|
|
in the option specific input information table. Each entry indicates if a field
|
|
is defined for a particular option. Possible values are Y and N.<br>
|
|
</p>
|
|
|
|
<p><strong><a name="TBLA2">Fields Used by the Option Specific Input Information
|
|
Parameter</a></strong></p>
|
|
|
|
<table border cellpadding="5">
|
|
<!-- cols="20 10 10 10 10 10 30" -->
|
|
<tr>
|
|
<th align="left" valign="BOTTOM">Field</th>
|
|
<th align="center" valign="BOTTOM">Initialize (10)</th>
|
|
<th align="center" valign="BOTTOM">Process file (20)</th>
|
|
<th align="center" valign="BOTTOM">Transform data (30)</th>
|
|
<th align="center" valign="BOTTOM">End file (40)</th>
|
|
<th align="center" valign="BOTTOM">Terminate (50)</th>
|
|
<th align="left" valign="BOTTOM">Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Writer handle</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">For use with writer APIs.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Writer name</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">Name specified on STRPRTWTR command.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Printer device name</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">Device name of the printer.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Writer output queue name</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">The name of the output queue that the writer is
|
|
processing.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Writer output queue library name</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">The library in which the writer output queue
|
|
resides.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Writer message queue name</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">Name of the message queue for the started
|
|
writer.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Writer message queue library name</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">Name of the library in which the message queue
|
|
resides.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Reserved</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Reserved to preserve consistency with the print
|
|
driver exit.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Spooled file handle</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">For use with future APIs.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Internal job identifier</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">For use with existing Spool APIs.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Internal spooled file identifier</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">For use with existing Spool APIs.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Qualified job name</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Job owning spooled file</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Spooled file name</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Name of spooled file being processed</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Spooled file number</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Number of spooled file being processed.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Reserved</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Reserved to preserve consistency with the print
|
|
driver exit.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">End file type</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Type of end for spooled file.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Termination type</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">The type of termination by the writer.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Current writer form type</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Form type writer is currently processing.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Return alignment information</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Returns alignment information along with
|
|
transformed data.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Reserved</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Reserved to preserve consistency with the print
|
|
driver exit.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Number of complete pages</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Specifies the number of complete pages in the
|
|
data to be transformed.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Workstation customizing object name</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The name of an object that consists of a table of
|
|
attributes used to customize a given ASCII device.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Workstation customizing object library</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The library containing the workstation
|
|
customization object.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Manufacturer type and model</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The manufacturer, type and model for a printer
|
|
using transform support.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">
|
|
Reserved</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Reserved to maintain compatibility with the Host
|
|
Print Transform (QWPZHPTR) API.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Job system name</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Name of system job is located.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Spooled file create date</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Date the spooled file was created.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Reserved</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Reserved to maintain compatibility with the Host
|
|
Print Transform (QWPZHPTR) API.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Spooled file create time</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Time the spooled file was created.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="HDRtopTOUT">Option Specific Output Information From Transform
|
|
Exit</a></h3>
|
|
|
|
<p>The following table shows the structure for the option specific information
|
|
output parameter. This structure is used to pass information from the transform
|
|
exit program to the writer. For more details about the fields in the following
|
|
table see, <a href="#HDRTFIELDO">Field Descriptions</a>.<br>
|
|
</p>
|
|
|
|
<table border width="80%">
|
|
<tr>
|
|
<th align="center" valign="BOTTOM" colspan="2">Offset</th>
|
|
<th align="left" valign="BOTTOM" rowspan="2">Type</th>
|
|
<th align="left" valign="BOTTOM" rowspan="2">Field</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<th align="center" valign="BOTTOM">Dec</th>
|
|
<th align="center" valign="BOTTOM">Hex</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="center" valign="top" width="10%">0</td>
|
|
<td align="left" valign="top" width="20%">BINARY(4)</td>
|
|
<td align="left" valign="top" width="60%">Return code</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="center" valign="top">4</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Transform file</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">5</td>
|
|
<td align="center" valign="top">5</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Pass input data</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">6</td>
|
|
<td align="center" valign="top">6</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Send single copy</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">7</td>
|
|
<td align="center" valign="top">7</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Send open time commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="center" valign="top">8</td>
|
|
<td align="left" valign="top">CHAR(1)</td>
|
|
<td align="left" valign="top">Done transforming file</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">9</td>
|
|
<td align="center" valign="top">9</td>
|
|
<td align="left" valign="top">CHAR(3)</td>
|
|
<td align="left" valign="top">Reserved</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">12</td>
|
|
<td align="center" valign="top">C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Offset to vertical positioning commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">16</td>
|
|
<td align="center" valign="top">10</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of vertical positioning commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="center" valign="top">14</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Offset to print data</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="center" valign="top">18</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of print data</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="center" valign="top">1C</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Offset to carriage return commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">32</td>
|
|
<td align="center" valign="top">20</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of carriage return commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">36</td>
|
|
<td align="center" valign="top">24</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Offset to form feed commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">40</td>
|
|
<td align="center" valign="top">28</td>
|
|
<td align="left" valign="top">BINARY(4)</td>
|
|
<td align="left" valign="top">Length of form feed commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top">44</td>
|
|
<td align="center" valign="top">2C</td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Carriage return commands</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="center" valign="top"> </td>
|
|
<td align="center" valign="top"> </td>
|
|
<td align="left" valign="top">CHAR(*)</td>
|
|
<td align="left" valign="top">Form feed commands</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<br>
|
|
<h3><a name="HDRTFIELDO">Field Descriptions</a></h3>
|
|
|
|
<p><strong>Carriage return commands.</strong> The carriage return commands
|
|
contain the data stream commands which can be used to do end of line processing
|
|
for alignment purposes.</p>
|
|
|
|
<p><strong>Done transforming file.</strong> Indicates the transform exit
|
|
program requires no further data to process the current file. This field is
|
|
ignored when the pass input data field is set to 0.</p>
|
|
|
|
<p>Possible values are:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="5 95" -->
|
|
<tr>
|
|
<td align="left" valign="top">0</td>
|
|
<td align="left" valign="top">Continue calling the transform exit program with
|
|
the transform data (30) option.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">1</td>
|
|
<td align="left" valign="top">The next call to the transform exit program will
|
|
be with the end file (40) option.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Form feed commands.</strong> The form feed commands contain the data
|
|
stream commands which can be used to do end of page processing for alignment
|
|
purposes.</p>
|
|
|
|
<p><strong>Length of carriage return commands.</strong> The length, in bytes,
|
|
of the carriage return commands. The carriage return commands are returned in
|
|
the output specific information.</p>
|
|
|
|
<p><strong>Length of form feed commands.</strong> The length, in bytes, of the
|
|
form feed commands. The form feed commands are returned in the output specific
|
|
information.</p>
|
|
|
|
<p><strong>Length of print data.</strong> The length, in bytes, of the print
|
|
data for the first line of data on the page. This includes any horizontal
|
|
positioning which is done in the first line.</p>
|
|
|
|
<p><strong>Length of vertical positioning commands.</strong> The length, in
|
|
bytes, of the vertical positioning commands that are returned in the
|
|
transformed data buffer.</p>
|
|
|
|
<p><strong>Offset to carriage return commands.</strong> Offset to the carriage
|
|
return commands in the output specific information. The carriage return
|
|
commands contain the data stream commands which can be used to do end of line
|
|
processing for alignment purposes.</p>
|
|
|
|
<p><strong>Offset to form feed commands.</strong> Offset to the form feed
|
|
commands in the output specific information. The form feed commands contain
|
|
data stream commands which can be used to do end of page processing for
|
|
alignment purposes.</p>
|
|
|
|
<p><strong>Offset to print data.</strong> Offset to the first line of the print
|
|
data for the page in the transformed data buffer. This first line can be
|
|
printed for alignment purposes.</p>
|
|
|
|
<p><strong>Offset to vertical positioning commands.</strong> Offset to the
|
|
vertical positioning commands in the transformed data buffer.</p>
|
|
|
|
<p><strong>Pass input data.</strong> Whether the writer passes the input data
|
|
to the transform exit program.</p>
|
|
|
|
<p>Possible values are:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="5 95" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">The writer will pass the input data to the
|
|
transform exit program.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>1</em></td>
|
|
<td align="left" valign="top">The writer will not pass the input data to the
|
|
transform exit program.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Return code.</strong> The return code returned by the transform exit
|
|
after each call.</p>
|
|
|
|
<p>Possible values are:</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="15 85" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">No error occurred.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>non zero</em></td>
|
|
<td align="left" valign="top">An error occurred.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p>When the return code indicates that an error has occurred, the following is
|
|
performed by the writer:</p>
|
|
|
|
<ul>
|
|
<li>Initialize error
|
|
|
|
<p>The next call to the transform exit program is the terminate process
|
|
option.</p>
|
|
</li>
|
|
|
|
<li>Start of file error
|
|
|
|
<p>The next call to the transform exit program is the end file process
|
|
option.</p>
|
|
</li>
|
|
|
|
<li>Spooled file data transform error
|
|
|
|
<p>The next call to the transform exit program is the end file process
|
|
option.</p>
|
|
</li>
|
|
|
|
<li>End of file error
|
|
|
|
<p>The next call to the transform exit program is the terminate process</p>
|
|
</li>
|
|
|
|
<li>Terminate
|
|
|
|
<p>There are no additional calls to the transform exit program for this printer
|
|
writer.</p>
|
|
</li>
|
|
</ul>
|
|
|
|
<p><strong>Send open time commands.</strong> Indicates if the open time
|
|
commands returned by the transform exit program on the process file (20) call
|
|
are sent before the spooled file prints.</p>
|
|
|
|
<p>This value is ignored when transform file is set to 0 or 1. In this case,
|
|
the data returned on the process file (20) call will always be sent before the
|
|
spooled file prints.</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="5 95" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">The printer writer decides if the open time
|
|
commands should be sent</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>1</em></td>
|
|
<td align="left" valign="top">Send the open time commands before this spooled
|
|
file prints. The commands vary with the spooled file attributes.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>2</em></td>
|
|
<td align="left" valign="top">Do not send any open time commands.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Send single copy.</strong> Indicates if the transform exit program
|
|
is called with process options 20, 30, and 40 for each copy requested.</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="5 95" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">The transform exit program is called for each
|
|
copy requested to print.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>1</em></td>
|
|
<td align="left" valign="top">The transform exit program is called with the 20,
|
|
30, and 40 process option sequence only once for each spooled file.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><strong>Transform file.</strong> Whether the spooled file data will be
|
|
transformed.</p>
|
|
|
|
<table cellpadding="5">
|
|
<!-- cols="5 95" -->
|
|
<tr>
|
|
<td align="left" valign="top"><em>0</em></td>
|
|
<td align="left" valign="top">The spooled file data cannot be transformed.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>1</em></td>
|
|
<td align="left" valign="top">The spooled file data will be transformed.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top"><em>2</em></td>
|
|
<td align="left" valign="top">The spooled file data is in its final form.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p><a href="#TBLA3">Fields Used by the Option Specific Output Information
|
|
Parameter</a> presents, in the same order, all the fields in previously
|
|
described in the option specific output information table. Each entry indicates
|
|
if a field is used with a particular process option. Possible values are Y and
|
|
N.<br>
|
|
</p>
|
|
|
|
<p><strong><a name="TBLA3">Fields Used by the Option Specific Output
|
|
Information Parameter</a></strong></p>
|
|
|
|
<table border cellpadding="5">
|
|
<!-- cols="20 10 10 10 10 10 30" -->
|
|
<tr>
|
|
<th align="left" valign="BOTTOM">Field</th>
|
|
<th align="center" valign="BOTTOM">Initialize (10)</th>
|
|
<th align="center" valign="BOTTOM">Process file (20)</th>
|
|
<th align="center" valign="BOTTOM">Transform data (30)</th>
|
|
<th align="center" valign="BOTTOM">End file (40)</th>
|
|
<th align="center" valign="BOTTOM">Terminate (50)</th>
|
|
<th align="left" valign="BOTTOM">Description</th>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Return code</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="left" valign="top">Indicates if the transform exit program was
|
|
successful in completing the specified option.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Transform file</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Allows the transform exit program to end the
|
|
processing of a file, with either the Process File option.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Pass input data</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Allows the transform exit program to specify
|
|
whether the writer will provide the input data or the transform exit program
|
|
will read the data directly from the file.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Send single copy</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Allows the transform exit program to convert a
|
|
file once, even if there are multiple copies requested. In the case of multiple
|
|
copies requested, the transform exit program inserts the proper commands to
|
|
print multiple copies.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Send open time commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Allows the transform exit program to specify if
|
|
the system-generated initial (open time) commands are sent to the printer
|
|
before the file prints.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Done transforming file</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">For the spooled file currently being processed,
|
|
it allows the transform exit program to stop the writer from calling the
|
|
transform exit program with any additional process option 30 calls.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Reserved</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Reserved to preserve consistency with the print
|
|
driver exit.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Offset to vertical positioning commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The offset to the vertical positioning commands
|
|
in the transformed data buffer. When alignment information has been requested,
|
|
vertical positional commands are also returned in the transformed data
|
|
buffer.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of vertical positioning commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The length of the vertical positioning commands
|
|
that are returned the transformed data buffer. This can be used in alignment
|
|
processing.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Offset to print data</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The offset to the print data for the first line
|
|
of the page. This can be used for alignment processing.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of print data</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The length of print data for the first line of
|
|
data for a page. This can be used for alignment processing.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Offset of carriage return commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Offset to the carriage return commands in the
|
|
output specific information. The carriage return commands are data stream
|
|
commands that can be used to do end of line processing for alignment
|
|
purposes.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of carriage return commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The length of the carriage return commands.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Offset of form feed commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">Offset to the form feed commands in the output
|
|
specific information. The form feed commands are data stream commands that can
|
|
be used to do end of page processing for alignment purposes.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Length of form feed commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The length of the form feed commands.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Carriage return commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The carriage return commands are data stream
|
|
commands that can be used to do end of line processing for alignment
|
|
purposes.</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td align="left" valign="top">Form feed commands</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">Y</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="center" valign="top">N</td>
|
|
<td align="left" valign="top">The form feed commands are data stream commands
|
|
that can be used to do end of page processing for alignment purposes.</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<br>
|
|
<hr>
|
|
Exit program introduced: V3R7
|
|
|
|
<hr>
|
|
<table cellpadding="2" cellspacing="2" align="center">
|
|
<tr align="center">
|
|
<td valign="middle" align="center"><a href="#Top_Of_Page">Top</a> | <a href=
|
|
"print1.htm">Print APIs</a> | <a href="aplist.htm">APIs by
|
|
category</a></td>
|
|
</tr>
|
|
</table>
|
|
</body>
|
|
</html>
|
|
|