我已经在iPad应用程序中使用了一些方法已经超过一年了,主要是基于苹果代码available here来很好地显示PDF页面 - 到目前为止它已经适用于许多不同的PDF。我刚收到一堆PDF,看起来它们的颜色在某种程度上变形了。预览/ Adobe显示的内容:
这就是我所看到的,使用模拟器在iPad UIWebView(指向文件)中基于图层的CGPDFDrawPDFPage()
和:
我想知道PDF是否在某种奇怪的色彩空间(CMYK?),但这无法解释为什么Preview / Adobe Reader可以正常打开它。作为参考,这是UIView子类中使用的显示代码的总和(注意,pdfPage
是一个实例变量):
// Draw the CGPDFPageRef into the layer at the correct scale.
-(void)drawLayer:(CALayer*)layer inContext:(CGContextRef)context
{
// from https://stackoverflow.com/questions/3889634/fast-and-lean-pdf-viewer-for-iphone-ipad-ios-tips-and-hints
CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
CGContextSetRenderingIntent(context, kCGRenderingIntentDefault);
// First fill the background with white.
CGContextSetRGBFillColor(context, 1.0f, 1.0f, 1.0f, 1.0f);
CGContextFillRect(context, self.bounds);
CGContextSaveGState(context);
// Flip the context so that the PDF page is rendered
// right side up (all the PDF routines are built for Mac OS X
// coordinate systems, where Y is upwards.
// first move the origin down by the full height
CGContextTranslateCTM(context, 0.0f, self.bounds.size.height);
// now invert the Y position (scale by -1)
CGContextScaleCTM(context, 1.0f, -1.0f);
// Scale the context so that the PDF page is rendered
// at the correct size for the zoom level.
CGContextScaleCTM(context, myScale, myScale);
CGContextDrawPDFPage(context, pdfPage);
CGContextRestoreGState(context);
}
正如您所看到的,我们也是Fast and Lean PDF Viewer for iPhone / iPad / iOs - tips and hints?
的狂热读者有关如何诊断我们所看到的内容和/或改变色彩空间的任何建议(或更改PDF文档?我们也有此选项)。
答案 0 :(得分:4)
我猜你的PDF除了CMYK之外还使用一种或多种专色。似乎iOS上不支持这些 - 据我所知,这在任何地方都没有记录,但这是我的经验。
如果您有Acrobat Pro,可以使用Ink Manager(高级→打印制作→墨水管理器)进行检查。
您还可以使用Acrobat将专色转换为印刷色(高级→打印生产→转换颜色...)。单击颜色转换对话框中的“Ink Manager”按钮,然后激活“将所有点转换为处理”复选框。
答案 1 :(得分:2)
根据我的经验,当将CMYK转换为RGB时,iOS会产生颜色。 Acrobat中有一个很好的工具,可以用来提前将PDF转换为RGB,从而完全回避这个问题:
Tools > Print Production > Convert Colors
Check "Convert Colors to Output Intent"
Set Output Intent to "Apple RGB"
Click OK
答案 2 :(得分:1)
如果您要通过创建操作并转换为sRGB配置文件来转换大量PDF,则可以在Acrobat Pro中简化操作。