1

私は1年以上iPadアプリでいくつかの方法を使用してきましたが、主にここで利用可能なAppleコードに基づいて、PDFページを適切に表示しています.これまで、数十の異なるPDFでうまく機能していました. なんらかの方法で色が歪んでいるように見える PDF を大量に入手しました。プレビュー/アドビが表示するもの:

私が期待したこと

CGPDFDrawPDFPage() そして、シミュレーターを使用して、レイヤーベースとiPad UIWebView(ファイルを指している)の両方で私が見ているものは次のとおりです。

私が得たもの

どういうわけかPDFが奇妙な色空間(CMYK?)にあるのではないかと思っていますが、プレビュー/ Adob​​e 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);
}

ご覧のとおり、私たちはiPhone / iPad / iOS 用の Fast and Lean PDF Viewer の熱心な読者でもあります - ヒントとヒント?

私たちが見ているものを診断する方法、および/または色空間を変更する方法 (または PDF ドキュメントを変更する方法についての提案はありますか? そのオプションもあります)。

4

3 に答える 3

2

私の経験では、iOS は CMYK を RGB に変換するときに色をブッチャーします。Acrobat には、事前に PDF を RGB に変換するために使用できる優れたツールがあり、問題を完全に回避できます。

Tools > Print Production > Convert Colors
Check "Convert Colors to Output Intent"
Set Output Intent to "Apple RGB"
Click OK
于 2012-05-05T20:34:48.100 に答える
1

アクションを作成してsRGBプロファイルに変換することで、変換するPDFがたくさんある場合は、AcrobatProで作業を簡単に行うことができます。

于 2013-02-21T16:52:19.877 に答える