在Cocoa中合并PDF文件

7
我希望将几个PDF文件连接起来形成一个单一的PDF文件。 现在我已经知道,PDFKit是正确的方法(我猜)。 但我不确定如何完成合并。 我应该有一个PDFDocument和多个PDFPage,然后在PDFDocument上调用insertPage吗? 还是有一个更简单的方法?我不想改变PDF的内容,只想将它们合并。 非常感谢!
1个回答

9
根据您的要求,您需要一个输出PDFDocument对象,其中包含所有输入PDF文件的所有页面。为此,您需要循环遍历所有输入文件,为每个文件创建PDFDocument对象,并使用insertPage将所有页面迭代添加到输出PDFDocument对象中。假设inputDocuments是一个包含一个或多个PDFDocument对象的NSArray,您可以使用以下代码片段:
PDFDocument *outputDocument = [[PDFDocument alloc] init];
NSUInteger pageIndex = 0;
for (PDFDocument *inputDocument in inputDocuments) {
    for (NSUInteger j = 0; j < [inputDocument pageCount]; j++) {
        PDFPage *page = [inputDocument pageAtIndex:j];
        [outputDocument insertPage:page atIndex:pageIndex++];
    }
}

我真的不太确定这该怎么做,当我尝试在PDFDocument上使用“快速枚举”时,会出现“集合表达式类型“PDFDocument *”可能无法响应'countByEnumeratingWithState:objects:count:'” 的错误提示。 - Alex Gray
1
是的,您必须迭代每个PDF文档的所有页面。我已经修复了错误。 - fjoachim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接