BuySellAds.com

If you like my tutorials, you will love my book . It is chockful of advanced programming techniques and the only comprehensive barcode reference for serious iOS developers.
Our DNA is written in Objective-C
Jump

Bug: Quartz PDF Rendering with CMYK Page-Level Transparency Blending Color Space

That’s certainly a mouth full. We stumbled on this weirdness when working on PDF Importing for our iCatalog Editor. I am filing this as a Mac bug at the same time as communicating with DTS to see if they can offer a workaround for this problem.

The problem appears if a PDF is using a CMYK color blending space on a page for transparency blending. That causes this effect. Left side is how the PDF comes out on Mac, right side how it looks correctly on iOS (Simulator/Device). Also if you view the PDF in Preview or Pixelmator it looks weird, only in Adobe’s tools do they look correct.

If the behavior were the same on Mac and iOS then I would have thought to be Adobe using some weird special extension, but since the output is correct on iOS we think that this must actually be a bug. Maybe the Mac version of Quartz PDF rendering tries to do something smart since it is aware of color calibration but doing so messes up the colors.

This is a bit embarrassing since one might think that Macs with all their color profiling and such would get the colors right, overtime. But this appears to be especially prevalent in the print industry which seems to like to use CMYK. Now the problem occurs if they want us developers to use the same PDFs that they created for printing. The only workaround I know of is to edit the PDF and modify the blending setting:

I filed it under Radar #12796443 as well as cross-posted it on OpenRadar.

Summary

If a PDF document has pages that have a page-level transparency blending color space of CMYK then all output on Mac using Quartz PDF drawing will have incorrect colors.

This affects drawing of PDFs via PDFKit, CGPDF functions, viewing in Preview and most third party apps, like e.g. Pixelmator. Adobe’s apps are the only ones the display it correctly.

Interestingly the rendering behavior on iOS – including the iOS simulator on Mac – displays those PDFs correctly.

Steps to Reproduce

Create a PDF with e.g. Adobe InDesign, have some transparent elements
Set the Page-Level Transparency Blending Color Space to CMYK
View this PDF in Preview.app

Expected Results

Colors should look the same viewing the PDF on Mac as well as iOS.

Actual Results

iOS (device and simulator) show correct colors, on Mac the colors look less brilliant and muddy.

Regression

n/a

Notes

If this were happening uniformly on iOS and Mac then we’d say that this might be a problem with Adobe using some weird extensions. But since the colors are correct on iOS, even in the Simulator, we think that OS X is trying to do the right thing with the blending color space, but this causes the colors to be output incorrectly.

This problem is most prevalent in the print industry because there CMYK is often as a default setting used instead of RGB. One would expect for Macs to get the colors right, being the tool of choice (even having color correction) for graphic designers worldwide.


Categories: Bug Reports

2 Comments »

  1. As someone who’s worked a lot with CMYK over the past 25 years, the Mac rendering may well be doing the right thing — if what you wants was to see what the results will be when the file is printed the old-fashioned way. Fewer and fewer people are doing that, so it only makes sense to show the intention behind the design (as iOS does; I’ve never heard of people doing pre-press work under iOS) versus illustrating the danger posed by some gradients when turned into four or more plates of film and run through a press. I’ve seen a lot of designers get proofs returned looking exactly like the Mac preview, above, mostly because they didn’t carefully consider the color composition of the gradient, and the muddy effect it’ll have when you taper down with three colors without overlaying an explicitly black layer on top of them. So: is it accurate? Maybe. Is it expected? Maybe not. But as a designer, if the problem with which I’m all too familiar is the one being shown, then I’d rather see that than be surprised by an expensive press-proof — or, worse, a disappointing finished product. CMYK is a vastly smaller color space than RGB. If something’s going to stay digital, keep it out of CMYK.

  2. iOS doesn’t support a CMYK color space so CMYK PDFs will look different on iOS from Mac. Are you sure it’s not related to that. Convert the PDF to RGB and check if they look the same.

Leave a Comment

%d bloggers like this: