GDI Printers

Support knowledgebase (ke_printer-gdi)

Situation

You want to use a GDI printer (Windows-only hardware).

About GDI Printers

Printer drivers for Linux are seldom developed by the printer's manufacturer. Therefore, the printer must be accessible via a published standard protocol, like the standard printer languages PostScript, ESC/P, and HP PCL (but not HP PPA). See Purchase of Printers and Compatibility

If the printer's manufacturer does not provide the printer with a standard printer language support but uses a proprietary protocol, this printer is a GDI printer. Such printers only work under the operating systems for which the manufacturer provides driver support.

GDI is an API developed by Microsoft. The real problem is not the API itself, but rather that GDI printers are exclusively accessible via a proprietary protocol. Therefore, GDI printers should actually be called "printers exclusively accessible via a proprietary protocol".

There is a special type of printer that "understands" rudimentary elements of a standard printer language only (i.e., those commands necessary for the output of raster graphic data). This kind of printer can sometimes be deployed in an ordinary way, since many Ghostscript drivers merely use the commands required for the output of raster graphic data. Needless to say, this procedure does not allow direct ASCII text output on the printer. However, Ghostscript is interposed by default anyway.

These printers may pose a problem if they must be previously switched to a special mode with specific control sequences. This can only be done with a specially adapted Ghostscript driver. Since this is not a standard protocol, these printers belong to the GDI printers.

Prerequisites

For the general prerequisites for printing with SuSE Linux, refer to the documentation included in SuSE Linux or to the article Installing a Printer

Notes:

We cannot guarantee the reliability of the following instructions, because we do not conduct tests for GDI printer drivers.

For some GDI printers there are special driver programs available in the Internet. You may find information regarding GDI printers under the URLs mentioned in the support database article "Installing a Printer" (in particular, see "Linuxprinting.org").

Often there are special limitations in GDI printer drivers. Therefore, GDI printers may not work under normal circumstances.

Often GDI printer drivers need special actions to be set up correctly. Therefore it is often not possible to set up the GDI printer with YaST2.

As we do not test GDI printers, we do not include GDI printer drivers into our products because we do not know if the GDI printer drivers would work at all.

Some GDI printer drivers need special actions to be set up that may cause license problems if we had those drivers in our products. We will never risk causing license problems only to have some kind of support for such problematic hardware.

We do not develop any GDI printer drivers because there are hundreds (in fact more than a thousand) printer models that work well for Linux. See the support database article "Purchase of Printers and Compatibility" and Linuxprinting.org.

Procedure for SuSE Linux 7.1 on

From SuSE Linux 7.1 on, the following GDI printers are supported by YaST2's printer configuration (partly monochrome, partly color):

The drawback of GDI printer drivers from the manufacturer is that it cannot be guaranteed that they will still work with other (future) Linux versions. On the other hand, printers that "understand" a published standard printer language do not depend on any particular operating system or operating system version.

For compatibility purposes, refer to the article " Purchase of Printers and Compatibility" from our support database.

From SuSE Linux 8.0 on

In addition, the following GDI printers are directly supported by YaST2's printer configuration from SuSE Linux 8.0 on (possibly monochrome only):


Procedure up to SuSE Linux 7.0:

The following GDI printers are supported up to SuSE Linux version 7.0:

These printers work in monochrome only.


DeskJet 710/720, 820, 1000

Additional prerequisite

The package ppa, series ap, must be installed. If necessary, install this package using YaST or YaST2.

Additional information is available at the web site: http://sourceforge.net/project/?group_id=1322

Configuration:

  1. Use SETUP (or lprsetup) for the configuration as described in the article Installing a Printer. Under HEWLETT-PACKARD, select the driver

    Then enter the resolution 600.

  2. Select the suitable file
    pbm2ppa.conf.hp720
    pbm2ppa.conf.hp820
    pbm2ppa.conf.hp1000
    and copy it from the directory /usr/doc/packages/ppa or, in SuSE Linux 7.0 or higher, from the directory /usr/share/doc/packages/ppa to /etc/pbm2ppa.conf. For example,
    cp /usr/doc/packages/ppa/pbm2ppa.conf.hp720 /etc/pbm2ppa.conf
    or, in the case of SuSE Linux 7.0 or higher,
    cp /usr/share/doc/packages/ppa/pbm2ppa.conf.hp720 /etc/pbm2ppa.conf
  3. Adjust the offsets until a correct printout is produced. Wrong offsets result in the printer "hanging" with blinking LEDs during the printing process. If this happens, the printer must be completely switched off and on again. Additional information can be found in the file /usr/doc/packages/ppa/CALIBRATION or, in SuSE Linux 7.0 or higher, /usr/share/doc/packages/ppa/CALIBRATION Repeat the following steps until the print test of a file is successful.
    1. Printout of an A4 test page provided the printer is connected to /dev/lp0
      pbmtpg -a4 | pbm2ppa > /dev/lp0
    2. Adjustment of the offsets in the file /etc/pbm2ppa.conf using an editor, for example:
      mcedit /etc/pbm2ppa.conf
      See below for sample files.
    3. Test printout of a file. For example:
      a2ps -1 -M a4dj --borders=yes -o - /etc/pbm2ppa.conf | lpr
    You might need to reduce the size of the media a4dj for a2ps as described in the article Setting the Page Size of ASCII Files. You may also have to adjust the margin settings in some application programs before you are able to print from them.

Sample values for 720C:

papersize  a4
xoff       75
yoff     -500
top         0
bottom      0
left      150
right     150
or
papersize  a4
xoff       75
yoff     -300
top       100
bottom   -100
left      150
right     150
Sample values for 710C:
papersize  us
xoff       75
yoff     -500
top       150
bottom    150
left      150
right     150
Sample values for 820C:
xoff       25
yoff     -325
top       100
bottom   -100
left      250
right     250
or
xoff        0
yoff     -325
top         0
bottom      0
left      120
right     160

We would like to thank Clemens Dorda and Thies Freymuth for their feedback and useful information.


Lexmark 7000, 7200, 5700

Additional Prerequisite

The package pbm2l7k (series ap) has to be installed. If necessary, install this package using YaST or YaST2.

Information on model 5700 can be found at http://www.ultranet.com/~setaylor/papers.htm.

Information on model 7000 can be found at http://bimbo.fjfi.cvut.cz/~paluch/l7kdriver/. From SuSE Linux 6.2 on, this driver can be found in the package pbm2l7k, series ap.

Configuration

Use SETUP (or lprsetup) for the configuration as described in the article Installing a Printer. Under OTHER, select:

then enter the resolution
600

Also see the article " Printing: Configuring a Lexmark GDI Printer" from our support database.


Brother HL 720, 730

Since Ghostscript 5.xx, the driver hl7x0 is available for the Brother HL 720, HL 730, and compatible models. The Brother HL 760 is not a GDI printer. This printer is supported by the Ghostscript driver ljet4.

We would like to thank Pablo Saratxaga and Ralf Mayer for their input.


See also:
o Installing a Printer
o Purchase of Printers and Compatibility
o Printing: Setting Up Lexmark Printers
o PRINTING: Setting the Page Size of ASCII files.

Keywords: GDI, PRINTERS, PRINTING, PBM, PRINT

Categories: Printer

SDB-ke_printer-gdi, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 09. Jun 1998
SuSE Linux AG - Last generated: 28. Jul 2003 by ke (sdb_gen 1.40.0)