将pdf页面添加到现有的pdf objective-c

我正在写一个iphone / ipad的应用程序,将相机图像(.png)转换为pdf并保存到/ user / documents文件夹。 现在我试图找出如何将另一个pdf附加到现有的文档,以便他们将成为多页。 基本上,如果你有doc1.pdf和doc2.pdf保存在文档文件夹中,你将如何合并2个pdf文件,使他们成为1页文件2页?

欣赏任何帮助或build议,你们可以给我。

谢谢,

下面是一个附加一个pdf的示例代码:

// Documents dir NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; // File paths NSString *pdfPath1 = [documentsDirectory stringByAppendingPathComponent:@"pdf1.pdf"]; NSString *pdfPath2 = [documentsDirectory stringByAppendingPathComponent:@"pdf2.pdf"]; NSString *pdfPathOutput = [documentsDirectory stringByAppendingPathComponent:@"pdfout.pdf"]; // File URLs CFURLRef pdfURL1 = (CFURLRef)[[NSURL alloc] initFileURLWithPath:pdfPath1]; CFURLRef pdfURL2 = (CFURLRef)[[NSURL alloc] initFileURLWithPath:pdfPath2]; CFURLRef pdfURLOutput = (CFURLRef)[[NSURL alloc] initFileURLWithPath:pdfPathOutput]; // File references CGPDFDocumentRef pdfRef1 = CGPDFDocumentCreateWithURL((CFURLRef) pdfURL1); CGPDFDocumentRef pdfRef2 = CGPDFDocumentCreateWithURL((CFURLRef) pdfURL2); // Number of pages NSInteger numberOfPages1 = CGPDFDocumentGetNumberOfPages(pdfRef1); NSInteger numberOfPages2 = CGPDFDocumentGetNumberOfPages(pdfRef2); // Create the output context CGContextRef writeContext = CGPDFContextCreateWithURL(pdfURLOutput, NULL, NULL); // Loop variables CGPDFPageRef page; CGRect mediaBox; // Read the first PDF and generate the output pages NSLog(@"Pages from pdf 1 (%i)", numberOfPages1); for (int i=1; i<=numberOfPages1; i++) { page = CGPDFDocumentGetPage(pdfRef1, i); mediaBox = CGPDFPageGetBoxRect(page, kCGPDFMediaBox); CGContextBeginPage(writeContext, &mediaBox); CGContextDrawPDFPage(writeContext, page); CGContextEndPage(writeContext); } // Read the second PDF and generate the output pages NSLog(@"Pages from pdf 2 (%i)", numberOfPages2); for (int i=1; i<=numberOfPages2; i++) { page = CGPDFDocumentGetPage(pdfRef2, i); mediaBox = CGPDFPageGetBoxRect(page, kCGPDFMediaBox); CGContextBeginPage(writeContext, &mediaBox); CGContextDrawPDFPage(writeContext, page); CGContextEndPage(writeContext); } NSLog(@"Done"); // Finalize the output file CGPDFContextClose(writeContext); // Release from memory CFRelease(pdfURL1); CFRelease(pdfURL2); CFRelease(pdfURLOutput); CGPDFDocumentRelease(pdfRef1); CGPDFDocumentRelease(pdfRef2); CGContextRelease(writeContext); 

资源