CGImageSourceCreateImageAtIndex返回nil

时间:2012-10-03 23:41:35

标签: ios pdf uiimage cgimage

我正在尝试使用此解决方案将pdf文件转换为图像:

CFURLRef urlRef = (CFURLRef)[NSURL fileURLWithPath:@"http://uat.okitoo.fr/document/document/s595_506cb1811852f/o_specimen-page-seule.pdf"];
CGImageSourceRef src = CGImageSourceCreateWithURL(urlRef, NULL);
NSDictionary* options = [NSDictionary dictionaryWithObject:(id)[NSNumber numberWithInt:500] forKey:(id)kCGImageSourceThumbnailMaxPixelSize];
CGImageRef firstPage = CGImageSourceCreateImageAtIndex(src, 0, (CFDictionaryRef)options);
UIImage* imagePDF = [UIImage imageWithCGImage:firstPage];
CGImageRelease(firstPage);

我的pdf文件没问题但是当我尝试这段代码时,图片没有出现,我有这样的信息:“:ImageIO:CGImageSourceCreateImageAtIndex image source parameter nil”。我无法理解..

我试过其他链接,但我有同样的问题..

有什么想法吗? 还有其他方法可以将我的pdf文件转换为图像吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

您使用不正确的API来创建URL,您需要URLWithString:

CFURLRef urlRef = (CFURLRef)[NSURL URLWithString:@"http://uat.okitoo.fr/document/document/s595_506cb1811852f/o_specimen-page-seule.pdf"];

您当前使用的API是用于本地文件系统上的文件的URL。

答案 1 :(得分:0)

如消息所示,您的urlRef可能是nil

可能是因为你没有提到真正的完整路径,只提到了文件名,而且找不到文件。

如果您的PDF是应用程序包中的文件,请使用[[NSBundle mainBundle] pathForResource:@"test" ofType:@"pdf"]。如果您在运行时将其下载到沙盒中的某个位置,只需使用PDF下载的路径。