是否有可能将多个PDF文件合并到一个单一的PDF文件在iPhone程序化?

是否有可能将多个PDF文件合并成一个单一的PDF文件编程在iphone.I已经创build了我的程序的不同部分单独的页面,现在需要合并成一个单一的文件

是的,你可以这么做。 请按照下面的代码

//Open a pdf context for the single file UIGraphicsBeginPDFContextToFile(oldFile, paperSize, nil); //Run a loop to the number of pages you want for (pageNumber = 1; pageNumber <= count; pageNumber++) { //Open a pdf page context UIGraphicsBeginPDFPageWithInfo(paperSize, nil); //Get graphics context to draw the page CGContextRef currentContext = UIGraphicsGetCurrentContext(); //Flip and scale context to draw the pdf correctly CGContextTranslateCTM(currentContext, 0, paperSize.size.height); CGContextScaleCTM(currentContext, 1.0, -1.0); //Get document access of the pdf from which you want a page CGPDFDocumentRef newDocument = CGPDFDocumentCreateWithURL ((CFURLRef) newUrl); //Get the page you want CGPDFPageRef newPage = CGPDFDocumentGetPage (newDocument, pageNumber); //Drawing the page CGContextDrawPDFPage (currentContext, newPage); //Clean up newPage = nil; CGPDFDocumentRelease(newDocument); newDocument = nil; newUrl = nil; } UIGraphicsEndPDFContext(); 

因此,在绘制页面之前,您必须写出从适当pdf中选取适当页面的必要条件。 您已经创build了来自多个来源的pdf!

这是一个例程,我写了一个pdf的URL,并将其附加到已创build的上下文(以便您可以调用它为多个文件并将它们全部追加):

 - (void)appendPdfAtURL:(NSURL *)pdfURL toContext:(CGContextRef)pdfDestinationContext { CGPDFDocumentRef pdfDoc = CGPDFDocumentCreateWithURL((__bridge_retained CFURLRef)pdfURL); if (pdfDoc) { size_t numPages = CGPDFDocumentGetNumberOfPages(pdfDoc); if (numPages > 0) { // Loop through each page in the source file for (size_t i = 1; i <= numPages; i++) { CGPDFPageRef pdfPage = CGPDFDocumentGetPage(pdfDoc, i); if (pdfPage) { // Get the page size CGRect pdfCropBoxRect = CGPDFPageGetBoxRect(pdfPage, kCGPDFMediaBox); // Copy the page from the source file to the context CGContextBeginPage(pdfDestinationContext, &pdfCropBoxRect); CGContextDrawPDFPage(pdfDestinationContext, pdfPage); } } } // Close the source file CGPDFDocumentRelease(pdfDoc); } } 

尝试Quartz 2D API。 它有很好的支持阅读写PDF文件。

  1. 通过查看API,您应该可以读取所有input的PDF文档
  2. 为他们获取PDF页面
  3. 为您的新文档创build一个PDF上下文
  4. 在PDF上下文中绘制PDF页面

请注意,PDF页面绘图代码应该在开始页面和结束页面之间

 CGPDFDocumentCreateWithURL CGContextBeginPage CGPDFDocumentGetPage CGPDFContextCreateWithURL CGContextDrawPDFPage CGContextEndPage 

查看Apple文档

 [CGContext][1] [CGPDFDocument][2] [CGPDFPage][3] 

看看是否有帮助,或者让我知道如果你需要一些样本伪代码。