iOS中的pdf查看器

时间:2013-12-04 06:34:37

标签: ios pdf

我在ios应用程序中制作pdf查看器。所以我使用了来自github的树叶,以便拥有curl effect。然后我使用方法

添加了缩略图
- (UIImage *)imageFromPDFWithDocumentRef:(CGPDFDocumentRef)documentRef andPageNumber:(int)pageNumber{

    CGPDFPageRef pageRef = CGPDFDocumentGetPage(documentRef, pageNumber);
    CGRect pageRect = CGPDFPageGetBoxRect(pageRef, kCGPDFCropBox);

    UIGraphicsBeginImageContext(pageRect.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextTranslateCTM(context, CGRectGetMinX(pageRect),CGRectGetMaxY(pageRect));
    CGContextScaleCTM(context, 1, -1);
    CGContextTranslateCTM(context, -(pageRect.origin.x), -(pageRect.origin.y));
    CGContextDrawPDFPage(context, pageRef);

    UIImage *finalImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return finalImage;
}

在这里,我呼吁我拥有的每一页。因此我在视图控制器的底部添加了缩略图。点击任何缩略图我应该导航到相应的页面。 幸运的是,我有代表,我应该通过PageIndexCGContextRef以便转到相应的页面。

- (void)renderPageAtIndex:(NSUInteger)index inContext:(CGContextRef)ctx {
    reqContext = ctx;
    CGPDFPageRef page = CGPDFDocumentGetPage(_pdf, index + 1);
    CGAffineTransform transform = aspectFit(CGPDFPageGetBoxRect(page, kCGPDFMediaBox),
                                            CGContextGetClipBoundingBox(reqContext));
    CGContextConcatCTM(reqContext, transform);
    CGContextDrawPDFPage(reqContext, page);
    NSLog(@"index is %d",index);
    //NSLog(@"%@",reqContext);

}

上面的代码存在于我从github获得的叶子中。现在我在github中看到,如果我调用此委托,则可以显示相应的页面。现在我可以通过pageIndex但无法以任何方式传递CGContextRef

有没有其他方法可以显示页面?

0 个答案:

没有答案