在Cocoa中组合PDF文件(快速枚举未实现)

时间:2011-07-20 04:19:52

标签: objective-c cocoa pdfkit

我想通过将每个PDF的页面附加到单个PDF来将几个PDF组合成一个。对此站点上的an identical question的回答给出了以下代码(假设inputDocuments是PDFDocuments的数组:

PDFDocument *outputDocument = [[PDFDocument alloc] init];
NSUInteger pageIndex = 0;
for (PDFDocument *inputDocument in inputDocuments) {
    for (PDFPage *page in inputDocument) {
        [outputDocument insertPage:page atIndex:pageIndex++];
    }
}

现在,我不知道PDFDocument类最初是否支持快速枚举,但现在看来它并不存在。我尝试使用一系列带有以下单页PDFDocuments数组的for循环来做同样的事情:

    PDFDocument *outputDocument = [[PDFDocument alloc] init];
    NSUInteger aPageCount=0;

    for (PDFConverter* aConverter in [self finishedPDFConverters])
    {
        [outputDocument insertPage:[[aConverter theDoc] pageAtIndex:0] atIndex:aPageCount];
        aPageCount++;
    }

但是我收到了错误

"2011-07-19 23:56:58.719 URLDownloader[37165:903] *** WebKit discarded an uncaught exception in the webView:didFinishLoadForFrame: delegate: <NSRangeException> *** -[NSCFArray insertObject:atIndex:]: index (1) beyond bounds (1)"

添加第一个文档后,我最终得到一个只有1页的PDF。我怎么能纠正这个?

2 个答案:

答案 0 :(得分:1)

错误与快速枚举无关。

您尝试在超出范围的索引处插入页面(&gt;而不是计数)。尝试将insertPage:atIndex:替换为addPage:

答案 1 :(得分:0)

经过长时间的中断后回到这个项目,我只是通过循环浏览PDF从最后一个到第一个,然后循环遍历页面并在索引0处插入每个来修复问题。卷曲,但它有效......