在Cocoa中将PDF转换为高分辨率图像的最佳方法

时间:2011-10-05 12:45:26

标签: cocoa pdf tiff

在Cocoa中将PDF转换为300 dpi(例如)tiff的最佳方法是什么?

我使用PDFImageRep创建NSImage,但我无法找到扩大分辨率的方法。

1 个答案:

答案 0 :(得分:0)

解决方案是为您的图像创建图形上下文,并在该上下文中呈现PDF页面。创建上下文时,指定所需的分辨率。 这段代码将完成这项工作:

+ (UIImage *) convertPDFPageToImage: (CGPDFPageRef) page withResolution: (float) resolution {   
    CGRect cropBox = CGPDFPageGetBoxRect(page, kCGPDFCropBox);
    int pageRotation = CGPDFPageGetRotationAngle(page);

    if ((pageRotation == 0) || (pageRotation == 180) ||(pageRotation == -180)) {
        UIGraphicsBeginImageContextWithOptions(cropBox.size, NO, resolution / 72); 
    }
    else {
        UIGraphicsBeginImageContextWithOptions(CGSizeMake(cropBox.size.height, cropBox.size.width), NO, resolution / 72); 
    }

    CGContextRef imageContext = UIGraphicsGetCurrentContext();   

    [PDFPageRenderer renderPage:page inContext:imageContext];

    UIImage *pageImage = UIGraphicsGetImageFromCurrentImageContext();   

    UIGraphicsEndImageContext();

    return pageImage;
}

摘自此处:http://ipdfdev.com/2011/03/28/convert-a-pdf-page-to-image-on-the-iphone-and-ipad/