使用COCOA将PDF页面转换为图像

时间:2009-12-13 16:45:41

标签: cocoa pdf split

我遇到PDF转换为图片的问题。我想为PDF文档中的每个页面创建一个图像文件。

这是我正在使用的代码并且工作正常。每个页面都转换为图像,但我的图像分辨率有问题。我不知道如何设置输出图像的分辨率。有人可以帮助我吗?

NSData *pdfData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://localhost/test/test.pdf"]];


NSPDFImageRep *img = [NSPDFImageRep imageRepWithData:pdfData]; 
 NSFileManager *fileManager = [NSFileManager defaultManager];
 int count = [img pageCount]; 
 for(int i = 0 ; i < count ; i++) { 
  [img setCurrentPage:i]; 
  NSImage *temp = [[NSImage alloc] init]; 
  [temp addRepresentation:img]; 
  NSBitmapImageRep *rep = [NSBitmapImageRep imageRepWithData:[temp TIFFRepresentation]]; 
  NSData *finalData = [rep representationUsingType:NSJPEGFileType properties:nil]; 
  NSString *pageName = [NSString stringWithFormat:@"Page_%d.jpg", [img currentPage]]; 
  [fileManager createFileAtPath:[NSString stringWithFormat:@"%@/%@", @"/Users/mac/Desktop/", pageName] contents:finalData attributes:nil];
 }

非常感谢!

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

最简单的方法是使用ImageIO框架。将PDF数据提供给image source以获得CGImage;将该对象提供给image destination以生成(并且可选地保存在同一步骤中)JPEG数据。在后一步中,您可以在图像属性中指定分辨率;见“Individual Image Properties” in the documentation

不要忘记finalize your destination。这很重要。