ippdfgraf

ippdfgraf

This program creates graphs in PDF.

It uses a parameter file in tables/gfx. This can be selected from the DF FipHdr
file and defaults to PDF_GFX.FIP

Keywords for the parameter file are :
    ; comment line
    newname:    (new name for the output file)          default: the same as input
    supercede:  yes/no Overwrite the output if it exists    default: do not
    outque:     output queue for the new file.          default: spool/2go or -o switch
    doneque:    done queue for the old file.            default: none or the -d switch
    dest:       Destination (as in sys/USERS)           default: none
    extra-fiphdr:   More fixed Fip Hdr fields to add to the file (before any new
matched additions)
                                default: none
    duplicate-output: make extra copies of the output   default: one single copy
only
        eg  duplicate-output:\PZ
        Here the FipHdr field PZ is checked and if the contents are 2 or more, the
output is duplicated that many times
        Otherwise a single output file only is created.
        FipHdr field S3 holds the copy number - so it can be used to make a unique
filename later on.
    script: script to run against the New file.     default: none
    log-line: extra logging information for the Fip log default: none
        Logging is done at the end of each page
            EN is filename
            EP is path
            S1 MAY be the size
            S2 is the pagenumber of pages generated from this input file
            S3 is the number of this particular copy when multiple
copies/duplicate-output are requested
    optional-ext:(FipSeq)
        possible, option ext for the file
        option-ext:.pdf
        ie try both with and without

    force-pdf-version: (0-14)
        force thePDF version to be this
        0 -> 9 for pdf 1.0 to pdf 1.9
        10-14 for PDFx1 PDFx3 and PDFa

    default-media-area: (FipSeq to define 4 values of 0, 0, width, depth)
        Defaults for total area to be imaged - including white space around any
image/bleed area

    default-grid-area: (FipSeq to define 4 values of offset bottom x, offset
bottom y, width, depth)
        Defaults for normal area that can be imaged - the first 2 are the offset
(pos) from the bottom left corner of the media area.
        These 3 are exactly the same thing.

    missing-colour: (C, Y, M, K)
        define the colour of background for any missing ad
        NOTE the 4 values are in the range 0-100
        default is a tasty papayawhip : 0, 20, 100, 0
    font-path: (path)
            Copy your user fonts into a directory and add it then to the list of search
paths.
        Otherwise, only the 14 standard fonts can be used.
        This is NOT for Windows where all fonts must be put in the System Fonts
folder
    use-standard-fonts: y/n
        use the 14 standard fonts (TimesRoman, Helvetica, etc) - yes or no - default
is yes
        turn this off if you are ONLY using custom fonts.
    embed-fonts: y/n
        NO - turn this off if you do NOT want to embed the fonts in the file (for
some reason !)
        default is YES
    default-font: (name of default font)
    default-font-name: (name)
        This should match exactly the PSname of the font
        Default is the first system font
        Default of defaults is 'Helvetica'

    replace-folio-string:(FipSeq)   (Replacement string in FipSeq)
        There can be up to 10 replacements

    pick-tray: (yes/no)
        Pick tray by PDF size       default - output device default
    print-scaling: (yes/no)
        Scale the output to fit     default - output device default
    set-resolution: (number from 72 to 2048 dpi)
        set the output resolution   default: 150 dpi
    use-transparency: (yes/no)
    transparency-colour: (hex value)
    transparency-color: (hex value)
        Set/configure transparency
        default is (for PDF 1.4 on) transparency is ON and rgb_white (0xFFFFFF) is
the colour
    add-pdf-comment: (CommentKey) = (FipSeq) [optsep (|) opt (2ndKey) = (FipSeq) ]
...
        Add Comment to PDF page
        The structure is Key = Value.  Multiple key=value may be added using a '|' as
a separator.
        add-pdf-comment:Author=\SA|Producer=Fip at pubo|Agfa-SpreadType=JUMP
        Note that user-defined keys should be defined as 7 bit ASCII string and the
use of special characters like /, \, #, or character codes higher than 127
should be avoided. The value of document info entry should not contain binary
data.
    compression-level: (0,1,2,3)
        Set the Compression level (see dynapdf book !)  default: 1
        (0-none, 1-default, 2-fastest, 3-max)

Where sections of FipHdr fields are required or changes to the output style,
use keywords : fixed, partial, combie, optional, repeat, newdate and/or style.
(see The SysAdmin manual for more information).

    They are normally specified :
        fixed:QZ    1234543
        partial:QT  ST,3,2,U,<,>
        combie:QY   ep|na,(0000000)a
        option:QE   ep,11,7,s
        repeat:QK   XK,-,3
    or  repeat:QP   PK,,4,#X
        style:QS    XN,%.03d

The FipHdr of the incoming file can also be used to change the
    PDF_FIPHDR:(yes/no)
        Add/Dont add the FipHdr to the output file  default: add
    PDF_OUTQUE:(FipSeq)
        Output folder to override the -o Input switch   default: /fip/spool/2go

Input Parameters are (all optional) :
Either
    -1 : path/filename for single shot      default: spooled
        The input file is NOT deleted
        If this does NOT start with a '/', it is assumed relative to the current
path.
Or
    -i : input queue                    default: spool/2pdfgfx
    -q : input queue                    default: spool/2pdfgfx
        If this does NOT start with a '/', it is assumed under spool.
        -q and -i are the same
    -d : done folder for the input file in FipSeq       default: none
        If this does NOT start with a '/', it is assumed under spool.
    -F : display Font names, calls and success in matching  default: spooled
    -H : extra FipHdr to add                default: none
    -L : do NOT log files in                default: log
    -o : output queue                   default: spool/2go
        If this does NOT start with a '/', it is assumed under spool.
    -w : file wait for files arriving across a network. default: no wait
    -z : default parameter file in tables/gfx       default: tables/gfx/PDF_GFX.FIP
    -v : print version number and exit

---NOTES---

1. Bounding Boxes/ Areas

There are 5. Which are in order of size (decending) :
- MEDIA - complete printable area with gutters - this will be the actual
dimensions of the whole PDF.
- CROP  - same as media normally
- BLEED - Bleed
- TRIM  - Chart with all its griddettes
- GRID  - basic grid for the chart ONLY
Lower levels MUST be wholly contained by those above
All take 5 variable x, y, wid ht - where x,y are the lower left corner

It is an excellent idea to have the x,y of the GRID as 0,0 so that all ads,
text elements, headings, fillers etc - all included files can be placed without
any maths to calculate the offset !! In this case, if gutters are required, use
a neg value for x,y in the MEDIAAREA (and possibly BLEEDAREA)
eg
default-media-area:-34, -42.5,  827.69, 1094.17
default-bleed-area:-34, -42.5,  827.69, 1094.17
default-trim-area:-10, -8, 140, 112
default-grid-area:0, 0, 120, 96

Note that the width and height of the MediaArea is the whole surface area - any
miscalculations will expand/contract the overall PDF size.

---------------
2. Fip smgl

2.1 Marks are :
 j:1 - TrimBox top left (for background and heads)
 j:2 - GridBox top left
 j:3 - GridBox bottom left
 j:4 - GridBox bottom right
 j:5 - GridBox top right
 j:6 - data point at start (furthest left)
 j:7 - data point at end (furthest right)
 j:8 - (not used)
 j:9 - Gridette posn

- There are a few builtins for folios for <z: (passthru)>

    gsave      - maps to a PDF save (ie same effect as EPS)
    grestore    - maps to a PDF restore (ie same effect as EPS)
        - The maximum allowed nesting level of save/restore graphics state operators
in PDF is 28.
    setcmykcolor    - maps EPS setcmykcolour 0.00 to 1.00 to the same PDF colour for
CMYK : 0 to 255
    setgray  - maps EPS setgray to a PDF tint (0->1 is stretched to a tint of
255->0)
    fip_pdf_circle  - one parameter = radius in points
              use <x: xlead> and <w: ws> to position exactly the bullseye beforehand
              use setcmykcolor to set the colour beforehand
    fip_pdf_chord   - p1 and p2 - width and height of containing box, p3 and p4 -
starting and ending angle
              use <x: xlead> and <w: ws> to position exactly the start point beforehand
              use setcmykcolor to set the colour beforehand
    rotate    - Note that EPS is counter-clockwise but PDF is clockwise : so the
neg has the opposite effect !
              use <x: xlead> and <w: ws> to position exactly the rotate point (esp for
QR and QC/QM)

---------------
List of Parameters :

- OVERALL PDF commands

    graph-type
    pick-tray
    pdf-title
    add-pdf-comment
    print-scaling
    background-file
    set-resolution
    compress-level
    transparency-color
    transparency-colour
    use-transparency
    setter-file
    force-pdf-version

- PDF boxes/areas/sizes

    default-bleed-area
    default-crop-area
    default-font-name
    default-grid-area
    default-image-area
    default-media-area
    default-page-area
    default-trim-area

- FONTS

    font
    default-font
    font-path
    embed-fonts
    use-standard-fonts
    alias-name

- DATA

    data-is-utf8
    data-sep
    blank-value
    sig-digits
    significant-digits
    decimal-places

    min-value-x
    min-value-y

    data-rule-colour
    data-rule?-colour
    data-rule-dash
    data-rule-ptsize
    data-rule?-ptsize

    data-x-field
    data-x-field?
    data-x-field-type
    data-x-field-type?
    data-x-fiphdr
    data-x-min-value
    data-x-min-value?

    data-y-field
    data-y-field?
    data-y-field-type
    data-y-field-type?
    data-y-fiphdr
    data-y-min-value
    data-y-min-value?
    data-y-singlepoint

    default-value-x
    default-value-y

    log-line
    newname
    optional-ext
    outque
    supercede
    doneque
    duplicate-output
    number-of-copies-xx
    script
    extra-fiphdr
    timing-stats

    create-metadata-file
    create-metadata-file?
    metadata-template
    metadata-template?

- MARKUP

    background-markup
    banner-markup
    head-markup

- GRIDS and LABELS

    grid-box-rule
    grid-box-rule-colour
    grid-box-rule-ptsize
    grid-box-shadow
    grid-box-shadow-colour
    grid-box-shadow-ptsize

    gridette-x-colour
    gridette-x-dash
    gridette-x-datathread
    gridette-x-every
    gridette-x-markup
    gridette-x-ptsize
    gridette-x-type

    gridette-y-colour
    gridette-y-dash
    gridette-y-datathread
    gridette-y-every
    gridette-y-markup
    gridette-y-ptsize
    gridette-y-type

    grid-x-padding
    grid-y-padding

    label-x-markup
    label-y-markup

- Normal FIPSEQ

    fixed partial combie option repeat style replace newdate unique valid lookup
perl merge sum filter recode include

---------------
Version Control

; 4l-m  26may26 ;lm redid default-font
; 4a-k  16feb26 multiple threads j6 j7 added ;gh speedy ;ij singlePt better
(loop) ;k cleanups
; 3f    28sep13 ;a added embed-fonts: y/n and default-font-name ;b-c licks ;e
15feb17 dyna v4
; 2b    10feb10 original version from 2b of ippdfglue

(copyright) 2026 and previous years FingerPost Ltd.