2012-05-05 3 views
1

iPad 용 앱에서 두 가지 방법을 사용하여 주로 사과 코드 available here을 기반으로 멋지게 표시했습니다. 지금까지 수십 개의 서로 다른 PDF에 대해 나는 방금 어떤 식 으로든 색이 왜곡 된 것처럼 보이는 수많은 PDF 파일을 얻었습니다. 무엇 미리보기/어도비 보여줍니다웹보기 및 CGPDFDocumentCreate를 통해 PDF 색상이 이상합니다. 아직 미리보기가 아닙니다.

What I got : 여기

What I expected

을 그리고 내가 시뮬레이터를 사용하여, 두 층에,보고 아이 패드의 UIWebView (파일을 가리키는)에 CGPDFDrawPDFPage()을 기반으로하고있는 무슨이다

어쨌든 PDF가 이상한 색상 공간 (CMYK?)에 있는지 궁금하지만, Adobe Reader가 제대로 열 수없는 이유를 설명하지 못합니다. 당신이 볼 수 있듯이, 우리는 또한 Fast and Lean PDF Viewer for iPhone/iPad/iOs - tips and hints?

의 열렬한 독자를왔다

// 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); 
} 

: 참고로, 이것은 UIView의 서브 클래스에서 사용되는 디스플레이 코드의 합계의 총체 (pdfPage 인스턴스 변수입니다주의)이다

우리가보고있는 것을 진단하고 색 공간을 변경하는 방법 (또는 PDF 문서를 변경하는 방법에 대한 제안 사항? 그 옵션도 있습니다.)

답변

4

귀하의 PDF가 CMYK 외에 하나 이상의 별색을 사용한다고 생각합니다. 그것들은 iOS에서 지원되지 않는 것 같습니다. - 내가 아는 한, 이것은 어디에도 기록되어 있지 않지만, 그것은 내 경험이었습니다.

Acrobat Pro를 사용하는 경우 잉크 관리자 (고급 → 인쇄물 생산 → 잉크 관리자)를 사용하여 확인할 수 있습니다.

Acrobat을 사용하여 별색을 프로세스 색으로 변환 할 수도 있습니다 (고급 → 인쇄물 제작 → 색상 변환 ...). 색상 변환 대화 상자에서 "잉크 관리자"버튼을 클릭하고 "모든 스폿을 처리"확인란을 활성화하십시오.

2

CMYK를 RGB로 변환 할 때 iOS 푸줏간 주인 색.

Tools > Print Production > Convert Colors 
Check "Convert Colors to Output Intent" 
Set Output Intent to "Apple RGB" 
Click OK 
1

는 변환 PDF 파일을 많이 가지고 있다면 당신은 아크로뱃 프로에서 일을 더 쉽게 만들 수 있습니다 : 당신이 사전에 RGB로 PDF를 변환하는 데 사용할 따라서 문제를 완전히 피하는 할 수있는 Acrobat의 멋진 도구가있다 액션을 생성하고 sRGB 프로파일로 변환합니다.

+0

감사합니다. Derek -이 PDF는 우리가 제작 한 것이 아니며, 필자에게 전달하는 데 도움이됩니다. –