Use Any GDI Printer With GNU/Linux

Introduction: Use Any GDI Printer With GNU/Linux

Most GDI printers are not supported using GNU/Linux.

Here is a way to use your printer anyway.

Step 1: Lucky Users

Before going further, check that your printer doesn't support a printing description language as postscript or PCL or something else that is supported under Linux.

If you are lucky then use the appropriate driver.

Some GDI printers are supported, so if it's your case, you should use this instead, check the list here :

Step 2: Choose a Virtual Machine and Install It

If you are unlucky, then you can use a virtual machine like :

- Bochs (GPL)
- VMware (Commercial, free VM player)
- Win4Lin 9x (Commercial)
- Win4Lin Pro (Commercial)

Install the virtual machine you want to use, then Microsoft Windows in this virtual machine using their respective documentation.

Step 3: Local Printer That Use a USB or Parallel Port

Under Linux, share your printer using Samba (

To do this you have to edit the /etc/samba/smb.conf file and add those sections :

# printers is between square brackets
comment = All Printers
path = /var/spool/samba
browseable = yes
# to allow user 'guest account' to print.
guest ok = yes
writable = no
printable = yes
create mode = 0700
use client driver = yes

# print$ is between square brackets
path = /var/lib/samba/printers
browseable = yes
write list = @adm root
guest ok = yes
inherit permissions = yes

Adapt the path to your configuration if needed.

Restart samba or start it if it wasn't already done (as root) :

/etc/init.d/samba restart

Now, from the Virtual Machine install then the printer as a network printer, if your host IP has the address from the VM then you should enter


Step 4: The Printer Is Now Ready to Be Used From Your Virtual Machine

So now, you have to print something from GNU/Linux, choose a PDF printer and write to a file what you want to print.

From your virtual machine, open the file you've just created using Acrobat Reader or FoxIt Reader or whatever you like as a PDF reader and send it to your GDI printer.

Step 5: Full Example of Printing

1. Print to a .pdf file from GNU/Linux

2. Open the .pdf file from the virtual machine (Win4Lin) using a PDF Reader

3. Select "Print" from the "File" menu

4. Go to your printer and check the result

Step 6: Use the Printer Directly From Linux

In order to have something even better, you can follow this procedure :

Be the First to Share


    • Fabric Challenge

      Fabric Challenge
    • Eggs Challenge

      Eggs Challenge
    • Remote Control Contest

      Remote Control Contest



    5 years ago

    does the smbd method need to CUPS?

    oOo Manu oOo
    oOo Manu oOo

    Reply 5 years ago

    Hi, sorry I don't understand what you mean, which step are you blocked with ?


    Reply 5 years ago

    how to add the printer in windows OS and what is the "printer_share_name"?

    oOo Manu oOo
    oOo Manu oOo

    12 years ago on Introduction

    My Dell 3010 is now supported under Linux, it's definitely more convenient :-)


    16 years ago

    Theres also ghostscript support for a massive list of printers. You can also take this one step further, export the printer from windows as a postscript printer (there is software, i can't think of it at the moment) via smb/cifs, and use samba on your linux host to access it. Though I can't remember any time I've gotten reasonable results printing from linux, ever. (and this is over a decade of use)

    oOo Manu oOo
    oOo Manu oOo

    Reply 16 years ago

    Good idea, I have to test this !