04 - System Administration04g - Varie sistemistica

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.

About author

Head of Application development & Systems integration da sempre lavoro su "i". Programmatore, analista, project manager, sistemista, ... tanti cappelli ma un'unica piattaforma preferita. Collaboro con la community FAQ400 perchè credo fermamente nel lavoro di squadra e auspico una crescita continua e costante dell'ecosistema di cui mi sento parte.

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: