PDF 文件合并

#pragma mark - Merge PDF


- (void)mergePDF

{

 NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

 NSString *filePath1 = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"阅办卡.pdf"];

 NSString *filePath2 = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"文件.pdf"];

 NSArray *PDFURLS = [NSArray arrayWithObjects:filePath1,filePath2, nil];


[self joinPDF:PDFURLS];

}


- (NSString *)joinPDF:(NSArray *)listOfPaths {

 // File paths

 NSString *fileName = [NSString stringWithFormat:@"公文%d.pdf",arc4random_uniform(100)];

 NSString *pdfPathOutput = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:fileName];


 CFURLRef pdfURLOutput = ( CFURLRef)CFBridgingRetain([NSURL fileURLWithPath:pdfPathOutput]);


 NSInteger numberOfPages = 0;

 // Create the output context

 CGContextRef writeContext = CGPDFContextCreateWithURL(pdfURLOutput, NULL, NULL);


 for (NSString *source in listOfPaths) {

 CFURLRef pdfURL = ( CFURLRef)CFBridgingRetain([[NSURL alloc] initFileURLWithPath:source]);


 //file ref

 CGPDFDocumentRef pdfRef = CGPDFDocumentCreateWithURL((CFURLRef) pdfURL);

numberOfPages = CGPDFDocumentGetNumberOfPages(pdfRef);


 // Loop variables

 CGPDFPageRef page;

 CGRect mediaBox;


 // Read the first PDF and generate the output pages

 //        NSLog(@"GENERATING PAGES FROM PDF 1 (%@)...", source);

 for (int i=1; i<=numberOfPages; i++) {

page = CGPDFDocumentGetPage(pdfRef, i);

mediaBox = CGPDFPageGetBoxRect(page, kCGPDFMediaBox);

 CGContextBeginPage(writeContext, &mediaBox);

 CGContextDrawPDFPage(writeContext, page);

 CGContextEndPage(writeContext);

        }


 CGPDFDocumentRelease(pdfRef);

 CFRelease(pdfURL);

    }

 CFRelease(pdfURLOutput);


 // Finalize the output file

 CGPDFContextClose(writeContext);

 CGContextRelease(writeContext);


 return pdfPathOutput;

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容