UIImage-ASMPDF 0.2

UIImage-ASMPDF 0.2

测试已测试
语言语言 Obj-CObjective C
许可 MIT
发布最后发布2015年2月

Andy Molloy维护。



  • Andy Molloy

一个基于 UIImage 的用于加载 PDF 的分类,受 UIImage-PDF 启发。UIImage-ASMPDF 函数与 UIImage-PDF 在很大程度上相同,但通过删除额外的 UIView 需要简化了实现。UIImage-ASMPDF 还允许您指定 PDF 内的区域内要渲染到图片中,而不仅仅是渲染整个页面。

使用方法

NSURL* imageURL = ...; // URL pointing to a PDF
UIImage* image = [UIImage imageWithPDFatURL:imageURL destinationSize:CGSizeMake(320, 415)];

这将返回一个图像,它是 PDF 第一页的渲染。图像的大小将与 destinationSize 相匹配。图像将是完全透明的,并且其比例设置为与 [UIScreen mainScreen].scale 相匹配。其他方法也可以让您控制这些设置。

您还可以指定在 PDF 第一页内的矩形区域进行渲染,而不仅仅是整个图像。

CGRect cropRect = CGRectMake(0, 0, 96, 96);
UIImage* croppedImage = [UIImage imageWithPDFatURL:imageURL destinationSize:CGSizeMake(300, 300) cropRect:cropRect];

裁剪矩形应以点为单位指定。

UIImage-ASMPDF 支持将渲染的图像缓存到内存、磁盘或两者。要请求缓存:

    [UIImage setASMPDFCacheType:ASMPDFNoCache]; // No cache (the default)
    [UIImage setASMPDFCacheType:ASMPDFMemoryCache]; // Cache to memory
    [UIImage setASMPDFCacheType:ASMPDFDiskCache]; // Cache to disk
    [UIImage setASMPDFCacheType:ASMPDFDiskCache | ASMPDFMemoryCache]; //Cache to memory and disk, favoring memory.

这应该在早期调用,例如在您的应用代理的 application:didFinishLaunchingWithOptions: 方法中。

内存缓存使用 NSCache,因此在您的应用接收到内存警告时应该清除。

磁盘缓存将渲染的图像作为 PNG 存储在您的应用的 NSCachesDirectory 中,这意味着设备可能会在警告之前清除缓存以释放磁盘空间。

如果您指定使用内存和磁盘缓存,则首先检查内存缓存,然后是磁盘。同时更新两个缓存。

限制

当前仅支持渲染多页 PDF 的第一页。支持多页应该很简单,但我不 currently 有使用它们。请随时提交拉取请求!