Getting an HP Color LaserJet CP1215 working on a Mac

Introduction
Installation
Color Management
Uninstall

Updates
11/30/2010: As of now, I no longer have the CP1215 and cannot do any further testing or troubleshooting beyond what is on this post and in the comments. The process works for most people, and should continue to do so into the future, at least for Tiger, Leopard and Snow Leopard. I can’t make any promises about Lion next year.

07/19/2010: On the advice of a commenter, added an additional keystroke to the $PATH section for Mac OS 10.4.x that solves the mystery of why some were getting “Ghostscript not installed” errors even after following the instructions.

12/31/2009: Added a section on uninstalling the drivers.

11/23/2009: Added a section detailing how to get around some errors people have been encountering during the process.

09/27/2009: After numerous reports of no printing, I tracked the problem to the new version of the drivers. Updated link to old version until compatibility can be worked out. Added boldface to the code bits to help differentiate them better, and added a donation button for fun and profit.

09/21/2009: Changed some information about downloading XCode, depending on your OS version.

09/07/2009: I received Snow Leopard, and the printer works fine after upgrading. Once I finish downloading XCode for Snow Leopard, I’ll redo the installation process and see if anything has changed.

02/11/2009: A new version of one of the software installs used here causes some printing problems, so I’ve updated to link to the last working version. I’ve also enabled comment RSS, so you can subscribe if you have a question instead of having to check back here to see if I’ve answered.

02/01/2009: I’ve added another section on getting better color management from the printer. This is by far the most popular post I’ve ever made, garnering several thousand hits in the past month, so HP really messed up with this one!
End updates

Introduction
When I moved to Alaska, I bought a bunch of technology equipment for my little home office: an iMac, an Epson scanner, and a little HP Color Laserjet CP1215. I eagerly unpacked it all and set it up after FedEx and UPS delivered everything to my door. I was particularly excited to have my own color laser printer, especially having found a great deal on it from HP. Imagine my dismay when, upon trying to add it to Mac OS X, I could not find any sort of driver for it on my computer. The printer install CD was only for Windows computers. HP’s website only listed Windows driver downloads.

Having spent the last 10+ years of my life working almost exclusively with HP LaserJets and Macs, I was surprised to find that this particular printer was not and would not ever be compatible with a Mac, according to HP. I apparently overlooked that little tidbit of information in the 3 days I spent researching it vs. the other cheap inexpensive color printers out there, assuming HP would have to be crazy to release a laser printer without Mac compatibility.

Much cursing ensued.

Since then, I’ve been saving everything I want to print as a PDF, opening Windows XP in a Parallels VM, and printing from there. It’s a hassle, and today I reached a breaking point. I created a nifty little business flyer in Pages (I’ll post it later), and the resulting PDF looked totally different than my original design! I needed to print directly from Pages, so I decided to see what Google would bring me. The news was good, if complicated. I’ll post my steps here, with links, for the betterment of humanity.

How to do it:
Note: I’ve only tested this on OS X 10.5 and 10.6 (Leopard and Snow Leopard), so I can’t guarantee this will work if you are on a different version of OS X.

You’ll be installing some Unix-based software, so say hello to the command line!

  1. Install Apple’s Developer Tools, if you haven’t already. It’s a free download (about 1GB!), but you’ll have to create an account on the Apple Developer site to get to it. Once you have your account and are logged in, go to Downloads, then Developer Tools, then click on whatever version of XCode Developer Tools (disk image) they list for your OS. For Snow Leopard (10.6.x), 3.2 is the latest; Leopard (10.5.x), 3.1.4 is the latest; and for Tiger (10.4.x), 2.5 is what you want. If you already have an ADC account and are running Snow Leopard, you can go straight to the XCode download site.

    After it downloads, it will open up and you’ll have to double-click the XCode Tools package installer to start the process. No restart is required.

  2. Download GhostScript, just click on the latest version I’ve updated this to link to a specific working version, 8.63. The 8.64 version disables color printing for some reason. I’ll file a bug report and update this when it’s fixed. It’s okay to use the linked version.
  3. Download foomatic-filters.
  4. Download foo2hp. The download link is a little ways down the page, and the downloaded file is actually called foo2zjs. I’ve updated the link to point to the last working version of the drivers, until I can work out some issues with the latest version.
  5. Compile the software you just downloaded. To do so, open Terminal in your /Applications/Utilities folder
  6. Navigate to wherever your downloads are stored. In 10.4 it’s usually on the Desktop (unless you’ve changed it), and in 10.5 it’s usually in the Downloads folder. Just type:
    cd Desktop or cd Downloads and hit Enter.
  7. The bits of software you downloaded should have automatically unarchived, so you should be able to go directly into their folders:
    cd ghostscript (after typing a few characters of the folder name, you can hit the Tab key and it will fill in the rest of the folder name)
    • If your computer didn’t automatically unarchive the downloads, type tar -zxf nameofdownloadedfile.tar.gz to unarchive them (replace nameofdownloadedfile.tar.gz with the names of the actual files you downloaded).
  8. Next, type: ./configure and hit enter. A lot of text will scroll by. It will eventually stop and hopefully there won’t be any errors.
  9. When you can type again, type in make and hit enter. More text, hopefully no errors.
  10. Finally, type sudo make install and hit enter. It will ask for your password. Enter it. If you don’t have a password set on your account, and you’re running Mac OS X 10.5, you’ll need to set a password in System Preferences: Accounts before this will work.
  11. Now we have to do almost the same for the next piece of the puzzle, the foomatic-filters. Type cd .. to go back one folder, then cd foomatic-filters-3.0.2 into the foomatic-filters folder.
    • Note: if you have trouble getting Terminal to get the full folder name after hitting Tab, that’s due to having two items that start with similar letters (eg. the downloaded file “foomatic-filters-3.0-current.tar” and the unarchived folder “foomatic-filters-3.0.2”).

      There are many ways to solve this. You can delete the downloaded tar.gz files after you’re sure the folders have been unarchived, you can type out more of the folder name until it is differentiated from the tar.gz file, or as Roger notes in the comments, you can type cd in the Terminal, then drag the folder icon to the Terminal window and it will fill in the correct path.

  12. Repeat the “./configure,” “make,” and “sudo make install” steps from before, hopefully receiving no errors!
  13. Now, navigate into the foo2zjs folder (cd .. then cd foo2zjs)
  14. This time, you start by typing make.
    • Note: Some people have reported receiving an error about ghostscript not being installed during this step. If this happens to you, please skip down to the Adding To Your $PATH section, then return here when you’ve completed those steps.
  15. Next, you’ll need to download the actual drivers for your printer. Since I have a 1215, I typed ./getweb 1215 and it downloaded the drivers.
  16. sudo make install one last time, and you’re almost ready to go.
  17. Restart your printer software with sudo make cups. An alternative to this is to just restart your computer.
  18. Open up your Printer Utility (10.4) or Print and Fax PreferencePane (10.5), and add the printer. OS X will see the 1215 attached via USB, and after searching for drivers, will find the foo2hp for 1215 driver!

Color Management

Now, to get better colors on your prints, you’ll have to change around the color profile for the printer. To do this, print something and in the print dialog box that opens, select “Printer Features” from the third drop-down menu (you may need to click the blue arrow button beside the printer drop-down menu). Here’s what it will look like (click to enlarge):
Printer Dialog 1

This is where you can set whether to print in color or black and white, what sort of paper to use, etc. Click on the menu named “Feature Sets,” and select “Adjustments.” This is where you can change how the printer decides how to print colors. These .icm files all contain color management instructions for the printer, and most of them don’t work very well. It was pointed out in the comments that the ones that aren’t specifically labeled for the CP1215 actually work the best, which makes this even more awesome.

I found that the .icm file named “HP 1600/2600 – hpclj2600n-0.icm” gave me smoother gradients in the test photo, but the file named “HP 1600/2600 – ICCFactory1 (default) gave me more vivid colors. If only we could combine their powers and make a super .icm file! Anyway, select the one you want to use.
Printer Dialog 2

After you’ve set everything the way you want, you can save it as a preset, so you don’t have to go through and set it all again the next time you print. Just click on the second drop-down menu that probably says “Standard,” and Save As…
Printer Dialog 3

You can make a preset for each type of paper, color option, etc. so life will be even easier after all this hard work.
Printer Dialog 4

Finally, if you’re keen to get a custom color profile made specifically for your printer (even printers of the same production model will have slight variations in printing), you can buy a custom profile from this ebay vendor: fotojimbo’s Custom ICC Profiles.

In my short bit of testing, I have found a couple of caveats:

  • To print in color, you’ll need to set it to color in the print dialog box, under “Printer Features” in the drop-down menu.
  • In “Printer Features,” setting the Bits Per Plane to “2” will waste a lot of toner
  • Setting the paper type to HP Photo Paper and using HP Photo Paper is a disaster. All three of my test prints didn’t turn out: some of the toner didn’t get correctly applied, and spilled everywhere. I’ll still have to use Windows to print photos.
  • Color matching isn’t the greatest, I’ve had some trouble getting dark blues to turn out dark. But, it’s better than not being able to print from OS X at all.
  • See, Macs are simple!

    If you found this helpful, please consider encouraging me with a donation or even better, buy a photograph (everybody wins!).






    Adding To Your $PATH

    This section is specifically for people experiencing an error saying ghostscript isn’t installed during Step 14. Ghostscript is actually installed, but Terminal is dumb and can’t see where it is. Let’s correct that!

    • Mac OS X 10.5/10.6
      1. In the Terminal, type cd /etc/paths.d
      2. Type sudo pico local and enter your password.
      3. You’ll be given a mostly empty window where you can type. This is the pico text editor, one of the simplest command line text editors. Type /usr/local/bin and do not hit Enter or any other extra keys.
      4. Press and hold the Control key on the keyboard. While holding the Control key, press the ‘X’ key and then let go of both keys. Pico will ask you something like “Save modified buffer?” That’s nerd-speak for “Do you want to save your file?” Press the ‘Y’ key to save.
      5. Restart your computer
      6. Return to Step 14 and try again. Be sure you navigate back into the foo2zjs folder with the Terminal first!
    • Mac OS X 10.4
      1. In the Terminal, type cd (this puts the command line back in your home directory)
      2. Type pico .profile
      3. More than likely, you’ll be given a mostly blank window. If not, hit the Enter key once to make some space, then the Up arrow key to put the cursor in the space you just made.
      4. Type export PATH=/usr/local/bin:$PATH and do not hit Enter or any other extra keys.
      5. Press and hold the Control key on the keyboard. While holding the Control key, press the ‘X’ key and then let go of both keys. Pico will ask you something like “Save modified buffer?” That’s nerd-speak for “Do you want to save your file?” Press the ‘Y’ key and then the ‘Enter’ key to save.
      6. Restart your computer
      7. Return to Step 14 and try again. Be sure you navigate back into the foo2zjs folder with the Terminal first!

    Uninstalling

    If you need to delete the drivers, please copy and paste the following command in the Terminal:

    sudo rm -r /usr/local/bin/gs /usr/local/bin/foo* /usr/local/etc/foomatic /usr/local/share/ghostscript /usr/local/man/man1/foomatic* /usr/bin/foo2* /usr/share/foo2* /usr/libexec/cups/filter/foomatic*

412 thoughts on “Getting an HP Color LaserJet CP1215 working on a Mac

  1. I am finding problem on mac osx 10.6.7 the following error appears after typing make in th foo2zjs directory

    gsed not installed
    For OSX: sudo port install gsed

    whats this and what should i do

  2. Finally Finally i managed to get it right, i installed mac ports then took the installation instructions in
    http://foo2zjs.rkkda.com/INSTALL.osx

    installed the widgets and other coreutils.

    then returned to step 14. and wow the magic worked

    Thank God he sent us a genius like you. Thanks a million times

  3. SAM

    I cannot Download foomatic-filters in step 3. why?

  4. Ryan

    Looks like the openprinting.org site was hacked. I’ll dig around and see if I have the package stored on one of my machines, and provide it for download.

  5. bluebanana

    https://launchpad.net/foomatic-filters/3.0/3.0.2 Foomatic-filters link to download

  6. Matt

    Awesome write-up/post… I almost died when I realized my printer did not have a Mac driver! (What ever happened to HP? They’ll be making steak sauce next!!!)

    Anyway, just wanted to say thanks for sharing. Everything worked! (iMac running Snow Leopard –10.6.8… procrastination finally paid off ;-p )

  7. Ryan

    Yeah, I about passed out after I set it up the first time and OS X gave me a big “what printer?”. There was no way I was paying the shipping cost to send it back, so I found this method. :-) Thanks for the tip!

  8. I have used this on 10.5 and noow attempting to install on 10.6 and upon installing ghostscript at “make” I get the following. Arent there pprecompiled binaries of Ghostscript for OSX?

    make
    gcc -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -Wno-strict-aliasing -fno-builtin -fno-common -DHAVE_STDINT_H -DGX_COLOR_INDEX_TYPE=”unsigned long int” -O2 -Wall -Wstrict-prototypes -Wundef -Wmissing-declarations -Wmissing-prototypes -Wwrite-strings -Wno-strict-aliasing -fno-builtin -fno-common -DHAVE_STDINT_H -DGX_COLOR_INDEX_TYPE=”unsigned long int” -I./src -I./obj/ -Izlib ./src/mkromfs.c -o ./obj/mkromfs ./obj/compress.o ./obj/deflate.o ./obj/zutil.o ./obj/adler32.o ./obj/crc32.o ./obj/trees.o ./obj/gscdefs.o ./obj/gsmisc.o ./obj/gpmisc.o ./obj/gslibctx.o ./obj/gp_getnv.o ./obj/gp_unix.o ./obj/gp_unifs.o ./obj/gp_unifn.o ./obj/gp_stdia.o ./obj/gsutil.o -lm -ldl -lm -liconv -lstdc++
    ./src/mkromfs.c: In function ‘inode_write’:
    ./src/mkromfs.c:281: warning: pointer targets in passing argument 2 of ‘put_bytes_padded’ differ in signedness
    ld: warning: in ./obj/compress.o, file is not of required architecture
    ld: warning: in ./obj/deflate.o, file is not of required architecture
    ld: warning: in ./obj/zutil.o, file is not of required architecture
    ld: warning: in ./obj/adler32.o, file is not of required architecture
    ld: warning: in ./obj/crc32.o, file is not of required architecture
    ld: warning: in ./obj/trees.o, file is not of required architecture
    ld: warning: in ./obj/gsmisc.o, file is not of required architecture
    ld: warning: in ./obj/gpmisc.o, file is not of required architecture
    ld: warning: in ./obj/gslibctx.o, file is not of required architecture
    ld: warning: in ./obj/gp_getnv.o, file is not of required architecture
    ld: warning: in ./obj/gp_unix.o, file is not of required architecture
    ld: warning: in ./obj/gp_unifs.o, file is not of required architecture
    ld: warning: in ./obj/gp_unifn.o, file is not of required architecture
    ld: warning: in ./obj/gp_stdia.o, file is not of required architecture
    ld: warning: in ./obj/gsutil.o, file is not of required architecture
    Undefined symbols:
    “_gp_enumerate_files_next”, referenced from:
    _process_path in cc7ojEGo.o
    “_compress”, referenced from:
    _process_path in cc7ojEGo.o
    “_gp_enumerate_files_init”, referenced from:
    _process_path in cc7ojEGo.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    make: *** [obj/mkromfs] Error 1

  9. Eduardo

    Thanks a lot for this tutorial, it saves parallels on my tiny MBP 13, a little mistake adding the $PATH in my 10.6.8, I just must do it like in 10.4 and all runs great. Thaaaaaaaaannnnksss Ryan!!!!

  10. Amanda

    you are awesome thanks!

  11. Babs Shonibare

    You are awesome. I finally it working and printed in coloured and black and white after a week of trying. Thanks a million. Appreciate this and I am so excited. I almost decided to go and buy another printer.

  12. CrMander

    Ryan
    Your work is awesome. You really saved my life.
    Thanks a lot.

Leave a Reply