MacOS driver for Cannon LaserJet LBP-1120

How to print on printer without MacOS driver?

I’ve got Cannon LaserJet LBP-1120.

It has driver for Windows XP but not for MacOS.

So solution is obvious. We setup the printer in Windows. Also we install in Windows virtual printer. This printer will send unparsed PostScript document to a real printer. In MacOS we install Generic PostScript Printer. It will send PostScript document to our virtual printer in our virtual Windows.

Double virtual should not confuse you. Any software engineer won’t do boring 2-hours work. He will automate it.. in two days. This way he won’t work at all - he will play with fancy problems doing this 2-days task 8-)

TL;DR

  1. Install virtual Windows in MacOS (I am sure you will use it afterwards for other tasks too)
  2. Install real printer in Windows with real driver from Cannon
  3. Install virtual printer in Windows. It will send unparsed PostScript to the real printer
  4. Install Generic PostScript Printer in MacOS that will send PostScript to virtual printer in Windows

Virtual Windows in MacOS

We need Virtual Machine and Windows XP distro.

Virtual Machine

I recommend Oracle Virtual Box. Download OS X hosts.

It’s very easy to install.

Windows XP distro

Microsoft does not support Windows XP. In spite of that it still is not free. But you can ignore that - this is just some reminders.

So we can download Windows XP from Microsoft site. I used this link. If it does not work just search for Windows XP Mode in Microsoft Download Center.

And I have a nice trick how you can save your time on Windows installation.

  1. Install in MacOS The Unarchiver.
  2. Unpack Windows XP Mode installer you downloaded.
  3. After that unpack file xpm in sources/xpminstl64. It has no extension so you should Open With.. -> other... -> The Unarchiver.app.
  4. In the folder after second unpacking, find file VirtualXPVHD. You should rename it into VirtualXP.VHD.

As a result of this trick you have Oracle Virtual Box disk with already installed Windows XP.

Now we create virtual machine in Oracle Virtual Box - press blue icon “new”:

Choose Windows XP 32bit. Memory 512Mb.

Choose Use an existing virtual hard disk file. Press on tiny folder with green arrow.

After that press icon Add with green “+” and add our unpacked and renamed file VirtualXP.VHD.

Setup Video Memory 128MB for this machine.

Now you start the virtual machine and see already installed Windows XP.

Real printer in Windows

Just usual way - Start -> Printers and Faxes -> Add a printer. Select Cannon driver from the Cannon CD.

I advice to print test page to be sure it was installed Ok.

Important - to simplify next steps the printer name should not include spaces and special simbols.

I use name cannon.

Virtual printer in Windows

GhostScript

To parse PostScript файлы we will use free software GhostScript.

Last version does not work in Windows XP, so use old one 9.50, file ghostpcl-9.50-win32.zip. Unpack and run installer in Windows.

Important install into folder C:\gs to simplify next steps.

Command line parameters for GhostScript

We will use file for command line parameters to simplify command in the virtual printer.

In folder C:\gs create rsp file. For example with Notepad.

My file has name cannon.rsp.

File content:

-IC:\gs\lib;C:\gs\Resource\Font
-sDEVICE=mswinpr2
-dNOPAUSE
-dSAFER
-sPAPERSIZE=a4
-sOutputFile="%printer%cannon"

In the last line after %printer% should be the name of our real printer.

RedMon

To redirect PostScript to real printer we use RedMon. I installed version 1.9. Unpack and run installer in Windows.

Virtual printer setup

We have to setup RedMon redirect port so that it will pass unparsed PostScript to real printer.

Create printer. Start -> Printers and Faxes -> Add a printer.

In the wizard switch off Automatically detect.. so we won’t wait for driver search.

On the next wizard step choose Create a new port with type Redirected port.

As driver you could select Apple LaserWriter.

Create the printer without test page printing.

Do not forget to share it (Printer Sharing):

On the newly created printer right-click, choose Properties. For Redirected port set command line C:\gs\bin\gswin32c.exe. Do not forget about c in the file name.

Arguments @C:\gs\cannon.rsp -. Do not forget space and dash at the end.

Choose Copy temporary file to printer in Output. As printer choose real printer.

Press Ok.

Printer name in my case cannonrd.

Right-click, Properties -> General -> Print Test Page.

MacOS Printer

Create the printer as usual for MacOS. System preferences -> Printers & Sacnners Press “+” at the bottom of printers list.

Press Windows, select the Windows network and machine name for your virtual Windows machine. And with some delay you will see list of shared printers. You should select virtual one - cannonrd in my case. Driver: Generic PostScript Printer.

That’s all. Now you can print from MacOS to Cannon LBP-1120.

Just do not forget to start Windows Virtual Machine. It starts in split second. And you can automate that with Alfred using command line:

VirtualBoxVM --startvm "<your virtual machine name>"