将多页PDF文件转换为多张JPG图片
来源:互联网 发布:淘宝代运营托管 编辑:程序博客网 时间:2024/05/16 19:38
一开始以为做不到,不过iOS原生的库还是挺强大的。
直接上Code吧
- -(void) createJPGsFromPDF:(NSString *)fromPDFName
- {
- if (fromPDFName == nil || [fromPDFName isEqualToString:@""]) {
- return;
- }
- NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
- NSString *documentsDir = [paths objectAtIndex:0];
- NSString *docPath = [documentsDir stringByAppendingPathComponent:fromPDFName];
- NSURL *fromPDFURL = [NSURL fileURLWithPath:docPath];
- CGPDFDocumentRef fromPDFDoc = CGPDFDocumentCreateWithURL((CFURLRef) fromPDFURL);
- // Get Total Pages
- int pages = CGPDFDocumentGetNumberOfPages(fromPDFDoc);
- // Create Folder for store under "Documents/"
- NSError *error = nil;
- NSFileManager *fileManager = [[NSFileManager alloc] init];
- NSString *folderPath = [documentsDir stringByAppendingPathComponent:[fromPDFName stringByDeletingPathExtension]];
- [fileManager createDirectoryAtPath:folderPath withIntermediateDirectories:YES attributes:nil error:&error];
- [fileManager release];
- int i = 1;
- for (i = 1; i <= pages; i++) {
- CGPDFPageRef pageRef = CGPDFDocumentGetPage(fromPDFDoc, i);
- CGPDFPageRetain(pageRef);
- // determine the size of the PDF page
- CGRect pageRect = CGPDFPageGetBoxRect(pageRef, kCGPDFMediaBox);
- // renders its content.
- UIGraphicsBeginImageContext(pageRect.size);
- CGContextRef imgContext = UIGraphicsGetCurrentContext();
- CGContextSaveGState(imgContext);
- CGContextTranslateCTM(imgContext, 0.0, pageRect.size.height);
- CGContextScaleCTM(imgContext, 1.0, -1.0);
- CGContextSetInterpolationQuality(imgContext, kCGInterpolationDefault);
- CGContextSetRenderingIntent(imgContext, kCGRenderingIntentDefault);
- CGContextDrawPDFPage(imgContext, pageRef);
- CGContextRestoreGState(imgContext);
- //PDF Page to image
- UIImage *tempImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
- //Release current source page
- CGPDFPageRelease(pageRef);
- // Store IMG
- NSString *imgname = [NSString stringWithFormat:@"fromPDFName_%d.jpg", i];
- NSString *imgPath = [folderPath stringByAppendingPathComponent:imgname];
- [UIImageJPEGRepresentation(tempImage, 1.0) writeToFile:imgPath atomically:YES];
- }
- CGPDFDocumentRelease(fromPDFDoc);
- }
转载自http://woniu1983.iteye.com/blog/1767008
0 0
- 将多页PDF文件转换为多张JPG图片
- 把PDF文件多张转换为JPG单张
- 如何把多张图片转换为PDF文件
- 怎么把多张jpg图片转换成pdf
- 怎样可以快速将pdf文件转换为jpg图片
- 将pdf文件转换成jpg图片
- 怎么把多张图片转换成为一个PDF文件
- 如何把多张jpg格式的图片转成pdf文件
- jpg图片如何转换pdf
- PDF转换成图片JPG
- 怎么把PDF文件转换成jpg格式图片
- 将PDF文件转换成为JPG图片的方法
- 怎样将PDF文件转换成jpg图片的方法
- 怎么把pdf文件内容都转换成jpg图片
- 如何将PDF文件转换成为JPG图片
- C# 实现多张JPG 转换为GIF格式
- C#实现PDF文件转换为图片
- 多个jpg图片怎么转换成pdf文档
- 【学习笔记----数据结构14-图】
- Tomcat 6.0/webapps/项目名/WEB-INF/classes下为空 .
- gcc命令行详解
- UIGestureRecognizer的混合使用
- 开源代码软件及开源代码许可证的法律特征研究
- 将多页PDF文件转换为多张JPG图片
- 远程桌面连接技巧--与主机拷贝文本及拷贝文件
- 第十一周项目四:特殊三位数
- 动态规划
- HEVC
- Bitmap位图渲染与操作(图片移动,放大,缩小,旋转,镜像发转)
- Dex Loader] Unable to execute dex: Multiple dex files解决办法
- 九的余数
- 学习jQuery Ajax的部分收获