<> = Overview = Sadly there are still various Windows-only printers (usually: GDI printers) available. This also applies to older printers without 64bit drivers for Windows. In general you should try hard to keep this kind of headaches away from you. The following recipe describes a setup that makes even these printers usable in a mixed windows/linux/mac environment. The following steps are involved: * attach the printer to a Windows host and configure it properly * configure a simple virtual postscript printer that will redirect all its jobs through the Windows spooler to the other real printer * optional: spread this virtual printer via CUPS to all other hosts in the network This tutorial is based on Robert Harder's article [[http://blog.iharder.net/2011/01/25/share-a-windows-printer-with-a-mac/|Share a Windows Printer with a Mac]]. = Setup the real printer = == Install and test == This should be really simple: * plug in the printer * install the driver * print a test page == Optional: virtual USB handling == If your host is a virtual instance then you may need to pass through the USB device. For [[http://www.linux-kvm.org/|KVM]] with ''libvirt'' you would do the following: * {{{virsh edit WINDOWS_HOST}}} * add the following lines to the ''devices'' section: {{{ }}} * the above USB identifiers refer to the ''Kyocera FS-720'' GDI printer * use {{{lsusb}}} to find the USB identifiers of your specific printer * stop and restart the virtual host = Setup a virtual postscript printer = Sadly the Windows printer spooler sends all incoming jobs directly to the printer. Thus it is not possible to transfer a postscript job to a remote shared Windows printer and let the Windows driver handle the conversion. The virtual postscript printer will take for this. All clients will be configured to send nice postscript data. The virtual printer redirects this input to the driver of the real printer. == Install the virtual printer software == * download and install the [[http://pages.cs.wisc.edu/~ghost/redmon/|RedMon]] printer redirector * download and install [[http://pages.cs.wisc.edu/~ghost/|Ghostscript and Ghostview]] (you need both!) == Configure the virtual printer == * create a new printer: * choose {{{local printer port}}} * choose {{{create a new port}}} with ''Redirected port'' {{attachment:create_new_port.png}} * select a suitable simple postscript printer that is supported on all target platforms (e.g. ''HP LaserJet 4100 PS'') * give it a suitable name (e.g. ''Kyocera FS-720 PS'') * enable printer sharing for this new printer * configure the redirection: * choose ''Port settings'' -> ''configure'' * enter the following settings: Redirect this port to the program:: {{{C:\Program Files\Ghostgum\gsview\gsprint.exe}}} Arguments for this program:: {{{-printer "Kyocera FS-720 KX" -}}} * use the name of your real printer here * do not forget the '''trailing hyphen''' Run:: hidden Run as user:: no {{attachment:printer_port_settings.png}} Now you are ready to print a test page on your shiny new postscript-like printer. = Configure the printer in the network = If you enabled ''printer sharing'' as described above then you can use this new postscript-like printer everywhere in your network. Possible clients are desktop computers of any kind or also print servers (e.g. CUPS). Do not forget that you always need to configure the driver that you selected above (e.g. {{{HP LaserJet 4100 PS}}}). On Linux/Mac (any CUPS-based system) this should simply be the ''Generic -> Postscript'' printer driver.