Configuration File

This page describes the parameters which are handled by the NewPdfy() function when these appear in configuration file the name of which is given as a parameter to this function.

; +---------------------------------------+
; l  Parameter file for FPDF4ZOS Library  l
; +---------------------------------------+
;
;
; Memory allocation
; -----------------
;
MX_NBPAG=3000           ; Max number of pages
MX_SZPAG=100000         ; Max size of a page, when still uncompressed
MX_NBIMG=8              ; Max number of images
MX_SZIMG=100000         ; Max size of an image
MX_NBFRM=8              ; Max number of different forms handled
MX_SZFRM=20000          ; Max size of a form, when still uncompressed
MX_NBLNK=0              ; Max number of links
MX_NBANN=0              ; Max number of annotations
MX_NBATT=0              ; Max number of embedded data
MX_NBTXP=32             ; Max number of potential anchors defined in forms 
;
;
; MVS specific
; ------------
;
TBEBCASC=P01.CFPDF13.TBEBCASC.FRENCH ; EBCDIC --> ASCII conversion table
MVS_UNIT=PERM           ; MVS STORAGE UNIT NAME FOR DYNAMIC ALLOCATION
REFCFM=VB               ; RECORD FORMAT OF PDF FILE PRODUCED
LRECL=800               ; Logical record size of PDF file produced
BLKSIZE=12804           ; BLOCK SIZE of PDF file produced
;
;
; PDF File parameters
; -------------------
;
UNITS=MM                ; UNITS FOR PAGE MEASUR: MM = MILLIMETERS
PAGE.DIM=A4             ; PAGE DIMENSION: A3, A4 or A5
COMPRESSION=1      (*)  ; 0=NO COMPRESSION  -  1=COMPRESSION
PSWD.USER=         (*)  ; IF SET, USER password
PSWD.OWNER=        (*)  ; OWNER PERMISSIONS IF PROTECTION SET
;;;;PROTECTION=4   (*)  ; PERMISSIONS: PRINT=4, MODIFY=8 COPY=16, ANNOT-FORM=32
VERBOSE=Y               ; ALL CALLS TO FPDFMVS ARE TRACED in SYSOUT
;
;
; PDF Properties
; --------------
;
AUTHOR=FPDF4ZOS_from_PC                (*)  ; Author Property within PDF
TITLE=Title_for_payslip_samples        (*)  ; Title Property within PDF
SUBJECT=Subject_for_payslip_samples    (*)  ; Subject Property within PDF
KEYWORDS=ADP,period,payslips,customer  (*)  ; Keywords Property within PDF
;
;
; Resources parameters
; --------------------
;
LOGO.DIR=P01.CFPDF3E.FPDFJPG.FPDFENG  ; ALL IMAGES WILL BE TAKEN FROM THIS PDS
FORM.DIR=P01.CFPDF3E.FPDFFRM.FPDFENG  ; ALL FORMS  WILL BE TAKEN FROM THIS PDS
JRNL.DIR=ROOT NAME OF MONTHLY LOG FILE
;

Additional Notes:

Override:

All parameters marked with (*) in the listing above may be overridden after NewPdfy() has been invoked by calling an appropriate functions. Other parameters cannot be changed once PDF structure has been initialized by calling this function.

Memory allocation:

Beyond the maximum number of pages which is given as a parameter to NewPdfy() function, there are addtionnal features which require the allocation of additional memory resources such as the number of forms / images, the maximum size of pages / forms / images , the maximum number of anchors / links / annotations / embedded data .

NB: MX_NBPAG line which appears in configuration file is now deprecated since this figure does appear in NewPdfy() function as a second parameter .

MVS specific section:

When PDF are created by FPDF4ZOS, files thus built may be either traditional z/OS files (sequential or PDS members) or ZFS files which leverage on the Unix space which has been available on all z/OS installations for more than a decade. In the first case, there are two further possibilities:

  1. PDF are built into sequential files which will then be dynamically allocated by FPDF4ZOS.  The configuration elements of this section enable the engine to perform this dynamic allocation with required LRECL, RECFM and storage UNIT.  Note that:
    • Although RECFM is modifiable, it is strongly recommanded to keep variable length record.
    • Allocation sizes (primary and secondary) are automatically set according to the number of anticipated pages.
  2. PDF may be members of a PDS or a PDSE.  In that case, these configuration elements are ignored, keeping in mind that those PDS / PDSE must be allocated beforehand and already exist when programs run.
Protection:

PSWD.USER indicates whether target PDF will be protected at user level – meaning a password will be required to just open the document.  If no value is provided in PSWD.USER, PDF target document will not be protected at user level.

PROTECTION parameter indicates whether PDF built will be protected at owner level or not.  If a value is provided, PDF will be protected at owner level and permissions will be set according to the value which must be a logical OR of the following numbers:

  • 4   ⇒  Printing permitted
  • 8   ⇒  Modifications of PDF is permitted
  • 16 ⇒  Cut and Paste from PDF is permitted
  • 32 ⇒ Introduction of comments and form fields is permitted

If PDF is protected at owner level (say PROTECTION line is defined) and no value is provided for PSWD.OWNER, a random password will automatically be picked up by the engine.  Of course, these values found in configuration file may be overidden by calling SetProtection() function.

NB: a value of 60 (60=32+16+8+4) is somehow useless since it would indicate that owner protection is rtequired but that everything is permitted …

PDS – PDSE | Directories:

If set, all images and forms will be taken respectively either from the configured directories (Windows and Linux) or from configured PDS (Partitioned Data Set) where these images and forms will be present as members (MVS).  Application will thus give identifiers which are supposed to point either at members within the configured PDS or as files located within the configured directories. Note that in the latter case, extensions “.jpg” and “.frm” will be automatically appended to the 8 characters strings provided in Image() and SetForm() functions.

For example, with the setting above, function SetForm(“DMOFPDF1”) will fetch the form from file P01.CFPDF3E.FRM(DMOFPDF1).  If these parameters are not set, forms and images given as parameters in functions Image() and SetForm() are assumed to point at full pathnames.

Transcoding table:

If set, parameter TBEBCASC should point to a binary file where the 256 first characters are the binary values which will be taken into account for all EBCDIC to ASCII transcoding. If not set, a default transcoding table will be taken into account.  This file should be defined as: LRECL=64 – RECFM=FB.

Exemple of such a transcoding file content on z/OS :