Welcome to ImageMAKERHome Product Information Component Info White Papers Specifications Technical Support Demo Download About ImageMAKER

The Leader in TIFF Imaging Solutions






ImageMAKER Faxbatch provides a robust set of tools to automate faxing from batch orientated Windows Print applications. If the application can print a document to a printer, using fax merge it can be automated to send the same document to a fax machine.

Three main components form the basis for our Faxbatch Solution: A Fax Print Driver, a Control Dialog Executable, and a OEM Supplied DLL.. The print driver installs as a normal Windows print driver, and outputs pages to TIF, DCX, or PCX formats. The Control Dialog is a separate EXE application, spawned by the print driver on startup, and provides all of the User Interface screens. The OEM Supplied DLL is implemented as a simple DLL which is used to monitor the text stream during printing.

A second tier of components round out the picture. These components include a Cover Page Generator, Forms Merge Engine, and numerous Fax Viewers. These second tier components are not absolutely required to implement Faxbatch, but add considerable flexibility in providing a complete end-user solution.

Our two goals in providing Faxbatch extensions are: to work with as many applications as possible; and to minimize the amount of programming required to integrate fax support. To this end, we have included support for the following:

Embedded control codes within the print stream :

Control strings can embedded in the print stream, either as part of the report, or pre-pended as a separate page to the report. These control strings are then picked up by the OEM Supplied DLL out of the print stream. Control strings are identified either by a start and end sequence, or by a row/col position on the page.

Recognized control functions:

  • Ignore Line - don’t print a specified line
  • Break at start of page - start a new file at the top of current page
  • Break at end of page - start a new file at the top of next page
  • Ignore Page - don’t print the current page

Using these methods should be sufficient to solve most fax enabling problems.

The following sections provide a detailed description of each of the component objects, an overview of how the process works, and recipes for enabling common applications.

Component Objects:

faxbatch01.gif (8783 bytes) 


Print Driver:

The Print Driver translates Windows GDI calls into multi-paged fax images. It talks to the Control Dialog at start of each job, requesting the name of the file to create, and the name of the control string template definition file. It talks to the OEM Supplied DLL while formatting text, passing each text string in the print stream to the DLL before sending it through to the GDI for rendering onto the Fax Image.

Control Dialog:

The Control Dialog is provided by the Fax Server Vendor, and provides a simple addressing UI. This UI can also be set up to handle the Faxbatch setup information. The Control Dialog tells the print driver the name of the output tiff file.

Fax Server:

The Fax Server is the ultimate destination for the burst fax jobs. The Fax Server is provied by the OEM vendor. 

Fax Images:

These are the burst jobs created under control of the Print Driver, and OEM supplied DLL.

A Behind the Scenes look at Fax Merging:

The following steps outline how an application is fax enabled: 

1) Set up a sample print job .

A control string definition template is first selected (or defined). The user then goes about adding the control string information to the report These strings include a Fax Number, To field, and perhaps a ‘start of job’ indicator.

2)Print the report to the fax print driver.

On startup, the print driver spawns a Control Dialog EXE. At this point the user optionally verifies that the correct string definition template file is selected, and chooses an output fax file name.

3) The print driver requests the OEM supplied DLL to parse the text stream.

All text is first sent to the OEM supplied DLL for parsing before being printed. The function call returns a control value, indicating ‘ ignore line’, ‘start a new job at start of page’, ‘start a new job at start of next page’, or ‘punt this page’.

4) The control dialog adds the job to the fax server.

Once printing is complete, the control dialog places the burst jobs into the output fax server.

 

Control String Template Definition:

A sample control string definition template is minimally defined as follows:

Start Str End Str Len Description
<$SOJ$ > 0 start of job
<$EOJ$

>

0

end of job
</tn...

>

256

destination name
</tc...

>

256

destination company name
</tp...

>

120

destination fax phone number
</tt...

>

120

destination tel phone number
</te...

>

120

error phone fax number (if undelivered)
</fn...

>

256

from name
</fc...

>

256

from company name
</fp...

>

120

from fax phone number
</ft...

>

120

from tel phone number
</ss

>

0

transmit as standard resolution (default is fine)
</sthh:mm:ss

>

8

scheduled transmit time (24 hr clock)
</sdmm-dd-yy

>

8

schedules transmit date
</sr####

>

4

maximum # of retries. Default is 2
</sw####

>

4

sets the wait time between retries (minutes)
</sq...

>

256

name of fax queue database to submit job to
</sp

>

0

suppress page header (CIS)
</sx####

>

4

transmit as 'short pages' with minimum height '#'
</ct...

>

256

name of cover sheet template
</cl...

>

256

name of logo file for cover sheet
</cm...

>

256

name of ASCII text file containing cover page message
</cs...

>

256

cover sheet subject field
</cc...

>

256

name of signature file for cover sheet
</a01...

>

256

name of first attachment file
</a02...

>

256

name of second attachment file
</a03...

>

256

name of third attachment file, etc.
</zz

>

0

don't print this page (control codes only)

 

File Format Definition:

Control Strings are defined by the OEM, and are read and interpreted by the OEM supplied DLL.

Embedded:

[Start Sequence] [Maximum String Length] [Terminating Char String] [Terminating Char Set] [flags]

Flags:

  • X - don't print the 'start' and 'end' sequence strings in the output stream
  • C - set strings to case sensitive. Default is 'case insensitive'.

Position: [Row/Col/+-/Page] [Maximum String Length] [Start Offset] [Terminating Char Set]

  • The '+-' value indicates how many pixel columns to the left or right to match the input criteria
  • The Start Offset indicates how many ascii charcters to the right of the string to start pulling out information.

Debugging a String Definition Template :

To help build a string table, the OEM supplied DLL should output all strings to a 'shadow dump' file. The sample utility outputs to a c:\temp\mm.txt file. If a particular token string is not being properly located, then looking at the shadow file is the first place to start.

Some applications, including WORD sometimes does odd things when sending the strings to the print driver. In normal cases, all strings are sent top to bottom, right to left. Any change in formatting (size,

Character font, other attribute changes) generally result in the text being broken down into multiple strings. To ensure that the token and user data all get passed in as one string, it helps to keep all formatting information constant. Should you have problems, try re-formatting the complete string to be a different font, or font size.

A 'don't print this page' anywhere on the page means that the current page will not be rendered to the output file, but that all control strings will still be interpreted. This is a great way to insert additional control information which you know will not be faxed.

 

Recipes for Fax Enabling Common Windows Applications:

Following are sample instructions for fax enabling common applications. Each of these examples demonstrates the flexibility of the Faxbatch toolset, in that little to no programming is required to achieve the desired result.

 

Mail Merge (Word processing, contact manager)

  • Create a list of recipients (mail merge list)
  • Create the form letter (includes cover sheet page)
  • Link the recipient list to the form letter
  • Add necessary control strings to a separate page at the end of the letter
    • Address, name, and Phone number
    • Transmission details
    • Additional attachment files
    • End of Job, Don't render Page
  • Mail merge document to the fax printer

Process:

The print capture driver calls the OEM supplied DLL, which detects each 'end of job', in the print stream, and prepares a list of Tiff files and addresses to send to. At end of printing, the Control Dialog looks for and finds this control file, and submits all indicated jobs to the server.

 

Accounting Package (invoices, account statements, purchase orders)

  • Enable the 'shadow file' feature of the fax print driver
  • Print out a standard invoice report to the fax printer.
  • Look at the 'shadow file' (which contains Row/Col/String), and figure out appropriate Row/Col position containing addressing information.
  • Create a Control File which properly defines control string locations
  • Run the print process again, and in the Control Dialog, define the following:
    • Name of Control File
    • Default strings for each job (Cover page, From name, transmit details, etc.)
  • Select OK from the Control Dialog, and start the capture process.

Process:

The print capture calls the OEM supplied DLL, which detects each 'end of job', in the print stream, (based on a row/col position of a recognizable text string), and prepares the job list. The Control Dialog in turn process the job list at end of printing.

line

Sales: (866) 525-2170 Toll Free in North America
Sales: +1 (604) 525-2170  
Support: +1 (604) 525-2108  
Fax: +1 (604) 520-0029
Local (Pacific) time: GMT-8

ImageMAKER Development Inc.
#102 - 416 Sixth Street
New Westminster, B.C.
Canada V3L 3B2

Copyright 2000 - 2008, ImageMAKER Development Inc. All rights reserved.
Legal information | Privacy policy | Contact information