UnForm’s power and flexibility can be enhanced by using it in conjunction with VSI-FAX, the leading cross-platform fax software solution. UnForm and VSI-FAX run on many of the same platforms, and together are a powerful and unique solution for electronic form and report production and distribution.
UnForm is designed to work as a filter, accepting standard text input from your application’s print runs, analyzing the text, and adding enhancements and process control while sending the job out to a spooler, device, or VSI-FAX. Once UnForm has control of the job, it can add graphical enhancements, manipulate the text, change fonts, and more. In addition, it can generate multiple, unique copies and route those copies to different devices (including VSI-FAX!)
If your application integrates with VSI-FAX as a spool device, UnForm can be integrated in much the same way:
|uf90c -f <rulefile> | vfx -n<phonenumber> -F pcl
Note: if your version of VSI-FAX is lower than 5.0, then you may need to add a -nohpgl option to the uf90c command line, in order to force pure pcl5 output.
If your application can print a fax number on each form, then UnForm can fax individual forms, or sequential groups of forms, to that fax number by manipulating the output device. It can simultaneously or selectively print hard copies as well. UnForm can do this through its support for Business Basic code blocks that execute while the job is processing.
For example, here is a sample of a code block that will automatically send the output of a second invoice copy via vsifax, splitting the job up as the fax number changes during printing:
precopy{ # get fax number from print stream (column 1, row 1, 12 bytes) faxnum$=trim(get(1,1,12)) # copy 2 is either faxed or skipped if copy=2 then if faxnum$>"" then output$=">vfx -F pcl -n "+faxnum$ if copy=2 then if faxnum$="" then skip=1 }
On Windows, UnForm can integrate with VSI-Fax by creating output files and then executing vfx.exe (or vsifax.exe on client workstations) with the desired options. The UnForm postdevice code block provides access to the output file after UnForm has closed the device.
In this example, the output device for copy 2 is set to a sequential file whenever the fax number for a page changes. When the output file changes, the post device code block is executed, and UnForm executes the proper VSI-Fax command to fax that file. Note that for a ProvideX installation, you should use the sys() function or an invoke verb rather than scall().
precopy{ if copy=2 then faxnum$=trim(get(1,1,12)) if copy=2 and faxnum$<>lastfaxnum$ then \ counter=counter+1,\ output$=str(counter)+".pcl" } postcopy{ lastfaxnum$=faxnum$ } postdevice{ if lastfaxnum$="" then return # set up the vsifax command line cmd$="vfx.exe -t tfn="+chr(34)+lastfaxnum$+chr(34)+" "+output$ x=scall(cmd$) erase output$ }
If your application can’t print the fax number on the pages, UnForm may still be able to obtain the fax number via direct file access (ProvideX only), a command line pipe on Unix, or ODBC on Windows.
The job management functions in UnForm can also be helpful in developing advanced VSI-FAX integration, by executing sub-jobs using the jobexec() function to create pcl work files of specific pages of a job, and then invoking the vfx command line to fax the sub-job work file.