Adobe PressReady in OS X

Home | The Problem | The Solution | Other Possibilities

 

Copyright © 2002-2018, Mark Douma. All rights reserved.

Updated August 9, 2007
NOTE: I originally wrote the following article about PressReady in OS X in the fall of 2002. Much has changed in OS X since then, but unfortunately, I haven't had time to update this section of my webpage. Back in the fall of 2002, I was primarily concerned with using the HP 1220C/ps to create a portfolio of my graphic design work in order to find a job in graphic design (which is what I got my degree in). Since I am now instead developing Font Finagler fulltime to earn a living, I'm not as pressed to find a solution to this issue (though I really wish I could). In the past 5 years that I've taught myself how to write software for Mac OS X, my knowledge and understanding of OS X has deepened significantly. While the following information about the types of applications is fairly accurate, I have since learned that it's an oversimplification. The solution presented on the previous page won't work with later versions of InDesign, since they can no longer be launched in Classic. I will leave the contents as is, however, for what it's worth.

Originally written in Fall of 2002: The other possible method was to print to a .ps file from the OS X native app and then somehow route that .ps file through the Adobe PressReady Basics Classic printer driver so it'd print (see diagram below).

I had the idea of creating a "virtual" printer for OS X native apps that would have the HP 1200C/PS PPD file used in its setup. This would then create a "PressReady-ized" .ps file that could be sent to the printer via the Classic printer driver. After looking into this option, I've discovered a few problems with this method, though, and I'll explain those below. I've still included the method used to create the Virtual Printer, etc. for those who might be interested.

The HP 1220C PostScript Printer Description (PPD) file The resource fork of the PPD file

I guess a key thing I'd try to stress is that as of yet, I don't think you'll be able to print from OS X native applications and be able to fully utilize the Adobe PressReady (Basics) driver. In OS X, when you set up a PostScript printer and choose a PostScript Printer Description (PPD) file for it, only the data fork part of the PPD file can be utilized. The HP 1220C (PressReady) PPD file has 44K of data fork info and 48K of resource fork info. The resource fork info is responsible for creating such things as the limitations on the quality/media settings. For example, you choose HP brochure paper, and then only Draft mode and Normal mode are allowed to be chosen, while Best mode is disabled. To get those same restrictions in OS X, you'd probably have to develop a custom Print Dialogue Extension similar to the "hpdjPDE.plugin" that the OS X-native HP raster driver has. For more information on using PostScript Printer Descriptions in OS X, see this Apple Developer documentation.

I've created .ps files using the OS X-native "HP 1220C (PressReady) Virtual printer" method and compared them to .ps files created using the "PR HP 1220C (U)" classic printer driver and they don't look to be the same. I think the color transformations that occur (with the Adobe Print Color control panel--mapping the SWOP gamut to printer gamut) don't take place. Not exactly sure, I just found it easier to print from a carbonized app forced to run in the Classic environment.

To be able to generate the same .ps file from an OS X native application would probably involve trying to reverse-engineer the PR HP 1220C (U) driver as well as the all the Adobe Print Color control panel, etc. All the resources that are used to map the SWOP values to the corresponding values that are within the HP 1220C's gamut. While it may very well be possible to do so, I guess right now, I just find it easier to force a Carbon app into the Classic environment. That "solves" the problem of an OS X "native" app being able to interface w/ a Classic printer driver.

In my opinion PressReady was really more than just a PostScript RIP. It also did an incredible job of allowing jobs intended for SWOP to be proofed on your inkjet printer. It did/does this by translating the color values of intended for SWOP to ones within your particular printer's gamut. Your inkjet printer's gamut changes slightly according to the type of paper you use, and they adjust accordingly.

I've done some printing of the same document, one from InDesign (natively) in OSX using the native HP PCL raster drivers and in Classic using Press Ready and you can't beat PressReady. The only difference in the documents is that I had to attempt the gamut mapping myself, and it'll probably take some adjustments to get it right. Even then, the overall image doesn't seem as smooth. PressReady does an excellent job translating the PostScript data in a way that'll create a smooth and even stochastic screen.

I know I'll be using Classic for a long time until some comparible alternative becomes available.

Creating an OS X "Virtual Printer" with the Adobe PressReady PostScript Printer Description (PPD) file.

To create a "Virtual (PostScript) Printer" in OS X, first open Help viewer (cmnd+shift+? in the Finder) and type in "virtual printer." Choose "Adding a PostScript formatting printer" from the resulting list. You should see instructions similar to the following:

This is from Apple Help:

"In Print Center, choose Add Printer from the Printers menu, and choose "LPR Printers using IP" from the pop-up menu. Type "localhost" (no quotes) in the LPR Printer's Address field, choose a printer from the Printer Model pop-up menu, and click Add.

To give the printer a better name, deselect "Use Default Queue on Server" and type a name in the Queue Name field when you add the printer. Leave the address as "localhost."

To save a PostScript file, choose the printer named "localhost" in the Print dialog and set the Output Options to save a PostScript file."

So for myself, I clicked add printer, chose LPR using IP, set LPR Printer's Address to "localhost," unchecked "Use Default Que on Server," set Queue Name to "HP1220C(PressReady)," and set Printer Model to "HP1220C (PressReady)."

This then allows me to create a PostScript file that is customized for PressReady (or so I thought). I can choose the print quality and paper type just like in OS 9. I can then save the ps file wherever I want.

Well, I had the idea to save it in my OS 9's "HP 1220C (PressReady)" desktop printer, which is actually just a folder in OS 9. Essentially, a desktop printer in 9 let's me print a ps file which gets sent to a folder which appears to me as a "desktop printer." The Desktop PrintMonitor, or whatever, monitors this "folder" and then spools the job when it finds one there. This then calls up The Adobe PressReady RIP which processes it and prints it.

I wondered if saving the file there from X would be equivalent to printing it from 9. But it didn't work. Well I thought I'd boot up from 9 to see what would happen. When I did, I got an error message saying that "the document in the printer will be moved to the desktop, because it is not a printable document" (or something like that). If I tried dragging it onto the printer, I'd get an error saying it couldn't be printed because "The application that created the document could not be found."

I then checked the ps file for it's type and creator codes, which weren't set at all. I set the type to TEXT, and I just left the creator code blank. I dropped it on the desktop printer, and.....drumroll.....it printed perfectly (or so I thought)!

This leaves me with a couple of questions. Could there be some application that runs in Classic that could simply pass the .ps file along to the printer, (not by dropping into the que (which I'm not sure would work) but through a print dialog box like I'd print normally from Classic?) Or would it work to make an AppleScript that would first take the ps file, change the type to TEXT, and then drop it in the que? Or if that didn't work on my machine, could it drop it into the que (folder) of a desktop printer on a networked mac running OS 9, w/ Pressready installed?

I'm quite confident that at least the last option might work, but I don't have another mac to try it out with...

A few weeks later:

Original question: "Could there be some application that runs in Classic that could simply pass the .ps file along to the printer, (not by dropping into the que (which I'm not sure would work) but through a print dialog box like I'd print normally from Classic?)"

The answer is YES! The program is called PostScriptHandleDemo, and is available from Apple's website at the following URL: http://developer.apple.com/samplecode/Sample_Code/Printing/PostScriptHandleDemo.htm
Click on the "Download sample" link.

So far, this is the first application I could find that would work with my USB connected PostScript printer. I also found a few applications/utilities to do this with a networked postscript printer.

Drop PS 1.1.4
http://www.versiontracker.com/moreinfo.fcgi?id=1315&db=mac

Let'er RIP:
http://www.lupinsw.com/Files.html

Other resources:
Apple; Printing Technologies
http://developer.apple.com/macos/printing.html
Apple; Desktop Printing Revealed
http://developer.apple.com/technotes/tn/tn1097.html

So far I've been able to print a couple of simple .ps files using PostScriptHandleDemo. I'm off to try some more complex documents, w/ color etc.

Then to print the .ps file from the Classic environment, first open the Chooser and select your PressReady printer just like you would normally.

Then you'll have to set the type and creator codes for the .ps file to be recognized by the PostScriptHandleDemo program. Go to http://homepage.mac.com/mdouma46/FileSharing4.html and download "ChangeTEXTrbDG.sit". This is a droplet that will change the file type to TEXT and creator to rbDG of any file that's dropped onto it. Take the .ps file you created in OS X, and drop it onto the droplet. Open PostScriptHandleDemo (henceforth PSHD) and navigate to the .ps file. Try saving it in a folder on your OS X desktop that has *** as the first three letters in it's name. This should cause the folder to show up toward the top of the list, to help save time finding it.

Then open PostScriptHandleDemo (be sure to allocate more than the default RAM) and select the .ps file, which will bring up the Page Setup dialog, and then the Print dialog, and then, hopefully, print the file.