ios - 如何以编程方式在 iOS 中将 PDF 拆分为单独的单页 PDF

标签 ios iphone ios7

要求是将 PDF 拆分为单个页面,仅将单个文件保留为 .pdf 扩展名。 在/CreatedPDF 文件夹中创建的文件无法打开 enter image description here

请帮助解决/更正此问题。

//"fileURL" is the original File which has to be broken
//"pages" is the number of pages in PDF
NSInteger pages = CGPDFDocumentGetNumberOfPages(pdfDocReference);

for (int page = 1; page <= pages; page++)
 {
   NSFileManager *fm = [NSFileManager defaultManager];
   NSString *dirName = [documentsDirectory stringByAppendingPathComponent:@"/CreatedPDF"];
   [fm createDirectoryAtPath:dirName withIntermediateDirectories:YES attributes:nil error:nil];
   NSString *pdfPath = [dirName stringByAppendingPathComponent:[NSString stringWithFormat:@"page_%d.pdf",page]];
   NSURL *pdfUrl = [NSURL fileURLWithPath:pdfPath];

   CGContextRef context = CGPDFContextCreateWithURL((__bridge_retained CFURLRef)pdfUrl, NULL, NULL);

   CGPDFDocumentRef pdfDoc = CGPDFDocumentCreateWithURL((__bridge_retained CFURLRef)fileURL);
   CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDoc, 1);
   CGRect pdfCropBoxRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox);

   // Copy the page to the new document
   CGContextBeginPage(context, &pdfCropBoxRect);
   CGContextDrawPDFPage(context, pdfPage);
   // Close the source files
   CGContextEndPage(context);
   CGPDFDocumentRelease(pdfDoc);
}

最佳答案

我错过了一行代码,因为我们还必须释放 CGContext,所以在循环中只需添加该行,其余所有代码都可以工作。

CGContextRelease (context);

关于ios - 如何以编程方式在 iOS 中将 PDF 拆分为单独的单页 PDF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25992238/

相关文章:

ios - 调用可以抛出,但是没有标记 'try' 错误没有处理: NSRegularExpression

iphone - 来自相机的原始图像数据

iOS:在 segue 中无法同时满足约束

objective-c - 自动布局旋转不起作用

iphone - iOS TableView 钻取卡住

iphone - 如何在 iOS 7 锁屏上设置当前播放持续时间和耗时?

iphone - 如何对 NSPredicate 过滤的 coreData 属性求和?

ios - 单张 Flickr 照片导致荒谬的容量异常

ios - 作为 iOS 的组件,cocoa Touch 和 openGL 都有不同的坐标系。为什么会这样

iphone - uilocalnotification 未在准确时间触发