2

可能重复:
如何使 pdf 页面适合整个视图

我正在毫无问题地显示 PDF,但是,在我编译应用程序时,原始 PDF 没有显示很大的边距。我的代码:

在 H 文件中:

@interface viewPDF : UIView 

{

CGPDFDocumentRef document;


}

在 M 文件中:

 - (id)initWithFrame:(CGRect)frame {

self = [super initWithFrame:(CGRect)frame];
if (self) {
    self.backgroundColor = [UIColor clearColor];
    NSString *pathToPdfDoc = [[NSBundle mainBundle] pathForResource:@"myPDF" ofType:@"pdf"];
    NSURL *pdfUrl = [NSURL fileURLWithPath:pathToPdfDoc];
    document = CGPDFDocumentCreateWithURL((__bridge CFURLRef)pdfUrl);
    currentPage = 1;

}

return self;
}

-(void)drawRect:(CGRect)inRect{                 
if(document) 

{

    CGPDFPageRef page = CGPDFDocumentGetPage(document, currentPage);
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    CGContextSaveGState(ctx);
    CGContextTranslateCTM(ctx, 0.0, [self bounds].size.height);

    CGContextScaleCTM(ctx, 1.0, -1.0);
    CGContextConcatCTM(ctx, CGPDFPageGetDrawingTransform(page, kCGPDFCropBox, [self bounds], 0, true));
    CGContextDrawPDFPage(ctx, page);    
    CGContextRestoreGState(ctx);

 }

有没有伟大的 PDF 开发人员知道如何避免空白?

4

1 回答 1

3

PDF 页面由 2 个框定义:定义物理页面大小的媒体框和定义媒体框内页面可见区域的裁剪框。您需要做的是在绘制 PDF 页面之前设置与裁剪框匹配的剪切路径。然后,当您绘制页面时,裁剪框外的所有内容都将被剪裁,您将看到在任何查看器中看到的页面。

于 2012-07-25T08:25:41.103 回答