Using IBM i? Need to create Excel, CSV, HTML, JSON, PDF, SPOOL reports? Learn more about the fastest and least expensive tool for the job: SQL iQuery.
The iQuery.printPDF() UDF and Stored Procedure prints a PDF from the IFS to a phsyical printer on your network. It does this by sending the printed result to the designated Output Queue.
For convenience iQuery PRINTPDF is provided as both an SQL Function and a Stored Procedure with the same parameter set.
iQuery.printPDF( pdffile, outq, hold, save, copies, splfname, usrdta, addl override parameters )
The pdffile is name of the PDF on the IFS, along with the qualified directory containing the PDF. For example, '/home/orders/ord12345.pdf'
The OUTQ is the name of the output queue where the PDF file is written. An output queue name or qualified output queue name may be specified using standard CL style object qualifier, such as 'QUSRSYS/LASERJET'. The default is *JOB meaning it uses the job's current output queue setting.
The HOLD parameter is either *YES or *NO (the default is *NO). It specified whether to start printing immediately or wait until the SPOOLED image is released. When *YES is specified, the SPOOLED file is held in the output queue.
The SAVE is either *YES or *NO (the default is *NO) specifies whether the SPOOLED PDF file is saved after it is printed. The default is *NO.
The COPIES is a number value indicating the number of copies of the PDF to be printed. The default is 1.
The SPLFNAME parameter may be used to override the name of the SPOOLED file that is created on the Output Queue. Normally it is IQPDFPRINT, but to change it, specify the new SPOOLED File name on this parameter.
The USRDTA parameter may be used to override the user data of the SPOOLED file that is created on the Output Queue. The default USRDTA is set to that of the internal print file used to generate the PDF. That file IQUERYPDF in library IQUERY has 'iQueryPDF' as its user data.
The Additional Override parameter allows users to specify any other OVRPRTF parameter/option combination and have it added to the implied override that is performed. For example, to override the number of pages printed per side (i.e., Multi-Up) specify MULTIUP(2) for this parameter. You may specify as many parameters as needed, however this parameter itself is limited to 255 characters.
Note parameters that are not specified are not overridden by this UDF and will default and be subjected to any to higher-level overrides.
The returned value is an integer that contains the number of bytes copied to the printer (OUTPUT QUEUE).
call iQuery.printPDF('/home/sales/ord541.pdf', 'QUSRSYS/PDFWRITER', '*YES','',3, 'ORDER541');
In this example, the PDF file named ORD541.PDF in the /home/sales folder on the IFS is written to the PDFWRITE output queue as a SPOOLED file named "ORDER541", and it is held. The number of copies is set to 3.