我想通过将每个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。我怎么能纠正这个?
答案 0 :(得分:1)
错误与快速枚举无关。
您尝试在超出范围的索引处插入页面(&gt;而不是计数)。尝试将insertPage:atIndex:
替换为addPage:
答案 1 :(得分:0)
经过长时间的中断后回到这个项目,我只是通过循环浏览PDF从最后一个到第一个,然后循环遍历页面并在索引0处插入每个来修复问题。卷曲,但它有效......