ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/qimgtran.htm

1347 lines
38 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!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>Image Print Transform Exit Program</title>
<!-- Begin Header Records -->
<!-- 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. -->
<!-- Created for V5R1-->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!-- Edited by Kersten Nov 2001 -->
<!-- End Header Records -->
<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>Image Print Transform Exit Program</h2>
<div class="box" style="width: 70%;">
<br>
&nbsp;&nbsp;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%">Transform values</td>
<td align="left" valign="top" width="20%">Input</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Process values</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Input data stream</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Output data stream</td>
<td align="left" valign="top">Output</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Exit Point Name: QIBM_QIMG_TRANSFORMS<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Exit Point Format Name: <a href="#HDRXFRM0100">XFRM0100</a><br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;QSYSINC Member Name: eimgeph<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Image Print Transform (IPT) exit point can be used to transform user
ASCII data streams for the following reasons:</p>
<ul>
<li>Input data stream formats not supported directly by IPT.</li>
<li>Output data stream formats not supported directly by IPT.</li>
</ul>
<p>An exit program that takes the requested data stream format as input and
produces the requested output data stream format must be registered to this
exit point by using the Add Exit Program (QUSADDEP, QusAddExitProgram) API or
the ADDEXITPGM command.</p>
<p>Image Print Transform (IPT) tries to determine the input data stream format
and the output data stream format. Once the two data stream formats have been
determined, the Retrieve Exit Information (QUSRTVEI,
QusRetrieveExitInformation) API is called to determine if any exit programs
have been registered that support the specified input and output data stream
format combination. The following input and output data stream combinations are
used in the exit program data field of the selection criteria for the API:</p>
<table border cellpadding="5">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Input</th>
<th align="left" valign="top">Output</th>
</tr>
<tr>
<td align="left" valign="top">BMP</td>
<td align="left" valign="top">AFPDS</td>
</tr>
<tr>
<td align="left" valign="top">BMP</td>
<td align="left" valign="top">PCL</td>
</tr>
<tr>
<td align="left" valign="top">BMP</td>
<td align="left" valign="top">PS</td>
</tr>
<tr>
<td align="left" valign="top">GIF</td>
<td align="left" valign="top">AFPDS</td>
</tr>
<tr>
<td align="left" valign="top">GIF</td>
<td align="left" valign="top">PCL</td>
</tr>
<tr>
<td align="left" valign="top">GIF</td>
<td align="left" valign="top">PS</td>
</tr>
<tr>
<td align="left" valign="top">PCL</td>
<td align="left" valign="top">AFPDS</td>
</tr>
<tr>
<td align="left" valign="top">PCL</td>
<td align="left" valign="top">PS</td>
</tr>
<tr>
<td align="left" valign="top">PDF</td>
<td align="left" valign="top">AFPDS</td>
</tr>
<tr>
<td align="left" valign="top">PDF</td>
<td align="left" valign="top">PCL</td>
</tr>
<tr>
<td align="left" valign="top">PDF</td>
<td align="left" valign="top">PS</td>
</tr>
<tr>
<td align="left" valign="top">PS</td>
<td align="left" valign="top">AFPDS</td>
</tr>
<tr>
<td align="left" valign="top">PS</td>
<td align="left" valign="top">PCL</td>
</tr>
<tr>
<td align="left" valign="top">TIF</td>
<td align="left" valign="top">AFPDS</td>
</tr>
<tr>
<td align="left" valign="top">TIF</td>
<td align="left" valign="top">PCL</td>
</tr>
<tr>
<td align="left" valign="top">TIF</td>
<td align="left" valign="top">PS</td>
</tr>
<tr>
<td align="left" valign="top">UNKNOWN</td>
<td align="left" valign="top">UNKNOWN</td>
</tr>
</table>
<p><strong>Note:</strong> If the input or output data stream format is
unrecognized, "UNKNOWN UNKNOWN" is used in the exit program data field of the
selection criteria for the Retrieve Exit Information (QUSRTVEI,
QusRetrieveExitInformation) API. IPT will query up to the first ten registered
exit programs using the "UNKNOWN UNKNOWN" value in the data field in an attempt
to find an exit program that can successfully transform the input data stream
format to the requested output data stream format. If, after querying up to ten
exit programs, an exit program is not found that can handle the transform, IPT
returns to the caller, stating it cannot transform the image.</p>
<p>IPT queries the exit point to determine if one matches both the requested
input and output data stream formats. If one or more is found, IPT then queries
only the first exit program listed in the Retrieve Exit Information (QUSRTVEI,
QusRetrieveExitInformation) API response to see if it can handle the requested
transform, using a value of 20 (process file) in the process option field of
the process values parameter. If the exit program can handle the transform, it
is called again with the actual transform request. If there is no exit program
registered with the specified input and output data stream formats (that is,
something other than "UNKNOWN UNKNOWN" in the data field area), or if there are
no registered exit programs that can handle the requested transform, IPT then
queries the first ten exit programs registered using "UNKNOWN UNKNOWN" in the
data field area and handles it as described above. If there are no exit
programs found that can handle the transform, IPT handles the request as
normal, by either transforming it if it is able to or notifying the caller that
the data cannot be converted.</p>
<p>See the <a href="qusaddep.htm">Add Exit Program</a> (QUSADDEP,
QusAddExitProgram) API or the <a href="../cl/addexitpgm.htm">Add Exit Program (ADDEXITPGM)</a>
command for more information.</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 Parameters</h3>
<dl>
<dt><strong>Transform values</strong></dt>
<dd>INPUT; CHAR(*)
<p>Conversion information that is input to the exit program from Image Print
Transform. For the format and description of this information, see <a href=
"#HDRTRANPRM">Transform Values to Exit Program</a>.</p>
</dd>
<dt><strong>Process values</strong></dt>
<dd>I/O; CHAR(*)
<p>Process information that is input to the exit program from Image Print
Transform. In addition, there is process information passed back from the exit
program. For the format and description of this information, see <a href=
"#IPTPPEP">Process Values to Exit Program</a>.</p>
</dd>
<dt><strong>Input Data Stream</strong></dt>
<dd>INPUT; CHAR(*)
<p>The data stream to be
transformed by the exit program. The input data stream is broken into
manageable sized buffers and sent to the exit program one at a time.</p>
</dd>
<dt><strong>Output Data Stream</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The data stream that has been transformed by the exit program. If the data
stream is larger than the buffer sent, the exit program sends it back in a
buffer at a time and IPT puts it back together.</p>
</dd>
</dl>
<br>
<h3><a name="HDRTRANPRM">Transform Values to Exit Program</a></h3>
<h3><a name="HDRXFRM0100">XFRM0100 Format</a></h3>
<p>The following table shows the format of the XFRM0100 structure for the
transform values parameter. For more details about the fields in the following
table, see <a href="#IPTFD01">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(8)</td>
<td align="left" valign="top" width="60%">Structure version</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Structure length</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">Input file format</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">Output file format</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">Invert image</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">Input decompression value</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">Output compression value</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">Output horizontal resolution</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">Output vertical resolution</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">Convert color to gray</td>
</tr>
<tr>
<td align="center" valign="top">44</td>
<td align="center" valign="top">2C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Convert gray to black and white</td>
</tr>
<tr>
<td align="center" valign="top">48</td>
<td align="center" valign="top">30</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Output page orientation</td>
</tr>
<tr>
<td align="center" valign="top">52</td>
<td align="center" valign="top">34</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Horizontal justification from left border</td>
</tr>
<tr>
<td align="center" valign="top">56</td>
<td align="center" valign="top">38</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Vertical justification from top border</td>
</tr>
<tr>
<td align="center" valign="top">60</td>
<td align="center" valign="top">3C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Bits per pixel</td>
</tr>
<tr>
<td align="center" valign="top">64</td>
<td align="center" valign="top">40</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Output page size</td>
</tr>
<tr>
<td align="center" valign="top">68</td>
<td align="center" valign="top">44</td>
<td align="left" valign="top">PACKED(15,5)</td>
<td align="left" valign="top">Paper width</td>
</tr>
<tr>
<td align="center" valign="top">76</td>
<td align="center" valign="top">4C</td>
<td align="left" valign="top">PACKED(15,5)</td>
<td align="left" valign="top">Paper length</td>
</tr>
<tr>
<td align="center" valign="top">84</td>
<td align="center" valign="top">54</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Left unprintable area</td>
</tr>
<tr>
<td align="center" valign="top">88</td>
<td align="center" valign="top">58</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Right unprintable area</td>
</tr>
<tr>
<td align="center" valign="top">92</td>
<td align="center" valign="top">5C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Top unprintable area</td>
</tr>
<tr>
<td align="center" valign="top">96</td>
<td align="center" valign="top">60</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Bottom unprintable area</td>
</tr>
<tr>
<td align="center" valign="top">100</td>
<td align="center" valign="top">64</td>
<td align="left" valign="top">CHAR(12)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">112</td>
<td align="center" valign="top">70</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Spooled file job name</td>
</tr>
<tr>
<td align="center" valign="top">122</td>
<td align="center" valign="top">7A</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Spooled file user name</td>
</tr>
<tr>
<td align="center" valign="top">132</td>
<td align="center" valign="top">84</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Spooled file job number</td>
</tr>
<tr>
<td align="center" valign="top">138</td>
<td align="center" valign="top">8A</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">148</td>
<td align="center" valign="top">94</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">152</td>
<td align="center" valign="top">98</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">160</td>
<td align="center" valign="top">A0</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">167</td>
<td align="center" valign="top">A7</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">168</td>
<td align="center" valign="top">A8</td>
<td align="left" valign="top">CHAR(6)</td>
<td align="left" valign="top">Spooled file create time</td>
</tr>
<tr>
<td align="center" valign="top">174</td>
<td align="center" valign="top">AE</td>
<td align="left" valign="top">CHAR(2)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">176</td>
<td align="center" valign="top">B0</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">186</td>
<td align="center" valign="top">BA</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">196</td>
<td align="center" valign="top">C4</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">212</td>
<td align="center" valign="top">D4</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">228</td>
<td align="center" valign="top">E4</td>
<td align="left" valign="top">CHAR(28)</td>
<td align="left" valign="top">Reserved</td>
</tr>
</table>
<br>
<h3><a name="IPTFD01">Field Descriptions</a></h3>
<p><strong>Bits per pixel.</strong> Number of bits per pixel to be used in the
output image.</p>
<p> Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 90" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Black and white output</td>
</tr>
<tr>
<td align="left" valign="top"><em>8</em></td>
<td align="left" valign="top">Grayscale output</td>
</tr>
<tr>
<td align="left" valign="top"><em>24</em></td>
<td align="left" valign="top">Color output</td>
</tr>
</table>
<p><strong>Bottom unprintable area.</strong> The number of pixels of
unprintable area on the bottom border.</p>
<p><strong>Convert color to gray.</strong> Whether to reduce the output data
stream's pixel information content from color to gray. If this field is set to
No, the pixel information content of the output data stream will be that of the
input data stream. Setting this to Yes reduces the output pixel information
content to gray scale if it would have been color and will otherwise have no
effect.</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">No</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Yes</td>
</tr>
</table>
<p><strong>Convert gray to black and white.</strong> Whether to reduce the
output data stream's pixel information content from gray to black and white. If
this field is set to No, the pixel information content of the output data
stream will be that of the input data stream. Setting this to Yes forces the
output to black and white.</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">No</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Yes</td>
</tr>
</table>
<p><strong>Horizontal justification from left border.</strong> Distance in
pixels from left border to justify the image.</p>
<p><strong>Input decompression value.</strong> Compression algorithm used on
input data stream.</p>
<p>Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">None</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">CCITT Group 3 Fax</td>
</tr>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">CCITT Group 4 Fax</td>
</tr>
<tr>
<td align="left" valign="top"><em>5</em></td>
<td align="left" valign="top">LZW</td>
</tr>
<tr>
<td align="left" valign="top"><em>6</em></td>
<td align="left" valign="top">JPEG</td>
</tr>
<tr>
<td align="left" valign="top"><em>7</em></td>
<td align="left" valign="top">Packbits</td>
</tr>
<tr>
<td align="left" valign="top"><em>8</em></td>
<td align="left" valign="top">IBM MMR (modified-modified read)</td>
</tr>
<tr>
<td align="left" valign="top"><em>10</em></td>
<td align="left" valign="top">BMP-RLE</td>
</tr>
</table>
<p><strong>Input file format.</strong> Format of the input print or image data
stream. Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">TIFF (Tag Image File Format)</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">BMP (Bitmap)</td>
</tr>
<tr>
<td align="left" valign="top"><em>6</em></td>
<td align="left" valign="top">GIF (Graphics Interchange Format)</td>
</tr>
<tr>
<td align="left" valign="top"><em>20</em></td>
<td align="left" valign="top">AFPDS</td>
</tr>
<tr>
<td align="left" valign="top"><em>22</em></td>
<td align="left" valign="top">PCL</td>
</tr>
<tr>
<td align="left" valign="top"><em>23</em></td>
<td align="left" valign="top">PostScript</td>
</tr>
<tr>
<td align="left" valign="top"><em>25</em></td>
<td align="left" valign="top">PDF</td>
</tr>
<tr>
<td align="left" valign="top"><em>99</em></td>
<td align="left" valign="top">Unknown</td>
</tr>
</table>
<p><strong>Internal job
identifier.</strong> The internal job identifier of the job that created the
spooled file. This field will be set to blanks when the input stream is not a
spooled file.</p>
<p><strong>Internal spooled file identifier.</strong> The internal spooled file
identifier of the spooled file being processed. This field will be set to
blanks when the input stream is not a spooled file.</p>
<p><strong>Invert image.</strong> If yes, black becomes white and white becomes
black. This parameter has no effect for color output. It also has no effect for
color images output as gray on a Printer Control Language (PCL) color
printer.</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">No</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Yes</td>
</tr>
</table>
<p><strong>Job system
name.</strong> The name of the system where the job that created this spooled
file ran. This field will be set to blanks when the input stream is not a
spooled file.</p>
<p><strong>Left unprintable area.</strong> The number of pixels of unprintable
area on the left border.</p>
<p><strong>Output compression value.</strong> The algorithm used to compress
the output image or print data stream. Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">No compression</td>
</tr>
<tr>
<td align="left" valign="top"><em>4</em></td>
<td align="left" valign="top">CCITT Group 4 Fax</td>
</tr>
<tr>
<td align="left" valign="top"><em>7</em></td>
<td align="left" valign="top">PackBits</td>
</tr>
<tr>
<td align="left" valign="top"><em>8</em></td>
<td align="left" valign="top">IBM MMR (modified-modified read)</td>
</tr>
</table>
<p><strong>Output file format.</strong> The format of the output data stream.
Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>20</em></td>
<td align="left" valign="top">AFPDS (Advanced Function Printing data
stream)</td>
</tr>
<tr>
<td align="left" valign="top"><em>22</em></td>
<td align="left" valign="top">PCL (Printer Control Language)</td>
</tr>
<tr>
<td align="left" valign="top"><em>23</em></td>
<td align="left" valign="top">PostScript</td>
</tr>
<tr>
<td align="left" valign="top"><em>99</em></td>
<td align="left" valign="top">Unknown</td>
</tr>
</table>
<p><strong>Output page orientation.</strong> How the output is oriented on
paper. Possible values follow:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>0</em></td>
<td align="left" valign="top">Portrait. For image input files, the top of each
output page is placed on the narrowest dimension of the paper. For PostScript
input data streams, the orientation specified in the input data stream is
used.</td>
</tr>
<tr>
<td align="left" valign="top"><em>90</em></td>
<td align="left" valign="top">Landscape. For image input files, the top of each
output page is placed on the widest dimension of the paper. For PostScript
input data streams, the output is rotated 90 degrees from the orientation
specified in the input data stream.</td>
</tr>
<tr>
<td align="left" valign="top"><em>180</em></td>
<td align="left" valign="top">Portrait, rotated 180 degrees. For PostScript
input data streams, the output is rotated 180 degrees from the orientation
specified in the input data stream.</td>
</tr>
<tr>
<td align="left" valign="top"><em>270</em></td>
<td align="left" valign="top">Landscape, rotated 180 degrees. For PostScript
input data streams, the output is rotated 270 degrees from the orientation
specified in the input data stream.</td>
</tr>
</table>
<p><strong>Output page size.</strong> The paper size to be used for the output
image or print data stream. See the table following the values for dimensions
of each size value. Possible values are:</p>
<table cellpadding="5">
<!-- cols="5 95" -->
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Executive</td>
</tr>
<tr>
<td align="left" valign="top"><em>2</em></td>
<td align="left" valign="top">Letter</td>
</tr>
<tr>
<td align="left" valign="top"><em>3</em></td>
<td align="left" valign="top">Legal</td>
</tr>
<tr>
<td align="left" valign="top"><em>6</em></td>
<td align="left" valign="top">Ledger</td>
</tr>
<tr>
<td align="left" valign="top"><em>13</em></td>
<td align="left" valign="top">A5</td>
</tr>
<tr>
<td align="left" valign="top"><em>26</em></td>
<td align="left" valign="top">A4</td>
</tr>
<tr>
<td align="left" valign="top"><em>27</em></td>
<td align="left" valign="top">A3</td>
</tr>
<tr>
<td align="left" valign="top"><em>45</em></td>
<td align="left" valign="top">B5</td>
</tr>
<tr>
<td align="left" valign="top"><em>46</em></td>
<td align="left" valign="top">B4</td>
</tr>
<tr>
<td align="left" valign="top"><em>50</em></td>
<td align="left" valign="top">CONT80</td>
</tr>
<tr>
<td align="left" valign="top"><em>51</em></td>
<td align="left" valign="top">CONT132</td>
</tr>
<tr>
<td align="left" valign="top"><em>80</em></td>
<td align="left" valign="top">Monarch envelope</td>
</tr>
<tr>
<td align="left" valign="top"><em>81</em></td>
<td align="left" valign="top">COMM10 envelope</td>
</tr>
<tr>
<td align="left" valign="top"><em>89</em></td>
<td align="left" valign="top">COMM9 envelope</td>
</tr>
<tr>
<td align="left" valign="top"><em>90</em></td>
<td align="left" valign="top">DL envelope</td>
</tr>
<tr>
<td align="left" valign="top"><em>91</em></td>
<td align="left" valign="top">C5 envelope</td>
</tr>
<tr>
<td align="left" valign="top"><em>100</em></td>
<td align="left" valign="top">B5 envelope</td>
</tr>
</table>
<br>
<br>
<table border cellpadding="5">
<!-- cols="30 35 35" -->
<tr>
<th align="left" valign="top">Name</th>
<th align="left" valign="top">Millimeters</th>
<th align="left" valign="top">Inches</th>
</tr>
<tr>
<td align="left" valign="top" colspan="3"><strong>Paper:</strong></td>
</tr>
<tr>
<td align="left" valign="top">Letter</td>
<td align="left" valign="top">215.9 x 279.4</td>
<td align="left" valign="top">8.5 x 11</td>
</tr>
<tr>
<td align="left" valign="top">Legal</td>
<td align="left" valign="top">215.9 x 335.6</td>
<td align="left" valign="top">8.5 x 14</td>
</tr>
<tr>
<td align="left" valign="top">Ledger</td>
<td align="left" valign="top">279.4 x 431.8</td>
<td align="left" valign="top">11 x 17</td>
</tr>
<tr>
<td align="left" valign="top">Executive</td>
<td align="left" valign="top">184.2 x 266.7</td>
<td align="left" valign="top">7.25 x 10.5</td>
</tr>
<tr>
<td align="left" valign="top">A3</td>
<td align="left" valign="top">297 x 420</td>
<td align="left" valign="top">11.7 x 16.54</td>
</tr>
<tr>
<td align="left" valign="top">A4</td>
<td align="left" valign="top">210 x 297</td>
<td align="left" valign="top">8.27 x 11.7</td>
</tr>
<tr>
<td align="left" valign="top">A5</td>
<td align="left" valign="top">148 x 210</td>
<td align="left" valign="top">5.83 x 8.27</td>
</tr>
<tr>
<td align="left" valign="top">B4</td>
<td align="left" valign="top">257 x 364</td>
<td align="left" valign="top">10.1 x 14.33</td>
</tr>
<tr>
<td align="left" valign="top">B5</td>
<td align="left" valign="top">182 x 257</td>
<td align="left" valign="top">7.17 x 10.1</td>
</tr>
<tr>
<td align="left" valign="top">CONT80</td>
<td align="left" valign="top">203.2 x 279.4</td>
<td align="left" valign="top">8 x 11</td>
</tr>
<tr>
<td align="left" valign="top">CONT132</td>
<td align="left" valign="top">335.3 x 279.4</td>
<td align="left" valign="top">13.2 x 11</td>
</tr>
<tr>
<td align="left" valign="top" colspan="3"><strong>Envelope:</strong></td>
</tr>
<tr>
<td align="left" valign="top">Monarch</td>
<td align="left" valign="top">98.4 x 190.5</td>
<td align="left" valign="top">3.875 x 7.5</td>
</tr>
<tr>
<td align="left" valign="top">Commercial 9</td>
<td align="left" valign="top">98.4 x 225.4</td>
<td align="left" valign="top">3.875 x 8.875</td>
</tr>
<tr>
<td align="left" valign="top">Commercial 10</td>
<td align="left" valign="top">104.8 x 241.3</td>
<td align="left" valign="top">4.125 x 9.5</td>
</tr>
<tr>
<td align="left" valign="top">DL</td>
<td align="left" valign="top">110 x 220</td>
<td align="left" valign="top">4.33 x 8.66</td>
</tr>
<tr>
<td align="left" valign="top">B5</td>
<td align="left" valign="top">176 x 250</td>
<td align="left" valign="top">6.93 x 9.84</td>
</tr>
<tr>
<td align="left" valign="top">C5</td>
<td align="left" valign="top">162 x 229</td>
<td align="left" valign="top">6.38 x 9.02</td>
</tr>
</table>
<p><strong>Output horizontal resolution.</strong> The number of horizontal
pixels per inch.</p>
<p><strong>Output vertical resolution.</strong> The number of vertical pixels
per inch.</p>
<p><strong>Paper length.</strong> Length of paper to use; units in inches.</p>
<p><strong>Paper width.</strong> Width of paper to use; units in inches.</p>
<p><strong>Right unprintable area.</strong> The number of pixels of unprintable
area on the right border.</p>
<p><strong>Reserved.</strong>
The field is reserved.</p>
<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. This
field will be set to blanks when the input stream is not a spooled file.</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. This
field will be set to blanks when the input stream is not a spooled file.</p>
<p><strong>Spooled file job name.</strong> The name of the job that the file
being processed was spooled under. This field will be set to blanks when the
input stream is not a spooled file.</p>
<p><strong>Spooled file job number.</strong> The job number that the file being
processed was spooled under. This field will be set to blanks when the input
stream is not a spooled file.</p>
<p><strong>Spooled file name.</strong> The name of the spooled file being
processed. This field will be set to blanks when the input stream is not a
spooled file.</p>
<p><strong>Spooled file number.</strong> The number of the spooled file being
processed. This field will be set to zero when the input stream is not a
spooled file.</p>
<p><strong>Spooled file user name.</strong> The user profile that the file
being processed was spooled under. This field will be set to blanks when the
input stream is not a spooled file.</p>
<p><strong>Structure length.</strong> The length of the structure. Currently,
this is set to decimal 256.
</p>
<p><strong>Structure version.</strong> The format identifier of the transform
parameter structure. Currently, this is set to "XPRM0100".</p>
<p><strong>Top unprintable area.</strong> The number of pixels of unprintable
area on the top border.</p>
<p><strong>Vertical justification from top border.</strong> Distance in pixels
from top border to justify the image.</p>
<p><strong>Writer message queue
library name.</strong> The name of the library in which the writer message
queue resides. This field will be set to blanks when no writer message queue is
associated with the file or buffer.</p>
<p><strong>Writer message queue name.</strong> The name of the message queue to
which the writer issues messages. This field will be set to *NONE when no
writer message queue is associated with the file or buffer.</p>
<br>
<h3><a name="IPTPPEP">Process Values to Exit Program</a></h3>
<p>The following table shows the structure for the process values parameter.
For more details about the fields in the following table, see <a href=
"#IPTPFD">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(8)</td>
<td align="left" valign="top" width="60%">Structure version</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Structure length</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">Process option</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">Input data stream length</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">Output data stream length</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 returned data</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">CHAR(1)</td>
<td align="left" valign="top">Transform ability</td>
</tr>
<tr>
<td align="center" valign="top">29</td>
<td align="center" valign="top">1D</td>
<td align="left" valign="top">CHAR(3)</td>
<td align="left" valign="top">Reserved</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">Finished transform</td>
</tr>
</table>
<br>
<h3><a name="IPTPFD">Field Descriptions</a></h3>
<p><strong>Finished transform.</strong> (OUTPUT)&nbsp;&nbsp;Signals when
transform of the input data stream has completed. 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">No</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Yes</td>
</tr>
</table>
<p><strong>Input data stream length.</strong> (INPUT)&nbsp;&nbsp;Length of data
being sent to transform. The maximum value is 16700000. If the total is larger
than this maximum, it will be sent a buffer at a time.</p>
<p><strong>Length of returned data.</strong> (OUTPUT)&nbsp;&nbsp;Length of
transformed data returned by the exit program. If this field is larger than the
output buffer length, it must be returned as separate buffers in the correct
order. This is accomplished by setting the finished transform field to No for
all output data streams returned except the last one, which must have the
finished transform field set to Yes. If a terminating error occurs in the
process of transforming, the exit program may set the length to a negative
value, and the process will be halted.</p>
<p><strong>Output data stream length.</strong> (OUTPUT)&nbsp;&nbsp;Length of
buffer for transformed output data stream.</p>
<p><strong>Process option.</strong> (INPUT)&nbsp;&nbsp;The action for the exit
program to take. The first option is process (20). Possible values are:</p>
<table cellpadding="5">
<!-- cols="15 85" -->
<tr>
<td align="left" valign="top" nowrap><em>20 (Process file)</em></td>
<td align="left" valign="top">A data stream is available to be transformed. The
transform and process parameter structures and other information is passed. The
exit program decides whether to transform the data and sets the transform
ability field in the process parameter structure and returns.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>30 (Transform data)</em></td>
<td align="left" valign="top">The exit program is called if the transform
ability field is set to 1 (can transform). The data to be transformed is passed
in the input data stream parameter. The transformed data is returned in the
output data stream parameter. The exit program is called repetitively with
process option 30 to retrieve multiple output data steams until the exit
program indicates it is done with this input data stream by setting the
finished transform to Yes. This process is repeated until all the data required
in the input data stream has been passed to the exit program. At that time, the
exit program is called with a Process option 40.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>40 (End file)</em></td>
<td align="left" valign="top">This option informs the exit program that it has
received all the data from the input data stream. No data is passed on this
call. The exit program returns additional transformed data through the output
data stream buffer until the exit program indicates it is complete by setting
the finished transform to Yes.</td>
</tr>
<tr>
<td align="left" valign="top" nowrap><em>50 (Terminate)</em></td>
<td align="left" valign="top">The exit program will be notified that processing
on this data stream has stopped and the exit program should terminate. Option
50 may be used after any other process option.</td>
</tr>
</table>
<p><strong>Reserved.</strong> Space reserved for future use.</p>
<p><strong>Structure length.</strong> (INPUT)&nbsp;&nbsp;The length of the
structure. Currently, this is set to decimal 36.</p>
<p><strong>Structure version.</strong> (INPUT)&nbsp;&nbsp;The format identifier
of the transform parameter structure. Currently, this is set to "IPRM0100".</p>
<p><strong>Transform ability.</strong> (OUTPUT)&nbsp;&nbsp;Used by the exit
program, when running during process option 20, to notify Image Print Transform
whether the exit program can transform the data stream.</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">Unable to transform</td>
</tr>
<tr>
<td align="left" valign="top"><em>1</em></td>
<td align="left" valign="top">Able to transform</td>
</tr>
</table>
<br>
<hr>
Exit program introduced: V5R1
<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>