Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php:49) in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 50

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php:49) in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 50

Warning: include(/include/commonfunc.php): failed to open stream: No such file or directory in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 51

Warning: include(): Failed opening '/include/commonfunc.php' for inclusion (include_path='.:/usr/local/php5_6/lib/php') in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 51
ImageMAKER Tech notes: Windows 3.1 Printer Drivers
Welcome to ImageMAKERHome Product Information Component Info White Papers Specifications Technical Support Demo Download About ImageMAKER

The Leader in TIFF Imaging Solutions

Warning: include(/include/otherSites.html): failed to open stream: No such file or directory in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 134

Warning: include(): Failed opening '/include/otherSites.html' for inclusion (include_path='.:/usr/local/php5_6/lib/php') in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 134

Tech Note: The ImageMAKER Windows 3.1 Print Driver

The Print Capture Driver is designed to easily integrate into any fax application. Three modules are defined: Print Driver, Fax File API, and Control Dialog. ImageMAKER Print Capture is responsible for capturing print commands to an in-memory bitmap (using Microsoft’s UNIDRV.DLL). The Fax File API, which is integrated into the print driver, controls writing the bitmap to a TIF, BMP, DCX, or PCX image file format. The Control Dialog provides the user interface, linking the addressing, cover page generation, fax preview, and fax send functions to ImageMAKER Print Capture operation. The Control Dialog is implemented as a separate executable, called at start of printing, and it in turn controls the operation of ImageMAKER Print Capture. When printing is complete, ImageMAKER Print Capture reports back to the Control Dialog the status of the print job. To integrate ImageMAKER Print Capture into your environment, all you need do is modify the Control Dialog. Plenty of source samples are provided in C, Visual Basic, and Delphi.

To specify a Control Dialog Executable, you may edit the supplied .INI file (\windows\IMGFAX.INI). The .INI file tells ImageMAKER Print Capture which Control Dialog to call for its instructions, and provides a list of defaults. These defaults can be updated by the Control Dialog to influence the outcome of the print job.

Note that the name "Control Dialog" is a bit of a misnomer, which is retained only for historical reasons. The original purpose of this application was to put up a dialog which could be used by the end user to enter details of the fax destination, and preview the FAX and his cover sheet, which would be generated by the cover sheet generator. Many of our current users actually don't want any dialog to show or have any user intervention possible, for instance to handle server-side conversion. The control dialog application is still optionally launched, but despite its name it does not need to show a dialog.

The print capture driver is currently configured to support:

  • 8 x 11, 8 x 14, A4, A3, and B4 sized paper
  • Landscape and Portrait orientation
  • Regular (204x98) and Fine (204x196) resolution; higher and custom resolutions are available by special request
  • TIF (Gamma, Brooktrout, Group 3 and 4, MH, MR), DCX (Intel), PCX and BMP formats - PDF Scanned and PNG available on request
  • Multi-page files, or one page per file

Print Capture Integration

The following communication architecture is available within IMGFAX.DRV to aid product integration with your custom application:

  1. On start of print, Print Capture reads the contents of the IMGFAX.INI file . If no .INI file is found, Print Capture prompts the user for the output file name.
  2. If IMGFAX.INI is found, and a ControlDialogEXE file is specified, then print capture calls this executable, and waits for a response message. The response message defines the name of the file to output to, or returns an empty string (which forces the print driver to check for DefaultFileName again).
  3. If ControlDialogEXE is not specified, then print capture looks for DefaultFileName. If found, then it outputs to this file
  4. If neither ControlDialogEXE or DefaultFileName is specified, then print capture prompts for an output file name.

Included with ImageMAKER Print Capture is a sample Custom Control Dialog application IMG16DLG.EXE (Visual C Example) which is called by ImageMAKER Print Capture. Source to this application is provided as part of the object license.

The application makes a call to IMG16MFX.DLL to handle communication with the ImageMAKER Print Capture Driver. The Control Dialog may also communicate with the driver by updating fields in the IMGFAX.INI file (file type, break pages, default file name). When ImageMAKER Print Capture has completed the print capture process, it notifies the Control Dialog with a status message, including number of pages written or error return code. The maximum number of lines per page may be requested by a call to another routine; this can be used to determine whether the image sent was high or low resolution.

Supported fields within the \windows\IMGFAX.INI file are as follows:




The values of these settings are:

  • ControlDialogEXE: The fully-qualified name of the program to be invoked as the control dialog. May be left blank if none.
  • DefaultFileName: The fully-qualified name of the file to be generated, by default. The control dialog can override this at will.
  • FileType: This controls the output file type generated by the driver. Values available are:
    • -1: No output will be generated
    • 0: TIFF MH, image bits reversed (default, what GammaFax cards expect)
    • 1: TIFF MH, image bits in normal order
    • 2: Intel DCX
    • 3: ZSoft PCX
    • 4: TIFF MR 2D, image bits reversed
    • 5: TIFF MR 2D, image bits in normal order
    • 6: TIFF MMR (G4), image bits reversed
    • 7: TIFF MMR (G4), image bits in normal order
    • 8: TIFF PackBits
    • 10: Monochrome BMP
  • BreakPages: For TIFF files, if set to 0 will generate multi-page TIFF.; if set to 1 will generate individual images for each page.
  • ShadowFile: For debugging; if set to 1, will open a second file having the same name as the image file being generated, and the extension .DMP, which will contain the text strings that the driver has been asked to render.
  • DelayedCancel: Some applications can't handle a Cancel response from the driver; some versions of Outlook, for instance, fail to see that a cancel from the print driver has occurred, and will fail with a GPF. Setting this switch to 1 postpones acting on the Cancel response until the document completes. This switch may no longer be required.
  • Language: When the driver is built to accept external resource libraries, and an external resource library is present, this selects which language in the resource library will be used for strings and dialogs. Contact ImageMAKER tech support for details.
  • LeftMargin: The printer as it normally ships has no unprintable area on any side of the page. Some programs generate reports starting at the edge of the printable area; these reports, printed to our Print Capture driver, will be pushed up hard against the left edge of the paper and may be truncated Some drivers are built to allow setting a left margin; for those printers, you can specify here a number of pixels (at 204 to the inch), and the entire generated image will be shifted by the specified amount.
  • ForceSubType: This switch controls the use of the TIFF NewSubType flag, and is set to ensure Commetrex compatibility. It has three values:
    • 0: Single-page TIFF files have the NewSubType tag value set to 0 to indicate that they are single page, multi-page TIFF files have this flag set to 2 to indicate multi-page (as per TIFF specification)
    • 1: All TIFF files have the NewSubtype tag value set to 0
    • 2: All TIFF files have the NewSubtype tag value set to 1 (required for Commetrex modems)
  • PadLines: If this value is set, the page size is rounded up to the specified number of lines. For instance, if PadLines is set to 8, extra white lines will be added to the image until the total number of lines in the image is equal to 8.
  • NoRotation: If 0, landscape images are rotated 90 to fit a standard FAX machine. If 1, no rotation is done.
  • OverwriteIfFileExists: Controls handling files that have the same name as existing files. This switch can have three values:
    • 0: The driver will pop up a dialog box asking the user for a new file name.
    • 1: The existing file will be over-written.
    • 2: If the file type is one for which adding additional pages makes sense (e.g. multi-page TIFF), the new pages will be appended to the existing file. If appending new pages is not supported, the driver will pop up a dialog, as in case 0.
  • OwnerName: The text string printed across the top of the page as the CSID
  • OwnerNumber: The phone number printed across the top of the page as the CSID
  • Enable: If set to 1, the CSID is printed. If set to 0, it is not.
  • DisplayStatus: If set to 1, a log file is generated indicating all decision points in the driver. This is not useful generally except when debugging a specific drver problem with the assistance of ImageMAKER Development.
  • DisplayFileErrors: If set to 1, a log file is generated detailing any file system errors that occur.
  • LogFileName: The name of the log file generated if DisplayStatus or DisplayFileErrors is set. This defaults to "c:\temp\faxdrv.log" if it does not appear in the INI file.

Specific Known Issues and Workarounds

Excel and the Overwrite Flag

Microsof Excel will occasionally, for no reason that we can see, break a single printout into two or more print jobs. The Overwrite flag was specificaly altered to handle this situation; a second printout having the same name can be assumed, usually, to be an additional section of the same print job, and should be appended to the previous job. The control dialog can be set up to have some persistence of data structures, so that it knows that an additional print job has been generated by Excel, and appends the two print jobs, only sending the appended set of jobs off when they are complete. Our suggestion for this is to wait for 10 seconds to see if there is another print job; Excel seems to launch its print jobs in short order after it has managed to get all its ducks in a row.

Adobe Acrobat, Aldus PageMaker, Microsoft Office 97 (pre SP-1) and Corel WordPerfect 6 and 7

These applications do their own font handling and do not seem to be able to handle printer pixels that are not quite square. Microsoft Office 97 actually replaced a Windows component that could handle non-square pixels with one that could not; this is one reason that a service release of Office 97 had to be made. If you must produce printouts with these applications, and are getting unuseable output because of this problem, we have a special square-pixel driver (200x200 instead of 204x198) that will eliminate the problem. Contact for details.


Warning: include(/include/footer.htm): failed to open stream: No such file or directory in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 434

Warning: include(): Failed opening '/include/footer.htm' for inclusion (include_path='.:/usr/local/php5_6/lib/php') in /home/content/13/11000713/html/imagemaker-webs/imagemaker/content/technotes/16printers.php on line 434