      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      * * * * * * * *  THIS MODULE IS CASE SENSITIVE  * * * * * * * *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

       IDENTIFICATION DIVISION.
       PROGRAM-ID.     INVOICE.

      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   PDFLIB/PDI CLIENT: INVOICE GENERATION DEMO                *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

       ENVIRONMENT DIVISION.

       DATA DIVISION.
       WORKING-STORAGE SECTION.


       01  PDFLIB-CONSTANTS.
           05  PAGE-WIDTH         USAGE COMP-2 VALUE 5.95E+2.
           05  PAGE-HEIGHT        USAGE COMP-2 VALUE 8.42E+2.

       01  PDFLIB-CALL-AREA.
           05  P                       PIC S9(9) BINARY.
           05  RC                      PIC S9(9) BINARY VALUE ZEROS.
           05  PDFLIB-RETURN-LONG      PIC S9(9) BINARY.
           05  PDFLIB-RETURN-CHAR      PIC X(64) VALUE SPACES.
           05  PDFLIB-RETURN-FLOAT     COMP-2 VALUE ZEROS.
           05  PDFLIB-ERR-STRING       PIC X(128).

       01  WS-WORK-FIELDS.
           05  WS-INT                  PIC S9(9) BINARY.
           05  WS-INT1                 PIC S9(9) BINARY.
           05  WS-INT2                 PIC S9(9) BINARY.
           05  WS-ROW                  PIC S9(9) BINARY.
           05  WS-COL                  PIC S9(9) BINARY.
           05  WS-FORM                 PIC S9(9) BINARY.
           05  WS-PAGE                 PIC S9(9) BINARY.
           05  WS-PAGENO               PIC S9(9) BINARY.
           05  WS-BOLD-FONT            PIC S9(9) BINARY.
           05  WS-REGULAR-FONT         PIC S9(9) BINARY.
           05  WS-FONT-SIZE            COMP-2.
           05  WS-FLOAT                COMP-2.
           05  WS-FLOAT1               COMP-2.
           05  WS-FLOAT2               COMP-2.
           05  WS-FLOAT3               COMP-2.
           05  WS-FLOAT4               COMP-2.
           05  WS-LEADING              COMP-2.
           05  WS-Y                    COMP-2.
           05  WS-COL1                 COMP-2.
           05  WS-COL2                 COMP-2.
           05  WS-COL3                 COMP-2.
           05  WS-COL4                 COMP-2.
           05  WS-COL5                 COMP-2.
           05  WS-DISP-FLOAT           PIC 9(9).99.
           05  WS-STRING               PIC X(128).
           05  WS-STRING1              PIC X(128).
           05  WS-STRING2              PIC X(128).
           05  WS-STRING3              PIC X(128).
           05  WS-NULL                 PIC X(1) VALUE LOW-VALUES.




       PROCEDURE DIVISION.

           MOVE 12 TO WS-FONT-SIZE.

           MOVE 55 TO WS-COL1.
           MOVE 100 TO WS-COL2.
           MOVE 330 TO WS-COL3.
           MOVE 430 TO WS-COL4.
           MOVE 530 TO WS-COL5.

      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   CREATE A PDF OBJECT                                       *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDNEW" USING          P,
                                       RC.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   OPEN OUTPUT PDF FILE                                      *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           MOVE 0 TO WS-INT.

           STRING 'INVOICE.PDF' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDBEGDOC" USING       P,
                                       WS-STRING,
                                       WS-INT,
                                       WS-NULL,
                                       PDFLIB-RETURN-LONG,
                                       RC.

           IF PDFLIB-RETURN-LONG = -1
               CALL "PDERRMSG" USING   P,
                                       PDFLIB-ERR-STRING,
                                       RC.
               DISPLAY PDFLIB-ERR-STRING.
               MOVE +8 TO RETURN-CODE
               GOBACK.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   SET SEARCH PATH                                           *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
           STRING 'SearchPath' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING "'P390.PDFLIB.BIND.DATA" LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDSETPAR" USING       P,
                                       WS-STRING,
                                       WS-STRING2,
                                       RC.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   SET PDF INFORMATION                                       *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           STRING 'Creator' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'INVOICE.cbl' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDSETINF" USING       P,
                                       WS-STRING,
                                       WS-STRING2,
                                       RC.

           STRING 'Author' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'Thomas Merz' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDSETINF" USING       P,
                                       WS-STRING
                                       WS-STRING2,
                                       RC.

           STRING 'Title' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'PDFlib invoice generation demo (COBOL)' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDSETINF" USING       P,
                                       WS-STRING
                                       WS-STRING2,
                                       RC.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   OPEN PDI INPUT FILE                                       *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           STRING "STAT" LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           MOVE LOW-VALUES TO WS-STRING2.
           MOVE 0 TO WS-INT.


           CALL "PDOPNPDI" USING       P,
                                       WS-STRING,
                                       WS-STRING2,
                                       WS-INT,
                                       PDFLIB-RETURN-LONG,
                                       RC.

           IF PDFLIB-RETURN-LONG = -1
               CALL "PDERRMSG" USING   P,
                                       PDFLIB-ERR-STRING,
                                       RC.
               DISPLAY PDFLIB-ERR-STRING.
               MOVE +8 TO RETURN-CODE
               GOBACK.


           MOVE PDFLIB-RETURN-LONG     TO  WS-FORM.



      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   OPEN PAGE 1 OF INPUT DOCUMENT                             *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           MOVE 1 TO WS-PAGENO.
           CALL "PDOPNPAG" USING       P,
                                       WS-FORM,
                                       WS-PAGENO,
                                       WS-NULL,
                                       PDFLIB-RETURN-LONG,
                                       RC.

           IF PDFLIB-RETURN-LONG = -1
               CALL "PDERRMSG" USING   P,
                                       PDFLIB-ERR-STRING,
                                       RC.
               DISPLAY PDFLIB-ERR-STRING.
               MOVE +8 TO RETURN-CODE
               GOBACK.


           MOVE PDFLIB-RETURN-LONG     TO  WS-PAGE.



      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   LOAD FONTS                                                *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           MOVE 0 TO WS-INT.

           STRING 'Helvetica-Bold' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'host' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.


           CALL "PDLODFNT" USING       P,
                                       WS-STRING
                                       WS-INT,
                                       WS-STRING2,
                                       WS-NULL,
                                       PDFLIB-RETURN-LONG,
                                       RC.


           MOVE PDFLIB-RETURN-LONG     TO  WS-BOLD-FONT.


           STRING 'Helvetica' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'host' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.


           CALL "PDLODFNT" USING       P,
                                       WS-STRING
                                       WS-INT,
                                       WS-STRING2,
                                       WS-NULL,
                                       PDFLIB-RETURN-LONG,
                                       RC.


           MOVE PDFLIB-RETURN-LONG     TO  WS-REGULAR-FONT.


           COMPUTE WS-LEADING = WS-FONT-SIZE + 2.

      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   SET 'TOPDOWN' DIRECTIONAL FLAG                            *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           STRING 'topdown' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'true' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDSETPAR" USING       P,
                                       WS-STRING,
                                       WS-STRING2,
                                       RC.




           CALL "PDBGNPAG" USING       P,
                                       PAGE-WIDTH,
                                       PAGE-HEIGHT,
                                       WS-NULL,
                                       RC.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   FIT & PLACE IMPORTED PAGE                                 *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           MOVE 0 TO WS-FLOAT1.

           CALL "PDFITPDI" USING       P,
                                       WS-PAGE,
                                       WS-FLOAT1,
                                       PAGE-HEIGHT,
                                       WS-NULL,
                                       RC.


           CALL "PDCLSPDI" USING       P,
                                       WS-PAGE,
                                       RC.



      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   PRINT THE ADDRESS                                         *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDSETFNT" USING       P,
                                       WS-REGULAR-FONT,
                                       WS-FONT-SIZE,
                                       RC.


           MOVE 170 TO WS-Y.


           STRING 'leading' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSETVAL" USING       P,
                                       WS-STRING,
                                       WS-LEADING,
                                       RC.



           STRING 'John Q. Doe' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING '255 Customer Lane' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDCONT" USING         P,
                                       WS-STRING,
                                       RC.

           STRING 'Suite B' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDCONT" USING         P,
                                       WS-STRING,
                                       RC.

           STRING '12345 User Town' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDCONT" USING         P,
                                       WS-STRING,
                                       RC.

           STRING 'Everland' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDCONT" USING         P,
                                       WS-STRING,
                                       RC.

      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   PRINT THE HEADER AND DATE                                 *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDSETFNT" USING       P,
                                       WS-BOLD-FONT,
                                       WS-FONT-SIZE,
                                       RC.

           MOVE 300 TO WS-Y.


           STRING 'INVOICE' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.




           STRING 'May 26, 2003' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   PRINT THE INVOICE HEADER LINE                             *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDSETFNT" USING       P,
                                       WS-BOLD-FONT,
                                       WS-FONT-SIZE,
                                       RC.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *  "POSITION {0 0}" IS LEFT-ALIGNED                           *
      *  "POSITION {100 0}" RIGHT-ALIGNED                           *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           MOVE 370 TO WS-Y.


           STRING 'ITEM' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {0 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL1,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING 'DESCRIPTION' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {0 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL2,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.
           STRING 'QUANTITY' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.
           STRING 'PRICE' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.
           STRING 'AMOUNT' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.



      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   PRINT THE ARTICLE LIST                                    *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDSETFNT" USING       P,
                                       WS-REGULAR-FONT,
                                       WS-FONT-SIZE,
                                       RC.


           COMPUTE WS-Y = WS-Y + (2 * WS-LEADING).


      * ARTICLE 1
           STRING '1' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING 'Super Kite' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL2,
                                       WS-Y,
                                       RC.

           STRING '2' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '20.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '40.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           COMPUTE WS-Y = WS-Y + WS-LEADING.

      * ARTICLE 2
           STRING '2' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING 'Turbo Flyer' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL2,
                                       WS-Y,
                                       RC.

           STRING '5' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '40.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '200.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           COMPUTE WS-Y = WS-Y + WS-LEADING.

      * ARTICLE 3
           STRING '3' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING 'Giga Trash' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL2,
                                       WS-Y,
                                       RC.

           STRING '1' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '180.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '180.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           COMPUTE WS-Y = WS-Y + WS-LEADING.

      * ARTICLE 4
           STRING '4' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING 'Bare Bone Kit' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL2,
                                       WS-Y,
                                       RC.

           STRING '3' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '50.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '150.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           COMPUTE WS-Y = WS-Y + WS-LEADING.

      * ARTICLE 5
           STRING '5' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING 'Nitty Gritty' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL2,
                                       WS-Y,
                                       RC.

           STRING '10' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '20.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '200.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           COMPUTE WS-Y = WS-Y + WS-LEADING.

      * ARTICLE 6
           STRING '6' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING 'Pretty Dark Flyer' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL2,
                                       WS-Y,
                                       RC.

           STRING '1' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '75.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '75.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           COMPUTE WS-Y = WS-Y + WS-LEADING.


      * ARTICLE 7
           STRING '7' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL1,
                                       WS-Y,
                                       RC.

           STRING 'Free Gift' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.

           CALL "PDSHOWXY" USING       P,
                                       WS-STRING,
                                       WS-COL2,
                                       WS-Y,
                                       RC.

           STRING '1' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL3,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '0.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL4,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           STRING '0.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.

           COMPUTE WS-Y = WS-Y + WS-LEADING.





           COMPUTE WS-Y = WS-Y + WS-LEADING.

           CALL "PDSETFNT" USING       P,
                                       WS-BOLD-FONT,
                                       WS-FONT-SIZE,
                                       RC.

           STRING '845.00' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING.
           STRING 'position {100 0}' LOW-VALUES
                   DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDFITTLN" USING       P,
                                       WS-STRING,
                                       WS-NULL,
                                       WS-COL5,
                                       WS-Y,
                                       WS-STRING2,
                                       RC.



      * CLOSING TEXT

           STRING 'Terms of payment: <fillcolor={rgb 1 0 0}>30 days
      -    'net. <fillcolor={gray 0}>90 days warranty starting at
      -    'the day of sale.'
            LOW-VALUES DELIMITED BY SIZE INTO WS-STRING1.
           MOVE 0 TO WS-INT1.
           STRING 'alignment=justify leading=120% fontname=Helvetica
      -    'fontsize=12 encoding=host '
            LOW-VALUES DELIMITED BY SIZE INTO WS-STRING2.

           CALL "PDCRETF" USING  P,
                                WS-STRING1,
                                WS-INT1,
                                WS-STRING2,
                                PDFLIB-RETURN-LONG,
                                RC.

           IF PDFLIB-RETURN-LONG = -1
               CALL "PDERRMSG" USING   P,
                                       PDFLIB-ERR-STRING,
                                       RC
               DISPLAY PDFLIB-ERR-STRING
               MOVE +8 TO RETURN-CODE
               GOBACK.

           MOVE 0 TO WS-INT1.
           MOVE 10.000000 TO WS-FLOAT1.
           MOVE 0.000000 TO WS-FLOAT2.
           MOVE 230.000000 TO WS-FLOAT3.
           MOVE 170.000000 TO WS-FLOAT4.
           STRING
            LOW-VALUES DELIMITED BY SIZE INTO WS-STRING1.

           CALL "PDFITTF" USING  P,
                                WS-INT1,
                                WS-FLOAT1,
                                WS-FLOAT2,
                                WS-FLOAT3,
                                WS-FLOAT4,
                                WS-STRING1,
                                PDFLIB-RETURN-CHAR,
                                RC.

           MOVE 0 TO WS-INT1.

           CALL "PDDELTF" USING  P,
                                WS-INT1,
                                RC.

      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   CLOSE PAGE                                                *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDENDPAG" USING       P,
                                       WS-NULL,
                                       RC.




      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   CLOSE EVERYTHING DOWN                                     *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDENDDOC" USING       P,
                                       WS-NULL,
                                       RC.


      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   DELETE THE PDF OBJECT                                     *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           CALL "PDDELETE" USING       P,
                                       RC.

      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
      *   END THE PROGRAM                                           *
      * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

           MOVE ZERO                   TO RETURN-CODE.
           GOBACK.

       END PROGRAM INVOICE.


