FnSnap: Printing and PCL
Font Management
FNFONT$*30 - Create a PCL font string
FNFONT$*30(SYMBOL_SET$,PROPORTIONAL,CHR_PER_INCH,STYLE$,WEIGHT$,TYPEFACE$)
Description|
Creates an HP 5 PCL font string from certain parameters
Functions used |
- Variables
- Comments
FNLOADFONT$*50 - Loads a PCL font to printer
FNLOADFONT$*50(NUMBER$,FONTCALL$*50;FONT$*100,OUTFILE)
Description|
Moves a downloadable font into an open display file for printing and returns the font calling string to the program. If the font file does not exist or is invalid the font string is still returned to the program.
Functions used |
- Variables
- Comments
GENERAL
Reprinting Reports
FNCLEANLOG - part of FNREPRINT used to remove out of date reports
Reviews a log file of reports available for reprinting. If no destroy date has been entered a default of 30 days is entered. If a report delete date has expired FNCLEANLOG will delete the report and update the log to indicate the date of deletion. If a report is marked as deleted and the deletion occurred more than 7 days ago then the report log entry will be removed.
FNCLEANLOG(;REPORTLOG)
- Functions used
- Variables
REPORTLOG | Optional file number for a report log to be processed. Generally omitted |
LOGNAME$ | Not entered her, LOGNAME$ has previously been stored as a variable in the library by another function. |
- Comments
This function is generally run by pressing F4 in the reprint reports list box.
FNOPEN - create a log file for saved reports
Opens a display file in a specified directory. The file name is determined as a sequence number with the leading characters specified in FLNM$. The name of the open file and the number of the open file are returned to the calling program, ready for creating a RAW print file.
FNOPEN(&FLNM$,&FLPATH$;PRINTDESC$*80,LLEN,PRINTTYPE$,SAVE_DAYS)
- Functions used
- Variables
FLNM$ | The leading few characters of the file name to be opened. The function will complete the file name with a sequence number for that type file in the specified path. |
FLPATH$ | The path, either absolute or relative, where the print file should be created |
PRINTDESC$ | A description of the file to appear in the REPORTLOG reprint dialog listing |
LLEN | The length of each line in the display file or zero (0) if EOL=NONE should be used in the open statement |
PRINTTYPE$ | If omitted "ALL" will be entered meaning the report can be printed to an NWP printer using preview. Other options are "DIRECT" and "MATRIX" if a specific printer type is required due to character string that are not compatible with NWP. |
SAVE_DAYS | The number of days a report should be retained for reprinting. If zero (0) is entered no destruction date will be entered, but the first time that FNCLEANLOG is run after the report creation a destroy date of 30 days will be substituted. |
- Comments
To save a report for a long time enter a destroy date number of days significantly in the future such as 365 or 500
FNMENUACCESS - used in connection with FNREPRINT to determine user permission to reprint a report
If WORKMENU is being used then FNMENUACCESS checks the permission files to determine if the user has permission to create the report. If no permission exists to create the report then it cannot be reprinted and is excluded from the detail list of reports available for reprint.
FNMENUACCESS(MNAME$*10,MSEQ$*3,MPGM$*50)
- Functions used
- Variables
MNAME$ | NAme of the menu from which a report was created |
MSEQ$ | Sequence number of the menu from which the report was created |
MPGM$ | The program call in WORKMENU that allowed the report to be created |
- Comments
This function is used by FNREPRINT to determine user rights for reprinting a report. The variables are all obtained from REPROTLOG.fil and passed to this function to determine whether access should be granted for reprinting.
FNPRINT - prints a saved report opened using FNOPEN
Issued immediately after the CLOSE statement of a file opened using FNOPEN to send the stored print file to a specified printer. Print specification substitutions for the specified printer are performed during this print process for the RAW print file.
FNPRINT(FILNM$*100,PRINTER$*50)
- Functions used
- Variables
FILNM$ | The name and path of the stored RAW file to be printed. |
PRINTER$ | A normal BR printer designation. Can be a substitutable printer type such as \\\\10 or a specific printer such as \\\\server01\\hplaser |
- Comments
FILNM$ is generally shown as filpath$&filnm$, the two variables returned to the calling program by the FNOPEN function
FNREPRINT - displays a list of available saved reports and prints selected report
Displays a list of report quantity by month created and allows selection of a month. The user is then presented with a list of the reports created that month for which permission exists for reprinting.
[PICT(PICS\SNAP0003.ptf)]
[PICT(PICS\SNAP0004.ptf)]
FNREPRINT(;ALL,LOGNAME$*100,LOGKEY$*100)
- Functions used
- Variables
ALL | If true shows all entries regardless of security rights |
LOGNAME$ | Name of the log file if other than REPORTLOG.fil |
LOGKEY$ | Name of the index file if other than REPORTLOG.idx |
- Comments
A program can be created that includes only this function to allow menu access to reprinting
PCL and NWP formatting
Bar Codes and addresses
- FNBARCODEM - Prints postal bar code to a MATRIX printer
FNBARCODEM(ODEV,ZIP$;INDENT)
Prints a postal bar code on a matrix printer
- Functions used
NONE
- Variables
ODEV | File number of open print job |
ZIP$ | Zip Code to be translated to Postal Net |
INDENT | Default is 10 characters. If other than the default is desired enter the character position of the start of the bar code. |
- Comments
- FNCODE3OF9 - Creates 3 of 9 Bar code in PCL
Prints a bar code in 3 of 9 format
FNCODE3OF9(PRINTFILE,V,H,TEXT$*30,PRNTXT$;HEIGHT,CHECKD) !:
- Functions used
FNPRINTBOX
- Variables
PRINTFILE | |
V | |
H | |
TEXT$ | |
PRNTXT$ | |
HEIGHT | |
CHECKED |
- Comments
- FNCODEUPC - Creates UPC bar code in PCL
FNCODEUPC(PRINTFILE,V,H,TEXT$*30;HEIGHT) !:
Description|
Prints a bar code in UPC format
Functions used |
- Variables
- Comments
- FNENVELOPE - Prints an envelope with return address and Postal Bar Code
Prints an envelope on a laser printer with postal bar code and a return address if a specific overlay file exists (this will be changed in the future to make the return address an option
FNENVELOPE(PRTFILE,DATAFILE,SIZE$;SUPRET,MAT INNAMES$,NOLBLS,NOCLOSE)
- Functions used
FNPOSTNET |
FNPRINTBOX |
FNTYPE |
- Variables
PRTFILE | Number of open print file to which envelope will be printed |
DATAFILE | Number of the file that contains the graphic for the return address |
SIZE$ | Code indicating the envelope size to be printed |
SUPRET | Return address is suppressed if this is TRUE, if FALSE return address and graphic are printed |
MAT INNAMES$ | Matrix containing the name and address to be printed |
NOLBLS | Number of copies of the printed envelope to be printed |
NOCLOSE | If this is TRUE then the print file is to be left open. If false the default is to close the print file after printing the envelope. |
- Comments
- FNGETZIP - extracts a zip code from an address line
Searches then end of the passed string to obtain a valid zip code. If one is found then the zip code excluding any dash is returned as the value of the function
FNGETZIP$(ADD$*50)
- Functions used
- Variables
ADD$ | A right trimmed string that carries a zip code at the right hand end. |
- Comments
- FNLABEL - prints a 3 1/3 x 4 laser label on 3 x 2 stock
Prints a mailing label including postal zip bar code on a 3x4 6 to a sheet laser printed label
FNLABEL(FILNUM,MAT FADD$,MAT TADD$;START,NUMBER)
- Functions used
FNPRINTBOX
FNDRAWBOX
FNGETZIP
FNPOSTNET
- Variables
FILENUM | File number of already open display or print file |
MAT FADD$ | From Address matrix. Array of three elements |
MAT TADD$ | To address matrix. Array of 3 or 4 elements |
START | Starting number on the label sheet containing 6 3 x 4 labels |
NUMBER | Quantity of labels to prepare |
- Comments
- FNPOSTNET - Prints the Postal Bar Code created by FNPOSTNET$
FNPOSTNET(PRINTFILE,V,H,TEXT$*20) !:
Description|
Print postal bar code to a laser printer in PCL format
- Functions used
FNPOSTNET |
- Variables
PRINTFILE | Number of open print file to which the bar code will be printed |
V | Vertical position of the upper left corner of the bar code in inches |
H | Horizontal position of the upper left corner of the bar code in inches |
TEXT$ | Postal zip code to be translated to a bar code |
- Comments
Works in PCL and NWP modes
- FNPOSTNET$*4000 - Creates a postal bar code in PCL
FNPOSTNET$*4000(TEXT$*20) !:
Description|
Creates a postal bar code in PCL format
- Functions used
FNPRINTBOX
- Variables
TEXT$ | The postal bar code in a string variable. |
- Comments
If the string variable cannot be converted into a valid postal zip code FNPOSTNET will return a blank.
Forms and formatting
- FNDRAWBOX - Prints a four sided shaded box on PCL
FNDRAWBOX(PRINTFILE,VP,HP,VL,HL,WEIGHT;FILL)
Description|
PCL5 code to print a box with outline and shading to an HP compatible laser printer
Functions used |
- Variables
- Comments
- FNGREYBAR - Creates the overlay used in FNGREYBAR$
FNGREYBAR(PRINTFILE,V,H,BV,BH,SHADE,HEAD,BAR)
Description|
Creates the gray bar PCL code used by FNGREYBAR$
Functions used |FNPRINTBOX
- Variables
- Comments
- FNGREYBAR$ - Overlays a printout with gray bar effect
FNGREYBAR$(MACRO,PRINTFILE,V,H,BV,BH,SHADE,HEAD,BAR)
Description|
Creates a PCL5 macro that simulates green bar paper and returns the macro call
Functions used |FNGREYBAR
- Variables
MACRO | Macro number to assign |
PRINTFILE | Number of open print file |
V | Upper left corner of paper in inches (usually 0) |
H | Upper left corner of the paper in inches (usually 0 but could be 0.5 to allow for notebook holes). |
BV | Vertical height in inches of the area to be covered with gray bars |
BH | Horizontal width in inches of each the area to be covered by gray bars |
SHADE | Depth of shade of the bars in multiples of 10 form 0 to 100 (recommend 20 or 30) |
HEAD | Size in inches of the blank space at the top for title and other header information |
BAR | height on inches of the gray bars |
- Comments
- FNMAKEPCL - converts an HP6l saved file into a file for PCL overlay
Processes a display file created by print through an HP6L print driver to a file. FNMAKEPCL removes the characters necessary to prepare the file for being a MACRO overlay or a part of a continuous print job.
FNMAKEPCL(INFILE$*100,OUTFILE$*100)
- Functions used
- Variables
INFILE$ | The name of the saved HP6L print file to be converted |
OUTFILE$ | The name of the file to be created as a result of the conversion |
- Comments
- FNPRINTBOX - Creates a PCL line and positions formatted text in PCL
FNPRINTBOX(PRINTFILE,V,H,BV,BH,SHADE;TV,TH,TEXT$*6000,CPI,FONT$*40) !:
Description|
PCL5 code to print a line and optionally formatted text to an HP compatible lase printer
Functions used |
- Variables
V | Vertical position of upper left corner of print area in inches |
H | Horizontal position of upper right corner of print area in inches |
BV | Vertical depth of the print area below V in inches |
BH | Horizontal width of the print area to the right of H |
SHADE | Index for gray shading in multiples of 10 from 0 (white) to 100 (black) |
TV | Vertical position of text to print below V in inches |
TH | Horizontal position of text to print to the right of H in inches - -1 causes the text to be centered in PCL mode. -1 is not compatible with NWP. |
TEXT$ | Text string to be printed starting at TV TH |
CPI | |
FONT$ |
- Comments
- FNPRINTFORM$*40
FNPRINTFORM$*40(FILNUM,FORMFILE,SHORTNAME$)
Description|
Extracts a form,page,macro or font from a library file and places it into an existing open display file for printing
Functions used |
- Variables
FILNUM | Number of existing open print file to receive form. The file should be opened with EOL=NONE. |
FORMFILE | Number of existing open file containing the form to be printed. |
SHORTNAME$ | Eight character name for the storied form. This is the key-name within the FORMFILE |
- Comments
The function reads through the records of the FORMFILE until a match for the SHORTNAME is found. That record along with subsequent records containing the same SHORTNAME are added to the open print file. Records are transferred in 32000 bit chunks so the transfer is quite rapid.
- FNSIGNBOX - Prints a signature or small graphic in PCL
FNSIGNBOX(FILNUM,V,H,SIGFIL,SHORT$,&PASS$)
Description|
Extract a small graphic such as a signature from a library file and place it at a specified location on a document
Functions used |
- Variables
FILNUM | Number of open print file to which the signature should be added |
V | Vertical position in inches of the upper left corner of the graphic to print |
H | Horizontal position in inches of the left hand edge of the graphic to print |
SIGFIL | The number of the file containing the signature graphic |
SHORT$ | The eight character name of the signature to be used. If this case sensitive name is not found in the file no signature is printed |
&PASS$ | Password - case sensitive. Must match the password saved for the signature or no signature will be printed. The password is passed back to the application so that on a check run or similar application the operator will not have to enter the password for each check. |
- Comments
The signature file is built using a separate utility program names SIGPRN.br. The signature is taken from the print file created by printing a Word document containing just the signature to an HP6L laser printer driver in print to file mode. The utility program print a facsimile of the signature as part of the import process. The facsimile is overlain with reference lines showing where the upper left corner of the print graphic appears.
The signature is limited to one 32000 bit record. Consequently large or complex signatures or graphics may not be compatible and may need to be made smaller or less compiles in order to work with this particular program.
RTF Printing
FNRTFSTART - opens a source file to produce an RTF file using RTFLIB.dll
Opens a file ready to receive data for creating an RTF file using LIBRTF.dll
FNRTFSTART(HEADER$*100,FOOTER$*100,TITLE$*500,MAT HEADER$;CELLNO)
- Functions used
- Variables
HEADER$ | Text to be displayed as a header on each page of the report |
FOOTER$ | Text to be displayed as a footer on each page of the report. To include a page number include "[ PAGE]" as a part of the line. |
TITLE$ | Text to be displayed at the top of the first page only as a report title |
MAT HEADERS$ | The matrix including the bar delimited text that should appear in the header bar at the top of each column |
CELLNO | An optional cell number for the SPC file if a header that repeats automatically on each page is to be used. If omitted the headers will appear on the first page only formatted exactly the same as the rest of the RTF table that is being created. |
- Comments
FNRTFEND - turns a source file built with FNRTFSTART into a finished document
Converts
FNRTFEND$*100(RTFNO,RTFNAME$*100,RTFSPEC$*100;WORD)
- Functions used
- Variables
RTFNO | The file number of the display file that was opened when FNRTFSTART was called |
RTFNAME$ | The name and path of the source file to be created when RTFNO is processed by FNRTF to RTF. |
RTFSPEC$ | The name of the RF specification file that contains style formats to be used in creating the RTF file |
WORD | A flag to indicate whether WORD should be called at the end of the creation process (True) or the RTF file should not be viewed at the end of the process (false) |
- Comments
A sample specification file looks like the following
LET LMARGIN=.75 LET RMARGIN=1.0 LET TMARGIN=.50 LET BMARGIN=.50 LET ORIENTATION$="PORTRAIT" LET PAPER$="LETTER" LET CHECKLIST=0 LET LEFTTEXT$="" LET NUME=0 MAT TYPES$(12) LET TYPES$(1)="H" LET TYPES$(2)="F" LET TYPES$(3)="D" LET TYPES$(4)="S" LET TYPES$(5)="T" LET TYPES$(6)="A" LET TYPES$(7)="B" LET TYPES$(8)="C" LET TYPES$(9)="E" LET TYPES$(10)="G" LET TYPES$(11)="N" LET TYPES$(12)="I" MAT STYLES$(12) LET STYLES$(1)="li0ri0fARIALfs14cfBluetc3.25Header" LET STYLES$(2)="li0ri0fARIALfs8cfBlacktc3.25Footer" LET STYLES$(3)="li0.5QJfPALATINOri0fs12tl0.5tl1.0tl1.5td5.4Data" LET STYLES$(4)="li0.5QCsa1ri0Bfs19fARIALtl0.5tc3.25Title Page" LET STYLES$(5)="li0.5QCfARIALsa1ri0Bfs18tl0.5tc3.25Heading 1" LET STYLES$(6)="li0.25ri0fARIALBfs17tl0.5tr5.4Heading 2" LET STYLES$(7)="li0.25ri0fARIALBfs15tl0.5tr5.4Heading 3" LET STYLES$(8)="li0.25ri0fARIALBfs13tl0.5td5.4Heading 4" LET STYLES$(9)="fi-0.5td0.75li1.0ri0fPALATINOfs12tl0.5tl1.0td6.0Detail steps" LET STYLES$(10)="fi-0.4li1.0ri0ft61fs10fCOURIERtl0.5tc4.0td5.4Program lines" LET STYLES$(11)="li0.5ri0BfPALATINOfs12cfDKBLUEtl0.5tl1.0tl1.5td5.4New Items" LET STYLES$(12)="fi-1.25li2.0ri0fPALATINOfs12tl2.0Options" MAT CELLS$(10) rem LET CELLS$(1)="li0.5tg0.125c1btrlb1vthlc1.5btrlb1vthc" rem LET CELLS$(2)="li0.5tg0.125fPALATINOfs10c3btrlb1vthlc3btrlb1vthl" rem LET CELLS$(3)="li0.5tg0.125fPALATINOfs10c2btrlb1vthlc2btrlb1vthlc2btrlb1vthl" rem ODD numbers are headers even numbers are the following table LET CELLS$(1)="li0.0tg0.100fPALATINOfs10trh" LET CELLS$(1)=CELLS$(1)&"c3.0brtlrb1vthcsh15" LET CELLS$(1)=CELLS$(1)&"c3.0brtlrb1vthcsh15" LET CELLS$(2)="li0.0tg0.100fPALATINOfs10" LET CELLS$(2)=CELLS$(2)&"c3.0brtrlb1vthl" LET CELLS$(2)=CELLS$(2)&"c3.0brtrb1vthl" LET CELLS$(3)="li0.0tg0.100fPALATINOfs10trh" LET CELLS$(3)=CELLS$(3)&"c2.0brtrlb1vthcsh15" LET CELLS$(3)=CELLS$(3)&"c2.0brtrlb1vthcsh15" LET CELLS$(3)=CELLS$(3)&"c2.0brtrlb1vthcsh15" LET CELLS$(4)="li0.0tg0.100fPALATINOfs10" LET CELLS$(4)=CELLS$(4)&"c2.0btrlb1vthl" LET CELLS$(4)=CELLS$(4)&"c2.0btrlb1vthl" LET CELLS$(4)=CELLS$(4)&"c2.0btrlb1vthl" LET CELLS$(5)="li0.5tg0.100fARIALfs10" LET CELLS$(5)=CELLS$(5)&"c3.0btrlb1fCOURIERvthl" LET CELLS$(5)=CELLS$(5)&"c0.5fs8btb1vthc" LET CELLS$(5)=CELLS$(5)&"c0.5btlb1fPALATINOvthc" LET CELLS$(5)=CELLS$(5)&"c1fs10btrlb1fARIALvthr" LET CELLS$(5)=CELLS$(5)&"c1brtrlb1vthr" LET CELLS$(5)=CELLS$(5)&"c1brtrlb1vthr" LET CELLS$(5)=CELLS$(5)&"c1brtrlb1vthr" LET CELLS$(5)=CELLS$(5)&"c1brtrlb1vthr" LET CELLS$(5)=CELLS$(5)&"c1brtrlb1vthr" LET CELLS$(7)="li0.0tg0.100fPALATINOfs10trh" LET CELLS$(7)=cells$(7)&"c0.5brtrlb1vthcsh15" LET CELLS$(7)=cells$(7)&"c0.5brtrlb1vthcsh15" LET CELLS$(7)=cells$(7)&"c0.5brtrlb1vthcsh15" LET CELLS$(7)=cells$(7)&"c0.5brtrlb1vthcsh15" LET CELLS$(8)="li0.0tg0.100fPALATINOfs10" LET CELLS$(8)=cells$(8)&"c0.5brtrlb1vthc" LET CELLS$(8)=cells$(8)&"c0.5brtrlb1vthc" LET CELLS$(8)=cells$(8)&"c0.5brtrlb1vthc" LET CELLS$(8)=cells$(8)&"c0.5brtrlb1vthc"
FNREFERENCE - Prints a page reference on bottom right corner in PCL
FNREFERENCE(PTYPE$,REFERENCE$;PFILE,LGL)
Description|
Prints a page reference in PCL in the lower right corner of a printed page
Functions used |
- Variables
PTYPE$ | Must start with "HP" in order for the reference code to be printed |
REFERENCE$ | Reference code to be printed in lower right corner of page |
PFILE | The number of the currently open print file where the reference should be inserted |
LGL | If True print for a legal sized page otherwise print for letter sized |
- Comments
FNPRINT_FILE - Prints a text file on Grey bar Paper
FNPRINT_FILE(FILE_NAME$*100;INDENT)
Description|
Prints an ASCII file formatted at 100 character lines with a ruler at the top of the page
Functions used |
- Variables
FILE_NAME$ | Name of display file to print on greybar paper |
INDENT | Number of spaces that each line of text should be indented from the left margin |
- Comments
FNPRINTERS - Creates a printed list of printers and a printers.sys file
FNPRINTERS(;DRIVE_LOC$)
- Description
Not to be confused with the PRINTER.SYS PCL/NWP substitution parameters
Functions used |
- Variables
- Comments