How to split PDF into separate single page PDF in iOS programmatically

时光总嘲笑我的痴心妄想 提交于 2019-12-22 09:21:52

问题


The requirement is to split the PDF in to individual page, retaining the individual file as .pdf extension only. The files which are created in /CreatedPDF Folder are not getting opened

Please help in figuring/correcting this issue.

//"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);
}

回答1:


i missed one line of code, as we have to release the CGContext also, so within the loop just add the line, rest all code will work.

CGContextRelease (context);


来源:https://stackoverflow.com/questions/25992238/how-to-split-pdf-into-separate-single-page-pdf-in-ios-programmatically

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!