使用CGContextDrawPDFPage比预期的边距更宽

时间:2010-03-18 18:17:56

标签: iphone pdf-generation

我正在使用下面的代码在iPhone上呈现PDF页面。它有效,但边缘看起来比我使用Acrobat Reader或Mac预览查看相同的PDF时要宽得多,因此缩小内容的幅度要小得多。我的代码是否真的导致了这种行为?

关于下面的界限,我验证了代码使用的界限基本上是整个屏幕区域的高度和宽度,而不是状态栏。

CGContextSetStrokeColorWithColor(context, backgroundColor.CGColor);
CGContextSetFillColorWithColor(context,backgroundColor.CGColor); 
CGContextSetLineWidth(context, 2.0);
CGContextAddRect(context, CGRectMake(0.0,0.0, self.bounds.size.width, self.bounds.size.height));
CGContextDrawPath(context, kCGPathFillStroke);
CGContextTranslateCTM(context, 0.0, self.bounds.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGPDFPageRef page = CGPDFDocumentGetPage(myPDF, (size_t) pageNum);
CGContextSaveGState(context);
CGAffineTransform pdfTransform = CGPDFPageGetDrawingTransform(page, kCGPDFMediaBox, self.bounds, 0, true);
CGContextConcatCTM(context, pdfTransform);
CGContextDrawPDFPage(context, page);
CGContextRestoreGState(context);

2 个答案:

答案 0 :(得分:2)

预览通常会显示PDF文件的裁剪框,因此您应使用kCGPDFCropBox代替kCGPDFMediaBox作为box的{​​{1}}参数。

但是,如果裁剪框设置为一个小矩形,我还没有让Quartz实际缩放页面。

答案 1 :(得分:0)

我在这里得到了答案

CGContext pdf page aspect fit