PRB: dmPrintQuality Does Not Affect Text Print Quality (114601)



The information in this article applies to:

  • Microsoft Windows Software Development Kit (SDK) 3.1

This article was previously published under Q114601
3.00 3.10 WINDOWS kbprg kbprb docerr

SYMPTOMS

An application is able to change printer settings such as paper orientation without requiring user intervention, but the same method does not work to change the print quality of text from Letter Quality (LQ) or Near Letter Quality (NLQ) to draft. The ExtDeviceMode() function is used to attempt this change through the dmPrintQuality member of the DEVMODE structure.

Please see the MORE INFORMATION section below for details about how the dmPrintQuality member of the DEVMODE structure, the DRAFTMODE printer escape, and the selection in the Print Quality combobox in the Print Options dialog box, affect the "draft" mode or "quality" of printed output.

CAUSE

This is a limitation of the standard DEVMODE structure. There is no programmable way to change the text print quality (from LQ/NLQ to draft or vice versa) without user intervention because it is not in the standard DEVMODE structure.

With printer drivers that offer a Letter Quality/Draft option, such as most Unidrv-based dot-matrix printer drivers, the user can change the text print quality from the Printers applet in Control Panel as follows:
  1. select the printer
  2. Choose Setup
  3. Choose Options
  4. Select Letter Quality or Draft from the Print Quality combo box
An application can allow the user to change this in the same manner by using the DM_PROMPT (or DM_IN_PROMPT) flag for the fwMode parameter of ExtDeviceMode(). This will bring up the Print Setup dialog box and the user can then choose Options and then select the desired print quality.

An exception to this is the IBM Proprinter Unidrv-based printer drivers. The Proprinters are dot-matrix printers but they do not provide a print quality choice through the Print Options dialog box.

STATUS

This feature is under consideration for a future release of Microsoft Windows.

MORE INFORMATION

There are three types of "draft" settings that affect the appearance or "quality" of printed output. They are not clearly explained in the SDK documentation:

dmPrintQuality

dmPrintQuality controls the graphics resolution only. If the application sets draft mode by setting the dmPrintQuality member of the DEVMODE structure to DMRES_DRAFT, it means the driver should print graphics in the lowest possible resolution for that device. For example, a laser printer that offers the choice of 300, 150, or 75 dpi resolution will be set to 75 dpi. A dot-matrix printer that supports 240x144, 120x144, and 120x72 dpi will be set to 120x72 dpi. Text is not affected by this setting, unless the text is printed as graphics.

DRAFTMODE

If the application sets draft mode by calling the DRAFTMODE printer escape, it means the driver should print text only. It will not print graphics.

Print Quality

If the user selects Draft from the Print Quality list in the Print Options dialog box as discussed in this article, then the driver will tell the printer to print text in draft mode. Graphics are not affected by this setting.

REFERENCES

For additional information about selecting a draft font with a Proprinter driver, please see the following article in the Microsoft Knowledge Base:

86269 PRB: IBM Proprinter Draft Mode Unavailable Under Windows 3.1

For additional information about the proper use of the ExtDeviceMode() function, please see the following article in the Microsoft Knowledge Base:

112641 SAMPLE: Using ExtDeviceMode() to Modify Printer Settings


Modification Type:MinorLast Reviewed:3/7/2005
Keywords:kb16bitonly kbprb KB114601