Print to a non-supported printer from Linux

My mother bought a Kodak ESP 7 multifunction printer a few months ago. Since then, she has started using a netbook with Ubuntu Netbook Remix on it full-time. For a while now I have been intending to find a way to print to it from the netbook.

Unfortunately, Kodak decided to be one of the few printer manufacturers providing no linux support whatsoever. Attempts to make a driver have failed repeatedly.

I came up with a way to print to this machine without ever actually finding a working driver. I use a connected windows machine (our family computer) and Dropbox.

Here are the steps to set this up:

  1. Install Dropbox on the Linux and Windows computers. Make an account, and link them both. Now, you will have a Dropbox folder on each. I’m assuming that they are in the default places – change the paths if you put them elsewhere.
  2. Make a folder named print in the Dropbox.
  3. Now, install autohotkey on the Windows computer.
  4. Make a new autohotkey script in the Dropbox print folder. I named it printer.ahk, but it doesn’t matter.

Inside the file put these lines, modifying if needed:

; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: A.N.Other
; Script Function:
; Template script (you can customize this template by editing "ShellNew\Template.ahk" in your Windows folder)
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
Loop {
Loop, %A_ScriptDir%\*.pdf, , 1
Run, print %A_LoopFileFullPath%
Sleep, 30000
FileDelete %A_LoopFileFullPath%
Sleep, 10000

Now, run the script by double-clicking on it. I recommend that you place it in the startup folder as well so that it comes on always.

If you want, this is all you have to do. You can use print to file in Ubuntu to print to a pdf in the print directory. After a few seconds it will begin to print on the Windows machine’s default printer. However, I changed a few things to make printing even easier.

These are the steps:

  1. Install cups-pdf with synaptic or sudo apt-get install cups-pdf in terminal.
  2. In a terminal, run the following: ‘sudo chmod +s /usr/lib/cups/backend/cups-pdf’
  3. Run ‘mkdir ~/PDF’ in a terminal.
  4. Now, ‘ln -s ~/PDF ~/Dropbox/print’
  5. Open Printing (System > Administration > Printing), and set the printer called PDF to default.

After doing that, you should be able to open any app, go to print, and just hit print. after 10-15 seconds adobe reader will open up on the windows computer and print the document.

It takes a bit to set up, but is worth it. As a nice side-effect, it turns any printer into a network printer from Linux.

Fix volume control in mpd on Ubuntu Jaunty 9.04

I have mpd installed on my jaunty server. It works well, except that I found the volume control in my clients never worked.

Reading around, I found a slightly cryptically mentioned solution. In your /etc/mpd.conf, uncomment the line that says mixer=software, then restart mpd (sudo /etc/init.d/mpd restart). All should be well!