Stampare spoolfiles via streaming pdf

Anche se non molto conosciuta questa funzione del sistema operativo può risolvere grandi problemi. Infatti stampare spoolfiles con caratteristiche avanzate (AFPDS) è sempre stato un po’ problematico. Oltretutto per poterlo fare è necessario installare sulla singola stampante la scheda IPDS che oltre ad essere costosa non consente di utilizzare liberamente tutte le keyword delle DDS dei printer files.

Unico requisito della modalità che propongo è che la stampante supporti il meccanismo di stampa pdf in stream. Il processo di stampa in questo caso si articola nel seguente modo:

  • viene generato lo spool da un programma
  • esso viene rilasciato su una stampante virtuale
  • quest’ultima lo converte in pdf al volo utilizzando il prtf di sistema QSYSPRT
  • contestualmente lo spool qsysprt in formato *USERASCII viene girato su una seconda coda di stampa
  • essa provvede a girarlo alla stampante fisica

Di seguito i passi necessari per realizzare la configurazione

Prima di tutto occorre creare la device di stampa che punta alla stampante fisica

CRTDEVPRT DEVD(PRTFISICA)             
 DEVCLS(*LAN)    
 TYPE(3812)    
 MODEL(1)    
 LANATTACH(*IP)                   
 PORT(9100)                   //da inserire in base a marca/modello stampante fisica            
 FONT(11 *NONE)                       
 FORMFEED(*AUTOCUT)                   
 INACTTMR(*SEC15)                     
 MFRTYPMDL(*HP4)              //da inserire in base a marca/modello stampante fisica           
 PPRSRC1(*A4)                         
 PPRSRC2(*A4)                         
 RMTLOCNAME('192.168.10.1')   //indirizzo ip stampante           
 SYSDRVPGM(*HPPJLDRV)         //da inserire in base a marca/modello stampante fisica           
 TEXT('Stampante HP ufficio logistica') 

Dopodichè di passa a generare un oggetto di tipo *PSFCFG che si occuperà della trasformazione da spool a pdf

CRTPSFCFG PSFCFG(QGPL/PRTPDF)                 
 USRRSCLIBL(JOBLIBL)                     
 RLSTMR(SEC15)                          
 PRTRSPTMR(NOMAX)                        
 PDFGEN(SPLF)                           
 PDFDEVTYPE(IP40300)                     
 PDFPPRDWR1(A4)                         
 PDFPPRDWR2(A4)                          
 PDFSENDER(SPLFOWN)                     
 PDFOUTQ(QUSRSYS/PRTFISICA)             
 TEXT('PSFCFG per PRTFISICA') 

Ed infine si crea la device che innescherà la trasformazione utilizzando l’oggetto *PSFCFG e invierà la stampa alla stampante fisica

CRTDEVPRT DEVD(PRTPDF)                                 
 PORT(12501)                    //scegliere una porta libera sul Vostro "i" con comando NETSTAT OPTION(*CNN)                                      
 FONT(011 *NONE)                                  
 FORMFEED(*AUTOCUT)                              
 RMTLOCNAME('127.0.0.1')                          
 USRDFNOBJ(QGPL/PRTPDF *PSFCFG)               
 TEXT('Stampante virtuale pdf') 

A questo punto non resta che rilasciare lo spool sulla stampante PRTPDF e verificare che lo spool venga stampato correttamente su carta.

NB: occorre fare attenzione al fatto che se il QSYSPRT ha il parametro HOLD impostato a *YES il rilascio sulla seconda coda di output dovrà avvenire manualmente: il sistema attenderà il rilascio da parte dell’utente per inviare lo stream alla stampante fisica.

Related Posts
DB2 for i SQL – Stringhe – POSSTR-LOCATE-LOCATE_IN_STRING (IT)

Introduzione Spesso, nelle nostre applicazioni, abbiamo la necessità di lavorare con le stringhe di testo e l'SQL del DB2 può Read more

DB2 for i & SQL – FAQ & Howto (Part. 1) (IT)

Database DB2 e SQL ... forse lo strumento più potente e completo che abbiamo sulla piattaforma IBM i: ecco una Read more

Annuncio IBM i 7.4

Arriva direttamente con l'uovo di Pasqua questo annuncio IBM per le novità della versione IBM i 7.4, versione iNext secondo Read more

Generated Always Columns – Approfondimenti (IT)

Introduzione "Generated Always Column": sono colonne, campi, di una tabella il cui contenuto è controllato direttamente dal sistema ... e Read more

Recent Posts

ACS Access Client Solution 1.1.9.5

I primi di Aprile è uscita la "Spring Version" di ACS Access Client Solution, versione 1.1.9.5 Interessanti novità soprattutto in…

1 giorno ago

Tim Rowe and Scott Forstie – Promo video for CEC 2024 – Milan

Se non vi bastava la ricca agenda delle sessioni del Common Europe Congress 2024, 3-6 Giugno Milano, ecco un altro…

1 giorno ago

Code for IBM i 2.10.0 – Debug IBM i con Visual Studio Code

Le funzioni di debug con Visual Studio Code sono disponibili da qualche tempo ma questa nuova versione 2.10.0 semplifica la…

4 giorni ago

ObjectConnect over TCP/IP

A distanza di due anni e mezzo dal mio post Trasferire oggetti con ObjectConnect ed Enterprise Extender, sono finalmente riuscito…

4 giorni ago

SQL: SELECT con i “superpoteri”

Con un piccolo trucco anche una semplice istruzione SELECT può eseguire qualsiasi comando di sistema ! Vediamo come...

5 mesi ago

NetServer per tutti – parte 5

Una mini-guida a puntate per la configurazione, gestione, uso e risoluzione dei problemi di IBM i NetServer

1 anno ago