Come generare un file pdf invece di uno spool file
Dalla versione di IBM i 6.1 è possibile generare dei file pdf invece di un file di spool con veramente pochissime modifiche ai programmi già esistenti. Non è necessario altro software, lasciate l’incombenza a IBM i. Provare per credere!
Prerequisiti
- prodotto 57xxSS1 opz. 3 “Supporto indirizzario base esteso”
- prodotto 57xxSS1 opz. 33 “PASE – Portable App Solutions Environment” del sistema operativo
- prodotto 57xxTS1 “IBM Transform Services for i5/OS”, opz. *BASE e opz. 1
Tutto ciò è gratuito! Ovvero già incluso nel sistema operativo. E nella maggior parte delle situazioni è già installato sul vostro IBM i.
All’opera…
Innanzitutto il printer file deve essere di tipo *AFPDS (parametro DEVTYPE
), in quanto solo un flusso di dati Advanced Function Presentation può essere convertito in PDF con la nuova funzionalità.
Nei comandi di stampa (CRTPRTF
, CHGPRTF
, OVRPRTF
) IBM ha aggiunto due parametri:
TOSTMF
: consente di specificare un percorso o un nome stream file dove si desidera che il PDF generato venga salvato su IFS. Se viene specificato solo il percorso il nome del file verrà generato automaticamente in modo che sia univoco.
Bisogna fare attenzione che tutte le cartelle e sottocartelle del percorso indicato siano già esistenti.WSCST
(workstation customization object): consente di specificare che tipo di trasformazione si desidera. Se si specifica un oggetto questo deve disporre dell’attributoTRANSFORM
oCTXFORM
. IBM fornisce 3 oggetti di personalizzazione workstation con attributo CTXFORM (cfr. par. Workstation customization object). E’ possibile specificare uno di questi oppure *PDF per generare un file PDF.
Una volta modificati questi due parametri, quando si eseguirà il programma verrà creato uno stream file nell’IFS invece del file di spool. Esempio:
OVRPRTF FILE(ESBC1DAP) DEVTYPE(*AFPDS) USRDTA('Barcode 1D') TOSTMF('/MyFolder/) WSCST(*PDF)
ATTENZIONE! Il file di spool non viene creato. Stream file e spool file sono in alternativa uno all’altro.
Annotazioni sul file PDF generato
- I dati di testo contenuti nel documento vengono conservati in codifiche standard (generalmente Windows ANSI), in modo da poter essere oggetto di ricerca, quando si apre il pdf con il programma reader sul PC
- Le dimensioni della pagina PDF vengono derivate dagli attributi dei file di stampa senza applicare nessuna Computer Output Reduction (COR). Se si desidera ottenere un formato pagina A4 bisogna specificare nel file printer il parametro
PAGESIZE(29.7 21 *UOM)
UOM(*CM); facendo attenzione però che il programma di stampa comunque non ecceda le dimensioni della pagina, altrimenti gli elementi esterni alle dimensioni verranno troncati. - Il PDF generato è compatibile fino a versione Acrobat 4.x
- Il campo “Autore” delle proprietà PDF corrisponde al profilo utente che lo ha generato su IBM i
Copiare uno spool
Da IBM i 7.1 il comando CPYSPLF
(Copy Spooled file) supporta la copia del file di spool in uno stream file su IFS. Lo spool file può essere convertito in altri formati, tra cui il formato PDF .
Per sfruttare questa nuova funzionalità bisogna specificare TOFILE(*STMF)
e indicare nel parametro TOSTMF
dove si vuole creare lo stream file su IFS. Lo stream file – se non esiste – verrà creato con CCSID 65535 se lo spool file è di tipo *AFPDS o *USERASCII.; per gli altri tipi di spool il CCSID verrà desunto dagli attributi dello spool.
Per convertire lo spool file nel formato PDF bisogna specificare il parametro WSCST(*PDF)
. Lo spool file deve essere di tipo *SCS o *AFPDS. Lo stream file – se non esiste – verrà creato con CCSID 65535.
Il parametro STMFOPT(*REPLACE)
consente di sostituire lo stream file se già esistente.
Workstation customization object
I 6 oggetti forniti col sistema operativo (cfr. https://www.ibm.com/support/pages/language-support-host-print-transform-and-transform-services e https://www.ibm.com/docs/en/i/7.6.0?topic=considerations-workstation-customizing-object-wscst-parameter) differiscono per i diversi livelli di incorporazione dei font nel file PDF generato.
QCTXPDF
: è l’oggetto di default utilizzato quando si specifica WSCST = *PDF.QCTXPDF2
supporta il nuovo tag AFPFNTSUB con EMBED=NO così che i font AFP vengono mappati ai font standard piuttosto che venire incorporati.QCTXPDFWT2
,QCTXPDFWT
: contiene i tag per mappare tutti i World Type fonts inclusi nell’opzione 43 del sistema operativo nei corrispondenti font Type 1 o nelle collezioni di caratteri CMaps.QCTXPDFMB2
,QCTXPDFMBD
: utilizza il mapping di default dei font.
Bibliografia
- Options for Generating Adobe Acrobat PDF Format Files from an IBM i System, IBM Document number 644417, 6-gen-2021
- With 6.1, PDF Capability Is “Pretty Darn Fast”!, di Steve Pitcher, 11-apr-2010
- CPYSPLF Function to Copy SPLFs to Stream Files in the IFS, Document number 685425, 5-gen-2021
- Using Transform Services to create PDFs instead of Spooled Files, IBM video tutorial di Kurt Schroeder