我需要显示从Web服务接收的PDF文件的内容。

我的问题是所有PDF框都返回相同的值。您知道我正在使用的文件怎么了吗?

CGPDFPageRef drawPDFPageRef = CGPDFPageRetain( CGPDFDocumentGetPage(pdf, 1) );
CGRect cropBoxRect = CGPDFPageGetBoxRect(drawPDFPageRef, kCGPDFCropBox);
CGRect mediaBoxRect = CGPDFPageGetBoxRect(drawPDFPageRef, kCGPDFMediaBox);


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


尝试在kCGPDFCropBox中使用CGPDFGetPageDrawingTransform,这可能会有所帮助

关于objective-c - 使用CGContextDrawPDFPage的PDF渲染:找不到CropBox,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7939551/

10-12 03:28