I recently bought a Lexmark X4550 all-in-one printer, scanner and copier. What I didn’t realise before I bought it is that Lexmark are horribly bad at providing Linux support for their printers. After speaking to their support people and finding out that the printer really doesn’t have any linux drivers and is unlikely to have any in the near future I began looking into ways of getting it to print.
The solution I came up with is a bit nasty, and not something you will probably want to do unless you really really want to get things printing from Linux.
Here’s how it works:
1) Install Innotek VirtualBox? (or some other virtualisation tool)
2) Create a new Windows virtual machine (I used Windows 2000 – I had a spare license I got free with an old PC and am not using)
3) Install the printer driver software on your windows virtual machine
4) Install GPL Ghostscript in your Windows VM – available here: http://sourceforge.net/projects/ghostscript/
5) Install “PrintFile” in your Windows VM – available here: http://hem1.passagen.se/ptlerup/prfile.html
6) Create a network share on your Linux machine and map to it from your Windows VM so it has a drive letter (e.g. K:)
7) Create a directory in this shared directory that you will monitor for new print jobs (e.g. K:\printspool)
8 ) Run PrintFile and configure it as follows:
Set “enable spooler function” to ticked
Click the “Conversion” button
Tick Enable Conversion for PostScript? Files
In the program box enter the path of your ghostscript installation
In the Parameters box enter the following:
-Ic:\gstools\gs8.61;c:\gstools\gs8.61\fonts -dSAFER -dBATCH -dNOPAUSE
-sDEVICE=mswinpr2 -dGraphicsAlphaBits=4 -sOutputFile=”\spool\&p” &i -c quit
(All on one line)
Click OK, then Save and the close the PrintFile
9) Create a new batch file in your Windows VM containing the following:
“C:\Program Files\PrintFile\prfile32.exe” /s:K:\printspool\*.ps
(Where K:\printspool is the spool directory you want to monitor)
10) Run your batch file and it will start monitoring your directory for new jobs to print
11) In your Linux PC you can now print from any application – in the print dialog tick the “print to file” box and save your print job in the shared print spool directory that is being monitored by your windows machine.
Not a neat solution I admit, but it works