Architecture

FPDF4ZOS may be understood as a combination of three types of components:

  • A core engine which handles everything related to generating native PDF instructions compliant to PDF format and syntax.
  • A set of upper level application programs, each of which is designed to build a given type of document
  • A set of external ressources which further drives the way documents are produced.

The picture below gives a rough idea about the way these three components interact with each other in order to produce PDF documents :

FPDF overall architecture

FPDF4ZOS Core engine

Core engine is composed of ‘C’ programs which enables the building of nice looking PDF documents. It offers a around 60 entry points which can be invoked from upper level application programs. Example of such entry points: Adding a new page, Setting current font, Setting current font color, Output Text, include an image, flushing PDF document, etc. Functions available behind all these entry points are fully described in the reference manual.

Depending on technical environment in which this tool is operated, core engine is available in different flavors:

  • z/OS and Windows: Core engine comes as a DLL which ought to have been link-edited accordingly. For z/OS, the executabe file should be in the STEPLIB of the calling JCL while for Windows, it should be located in a directory accessible from calling program(s).
  • Unix – Linux: core engine comes as a dynamic library named libfpdf.so which should be located in a directory accessible from calling program(s).

Upper level programs

For Windows and Linux-Unix, only C language interface is available when using FPDF4ZOS core engine.

For z/OS, upper level application programs may be coded either in C, PL/I or Cobol, thanks to Language Environment which has been available for years in Mainframes.

External Resources

There are several kind of external resources which contribute FPDF4ZOS operations:

  • Configuration files for DLL core engine. Depending on target PDF documents to be built, configuration files for core engine may vary significantly, especially memory requirements. Typically, number of images and forms, maximum size of a single image and of single form, maximum size of a page, etc. For further information about core engine confiugration file, see dedicated page on that topic.
  • Image and form : those should be located in either PDS / PDSE (for z/OS) or directories (for Win or Unx) core engine specified in configuration file. Note that for z/OS, forms should be in native EBCDIC format while JPG image will be processed as binary data.