04 - System Administration04g - Varie sistemistica

IBM i Printing – Faq & Howto (IT)

Last Updated on 8 Maggio 2020 by Roberto De Pedrini

Questa è una raccolta di FAQ e di Howto sulla gestione delle stampe, la produzione dei PDF e altre cose inerenti stampe e IBM i: vuole essere una guida in continua evoluzione quindi invito anche voi che state leggendo ora a segnalare, tramite la funzione commenti, trucchi, perplessità ed esperienze a riguardo.

iPrt-Faq-001: Posso creare un PDF da uno spool IBM i?

Sul mercato ci sono degli ottimi tools per la gestione delle stampe grafiche che, generalmente, permettono di generare PDF, HTML, XML, XLS ecc. e gestiscono anche il flusso per una vera e propria gestione documentale.

Ma anche con gli strumenti a disposizione del sistema operativo IBM i si possono fare delle belle cose, sia in modo manuale che in modo automatico da codice.

Se abbiamo già uno spool in coda possiamo aprire la gestione delle emissioni di stampa di ACS Access Client Solution (Azioni-Emissioni di stampa) e scegliere Scarica o Visualizza e Scarica. La stessa cosa possiamo farla anche con iNavigator.

Se invece vogliamo automatizzare il processo e generare PDF in qualche directory di IFS conviene lavorare un po’ sul codice, vediamo qualche esempio:

  • Produzione di un PDF invece dello spool con OVRPRTF
    • Prima di aprire il PrinterFile nel nostro programma è sufficiente fare un OVRPRTF, ad esempio OVRPRTF(QSYSPRT) DEVTYPE(*AFPDS) WSCT(*PDF) TOSTMF(‘/home/pdf/fatture/190001.PDF) OVRSCOPE(*CALLLVL), produrre quindi la stampa nel modo normale e al momento della chiusura del Printer File troveremo il PDF nella directory specificata!
  • Produzione di un PDF invece dello spool con un overlay
    • Se vogliamo aggiungere un Overlay, fincatura, al nostro PDF possiamo ancora usare OVRPRTF: OVRPRTF(QSYSPRT) DEVTYPE(*AFPDS) WSCT(*PDF) TOSTMF(‘/home/pdf/fatture/190001.PDF) FRONTOVL(MODFAT 0 0) OVRSCOPE(*CALLLVL)
    • In questo caso abbiamo indicato l’overlay MODFAT con offset 0 orizzontale e 0 verticale
    • Per la creazione dell’overlay MODFAT partendo da un PDF o da un modello Word o da quello che avete su PC seguire la procedura indicata più avanti in questa guida
  • Da uno spool già esistente a PDF
    • Nei due casi sopra riportati andiamo a produrre il PDF invece dello spool … ma se lo spool lo abbiamo già in coda e vogliamo trasformarlo in PDF?
    • Usiamo CPYSPLF: CPYSPLF FILE(QPRINT) TOFILE(TOSTMF) JOB(000001/ROBERTO/QPADEV0001) SPLNBR (LAST) TOSTMF(‘/home/pdf/roberto/xx.pdf’) WSCST(*PDF) STMFOPT(*REPLACE)
    • E’ importante individuare correttamente lo spool di stampa indicando il nome dello spool e i riferimenti al JOB
  • Da uno spool già esistente a PDF con Overlay di fincatura
    • Se, come nel caso precedente, abbiamo già lo spool e vogliamo anche aggiungere un overlay… dobbiamo fare qualche passo in più perchè CPYSPLF non ci permette di farlo direttamente … ma con un po’ di astuzia:
    • CRTPF QTEMP/MYSPOOL  RCDLEN(199) MAXMBRS(*NOMAX) SIZE(*NOMAX) LVLCHK(*NO)
    • CPYSPLF FILE(ORDINEWEB) TOFILE(QTEMP/MYSPOOL) JOB(037971/ROBERTO/QPADEV0001)SPLNBR(000013) CTLCHAR(*FCFC)   
    • OVRPRTF FILE(QSYSPRT) DEVTYPE(*AFPDS) CTLCHAR(*FCFC) CHLVAL(*NORMAL) FRONTOVL(ORDITADE) TOSTMF(‘/pdf/2019/ordini/1900001.pdf’) WSCST(*PDF) 
    • CPYF FROMFILE(QTEMP/MYSPOOL) TOFILE(QSYSPRT)
    • DLTOVR FILE(QSYSPRT
    • Come si vede in questa procedura creo un con un solo campo da 199 char (198 di stampa più uno di per i caratteri di controllo come salto pagina, salto riga), copio lo spool dentro il file DB, eseguo un OVRPRTF con il modulo di overlay desiderato e quindi mando in stampa il file di QTEMP …non è fantastico?

Ecco alcuni link per approfondire l’argomento:

iPrt-Faq-002: Come si creano OVERLAY e PAGE-SEGMENT (AFP Resource)?

La procedura è spiegata in dettaglio a questo link dell’IBM Support: Creating AFP Resources Using the IBM AFP Printer Drivers

In pratica, una volta installati gli appositi driver AFP scaricati dal sito RICOH e configurato opportunamente il driver per ottenere Overlay o Page Segment, è sufficiente indirizzare la nostra stampa del PDF, Word o quello che abbiamo per la fincatura, creare un file .prn sul pc, trasferirlo su IBM i via FTP e generare l’oggetto overlay con CRTOVL sul nostro sistema.

Non spiego in dettaglio il processo perchè la guida IBM Support è chiara e completa.

iPrt-Faq-003: Posso stampare un Cariage-return e Line-Feed in un barcode Code128?

Il barcode CODE128 permette creare dei barcode anche con “embeddato” un CR+LF per … ma per poter “stampare” questi caratteri speciali bisogna prestare attenzione alla compilazione del printer file PRTF indicando l’opzione RPLUNPRT(*NO)  nel CRTPRTF:

---------------------------------
Pgm

  dcl-s cr char(1) inz(X'0D');    
  dcl-s lf char(1) inz(X'25'); 
  // or
  Dcl-S CRLF  char(2) Inz(x'0d25'); 

  ...
  bcode=%trim(myvar)+cr+lf+%trim(myvar2);

------------------------------
 Print file:

A            BCODE         30A        1                                       
A                                      BARCODE(CODE128 2 *NOHRI (*WIDTH .-    
A                                      007))        

iPrt-FAQ-004: Vedere gli spool file con SQL?

Sotto il nome di DB2 for i Services troviamo un sacco di funzioni e viste che ci permettono di monitorare e controllare oggetti di sistema … come i file di stampa o le code di stampa:

  • QSYS2.OUTPUT_QUEUE_INFO: Vista sulle code di output: SELECT * FROM QSYS2.OUTPUT_QUEUE_INFO
  • QSYS2.OUTPUT_QUEUE_ENTRIES: UDTF sugli spool
  • QSYS2.OUTPUT_QUEUE_ENTRIES: Vista sugli spool
  • QSYS2.OUTPUT_QUEUE_ENTRIES_BASIC: Vista semplificata sugli spool
  • QSYS2.SPOOLED_FILE_DATA: UDTF per il centenuto di uno spool file specifico
Esempio preso da RPGPGM.COM
SELECT SIZE,SPOOLNAME,OUTQ,OUTQLIB,CREATED,USER_NAME,STATUS,
         PAGES,JOB_NAME,FILENUM 
    FROM QSYS2/OUTPUT_QUEUE_ENTRIES ORDER BY SIZE DESC

Approfondimenti su :

iPrt-FAQ-005: E’ possibile monitorare gli spool di una coda OUTQ?

Delle volte può essere utile monitorare una specifica coda in modo automatico per eseguire apposite azioni ogni volta che uno spool file viene aggiunto alla coda stessa… c’è un vecchio post su IBM System Mag “Automating Spool File Processing” che spiega tutto il processo creando una apposita DTAQ e monitorado quindi la stessa DTAQ

iPrt-FAQ-006: Visualizzare output spool ZPL Zebra

Per chi utilizza delle stampanti Zebra con linguaggio ZPL può essere utile questa anteprima della sito Labelary.com che prende una “etichetta” ZPL e la presenta a video:

http://labelary.com/viewer.html

iPrt-FAQ-007: Inviare caratteri ASCII ad una stampante etichette EPSON-TM-m30

Per inviare dei comandi ASCII (Hex Values) ad una stampante EPSON-TM bisogna ricorrere alla keyword TRNSPY

Ad esempio … il taglio carta a fine scontrino su una stampante EPSON-TM-m30

A          R DK3113E2
A                                      TEXT('CUT RECEIPT')
A                                     1X'1B691B40'
A                                      TRNSPY
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

--- Roberto De Pedrini Faq400.com
About author

Founder di Faq400 Srl, IBM Champion, ideatore del sito Faq400.com e del Blog blog.faq400.com. Sviluppatore RPG da quando avevo i pantaloni corti, forte sostenitore della piattaforma IBM i (ex AS400), ho sempre cercato di convididere le mie conoscenze con gli altri tramite forum, eventi e corsi. Oggi, tramite Faq400 Srl, cerchiamo di aiutare le aziende a sfruttare al meglio questa fantastica piattaforma IBM i.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *