vda*_*bry 2 pdf core-graphics objective-c ipad
我需要显示从Web服务收到的PDF文件的内容.
我的问题是所有PDF框都返回相同的值.你知道我正在使用的文件有什么问题吗?
CGPDFPageRef drawPDFPageRef = CGPDFPageRetain( CGPDFDocumentGetPage(pdf, 1) );
CGRect cropBoxRect = CGPDFPageGetBoxRect(drawPDFPageRef, kCGPDFCropBox);
CGRect mediaBoxRect = CGPDFPageGetBoxRect(drawPDFPageRef, kCGPDFMediaBox);
Run Code Online (Sandbox Code Playgroud)
cropBoxRect =(0,0,595,842)mediaBoxRect =(0,0,595,842)
当我在UIWebView中显示PDF时,内容正常
这是由UIWebView呈现的PDF
这是CGContextDrawPDFPage呈现的PDF
谢谢你的帮助,文森特
这看起来不像元数据,而是像媒体框被用来裁剪PDF而不是裁剪框.在你的代码中你可能有这样的东西:
CGContextSetInterpolationQuality(ctx, kCGInterpolationHigh);
CGContextSetRenderingIntent(ctx, kCGRenderingIntentDefault);
CGContextSetRGBFillColor( ctx, 1.0, 1.0, 1.0, 1.0 );
CGContextFillRect( ctx, CGContextGetClipBoundingBox( ctx ));
CGContextTranslateCTM( ctx, 0.0, self.bounds.size.height );
CGContextScaleCTM( ctx, 1.0, -1.0 );
CGAffineTransform pdfXfm = CGPDFPageGetDrawingTransform( pdfPage, kCGPDFMediaBox, self.bounds, 0, true );
CGContextConcatCTM( ctx, pdfXfm );
CGContextDrawPDFPage( ctx, pdfPage );
Run Code Online (Sandbox Code Playgroud)
尝试使用kCGPDFCropBox
中CGPDFGetPageDrawingTransform
,可以帮助