323 lines
9.6 KiB
HTML
323 lines
9.6 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>IPDS to PDF Transform Interface 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 --><!-- Created by Rondi Herman for V5R1-->
|
||
|
<!-- 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>IPDS to PDF Transform Interface Exit Program</h2>
|
||
|
|
||
|
<div class="box" style="width: 65%;">
|
||
|
<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%">PDF tranform information</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">Length of PDF transform information</td>
|
||
|
<td align="left" valign="top">Input</td>
|
||
|
<td align="left" valign="top">Char(4)</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<br>
|
||
|
Default Public Authority: *USE<br>
|
||
|
<!-- iddvc RMBR -->
|
||
|
<br>
|
||
|
</div>
|
||
|
|
||
|
<p>PSF/400 uses the IPDS to PDF Transform Interface exit program to submit an
|
||
|
IPDS to PDF transform when a PDF transform is requested to the
|
||
|
QIBM_QPQ_Transform exit point and the PDFGEN parameter on the PSF configuration
|
||
|
object has a value other than *NONE.</p>
|
||
|
|
||
|
<p>If the IPDS to PDF Transform exit program encounters an error in starting
|
||
|
the transform (TCP/IP is not started or any other start-up error), the
|
||
|
transform returns to the program that called it and writes an error message to
|
||
|
the PDF transform job log. If no transform is registered to the exit point,
|
||
|
PSF/400 will time out when it tries to communicate with the PDF transform and
|
||
|
will log its own error.</p>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Authorities and Locks</h3>
|
||
|
|
||
|
<p>There are no locks for this exit program.</p>
|
||
|
|
||
|
<p>Subdirectories and files created by the PDF transform are owned by the
|
||
|
spooled file owner and have *EXCLUDE public authority. The transform has *USE
|
||
|
authority to the QIPS library.</p>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Parameters</h3>
|
||
|
|
||
|
<dl>
|
||
|
<dt><strong>PDF Transform Information</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(*)
|
||
|
|
||
|
<p>PDF transform information that is input to the IPDS to PDF Transform
|
||
|
Interface exit program from the PSF/400 print writer.</p>
|
||
|
</dd>
|
||
|
|
||
|
<dt><strong>Length of PDF transform information to the IPDS to PDF Transform
|
||
|
Interface</strong></dt>
|
||
|
|
||
|
<dd>INPUT; CHAR(4)
|
||
|
|
||
|
<p>The length (in zoned decimal) of the PDF transform information specified in
|
||
|
the PDF transform input information to the IPDS to PDF Transform Interface exit
|
||
|
program.</p>
|
||
|
</dd>
|
||
|
</dl>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>PDF Transform Input Information</h3>
|
||
|
|
||
|
<p>The following table shows the structure for the PDF transform input
|
||
|
parameter.</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(10)</td>
|
||
|
<td align="left" valign="top" width="60%">Device type</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">10</td>
|
||
|
<td align="center" valign="top">A</td>
|
||
|
<td align="left" valign="top">CHAR(10)</td>
|
||
|
<td align="left" valign="top">Paper size for drawer 1</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">20</td>
|
||
|
<td align="center" valign="top">14</td>
|
||
|
<td align="left" valign="top">CHAR(10)</td>
|
||
|
<td align="left" valign="top">Paper size for drawer 2</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">30</td>
|
||
|
<td align="center" valign="top">1E</td>
|
||
|
<td align="left" valign="top">CHAR(256)</td>
|
||
|
<td align="left" valign="top">File directory</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">286</td>
|
||
|
<td align="center" valign="top">11E</td>
|
||
|
<td align="left" valign="top">CHAR(5)</td>
|
||
|
<td align="left" valign="top">TCP/IP port</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">291</td>
|
||
|
<td align="center" valign="top">123</td>
|
||
|
<td align="left" valign="top">CHAR(10)</td>
|
||
|
<td align="left" valign="top">Print writer's message queue</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">301</td>
|
||
|
<td align="center" valign="top">12D</td>
|
||
|
<td align="left" valign="top">CHAR(10)</td>
|
||
|
<td align="left" valign="top">Print writer's message queue library</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">311</td>
|
||
|
<td align="center" valign="top">137</td>
|
||
|
<td align="left" valign="top">CHAR(8)</td>
|
||
|
<td align="left" valign="top">Printer font ID</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">312</td>
|
||
|
<td align="center" valign="top">138</td>
|
||
|
<td align="left" valign="top">CHAR(1)</td>
|
||
|
<td align="left" valign="top">Inline font indicator</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="center" valign="top">313</td>
|
||
|
<td align="center" valign="top">139</td>
|
||
|
<td align="left" valign="top">CHAR(1)</td>
|
||
|
<td align="left" valign="top">Group boundary operation</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p>The example below is provided to show the interaction between the PSF/400
|
||
|
and PDF transform exit program.</p>
|
||
|
|
||
|
<ol>
|
||
|
<li>Printer writer is started by user.
|
||
|
|
||
|
<p>This ties a PSF configuration object to a printer device. The configuration
|
||
|
object must have a PDFGEN value other than *NONE and the other appropriate PDF
|
||
|
parameters appropriately defined based on the the PDFGEN value chosen.</p>
|
||
|
</li>
|
||
|
|
||
|
<li>PSF/400 does a submit job to get the PDF transform started.
|
||
|
|
||
|
<p>The PDF Transform exit program uses the input information to intialize
|
||
|
itself. PSF/400 saves the job number from the submit job that is associated
|
||
|
with the transform.</p>
|
||
|
</li>
|
||
|
|
||
|
<li>The writer selects the first eligible spooled file to process.
|
||
|
|
||
|
<p>The PDF transform communicates with PSF/400 as a virtual printer device, but
|
||
|
instead of printing the IPDS, the transform converts it to PDF and stores it
|
||
|
either in a user specified path (when PDFGEN is *STMF) or in a temporary path
|
||
|
location chosen by PSF/400.</p>
|
||
|
|
||
|
<p>When PSF/400 receives an indication from the virtual printer device that all
|
||
|
pages have been stacked, it knows that the PDF transform is finished with that
|
||
|
spooled file.</p>
|
||
|
</li>
|
||
|
|
||
|
<li>PSF/400 mails or spools the data.
|
||
|
|
||
|
<p>At this time, if PDFGEN had a value of *MAIL or *SPLF, PSF/400 will complete
|
||
|
the request by either electronically mailing the PDF file or spooling it to the
|
||
|
appropriate output queue. When either function is complete, PSF/400 deletes the
|
||
|
temporary path name.</p>
|
||
|
</li>
|
||
|
|
||
|
<li>Printer writer is ended by user.
|
||
|
|
||
|
<p>PSF/400 does its normal clean up and ends the job that is running the PDF
|
||
|
transform.</p>
|
||
|
</li>
|
||
|
</ol>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<h3>Field Descriptions</h3>
|
||
|
|
||
|
<p><strong>Device type.</strong> The device type that the transform should
|
||
|
emulate. It is specified in the PDFDEVTYPE parameter of the PSF configuration
|
||
|
object.</p>
|
||
|
|
||
|
<p><strong>File directory.</strong> The first two components of the file path
|
||
|
names specified in the PDFDIR parameter of the PSF configuration object and
|
||
|
assigned to the PDF files created by the PDF transform. The rest of the path
|
||
|
name is assigned by the PDF transform.</p>
|
||
|
|
||
|
<p><strong>Group boundary
|
||
|
operaion.</strong> The value of PDFMULT parameter in the PSF configuration
|
||
|
object. Valid values are:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>1</em></td>
|
||
|
<td align="left" valign="top">Separate the output into multiple PDF files at
|
||
|
the DGB commands.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>2</em></td>
|
||
|
<td align="left" valign="top">Place an index tag at the DGB Location.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p><strong>Inline font indicator</strong> Specifies whether fonts should be
|
||
|
placed inline with the PDF output. Valid values are:</p>
|
||
|
|
||
|
<table cellpadding="5">
|
||
|
<!-- cols="5 95" -->
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>0</em></td>
|
||
|
<td align="left" valign="top">File should not contain the fonts inline.</td>
|
||
|
</tr>
|
||
|
|
||
|
<tr>
|
||
|
<td align="left" valign="top"><em>2</em></td>
|
||
|
<td align="left" valign="top">File should contain the fonts inline.</td>
|
||
|
</tr>
|
||
|
</table>
|
||
|
|
||
|
<p><strong>Paper size for drawer 1.</strong> The paper size specified in the
|
||
|
PDFPPRDWR1 value of the PSF configuration object that the transform should
|
||
|
report to PSF/400.</p>
|
||
|
|
||
|
<p><strong>Paper size for drawer 2.</strong> The paper size specified in the
|
||
|
PDFPPRDWR2 value of the PSF configuration object that the transform should
|
||
|
report to PSF/400.</p>
|
||
|
|
||
|
<p><strong>Printer font ID.</strong> The printer default font ID to use if a
|
||
|
font is not specified in the IPDS data. It is composed of the graphic character
|
||
|
set ID, code page global ID, font character set global ID, and character
|
||
|
width.</p>
|
||
|
|
||
|
<p><strong>Print writer's message queue.</strong> The name of the PSF writer's
|
||
|
message queue.</p>
|
||
|
|
||
|
<p><strong>Print writer's message queue library.</strong> The library in which
|
||
|
the PSF writer's message queue can be found.</p>
|
||
|
|
||
|
<p><strong>TCP/IP port.</strong> The TCP/IP port of the transform's virtual
|
||
|
printer.</p>
|
||
|
|
||
|
<br>
|
||
|
|
||
|
|
||
|
<hr>
|
||
|
Exit program introduced: V5R1
|
||
|
|
||
|
<hr>
|
||
|
<table align="center" cellpadding="2" cellspacing="2">
|
||
|
<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>
|