Use Any GDI Printer With GNU/Linux

by oOo Manu oOo in Circuits > Linux

16108 Views, 7 Favorites, 0 Comments

Use Any GDI Printer With GNU/Linux

instructable_header.jpg
Most GDI printers are not supported using GNU/Linux.

Here is a way to use your printer anyway.

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 :

http://www.linuxprinting.org/show_printer.cgi?recnum=Generic-GDI_Printer

Choose a Virtual Machine and Install It

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

- Bochs http://bochs.sourceforge.net/ (GPL)
- VMware http://www.vmware.com (Commercial, free VM player)
- Win4Lin 9x http://www.win4lin.com (Commercial)
- Win4Lin Pro http://www.win4lin.com (Commercial)

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

Local Printer That Use a USB or Parallel Port

instructable2.jpg
instructable3.jpg
Under Linux, share your printer using Samba (http://www.samba.org/)

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

# printers is between square brackets
[printers]
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
[print$]
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 192.168.1.10 address from the VM then you should enter

\\192.168.1.10\printer_share_name

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

instructable1.jpg
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.

Full Example of Printing

instructable4.jpg
instructable5.jpg
instructable6.jpg
_img_2260.jpg
_img_2261.jpg
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

Use the Printer Directly From Linux

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

http://mywebpages.comcast.net/heretrythis/hp3100/psemuxp.html