将PDF页面保存在多个页面的数组中

时间:2012-02-17 11:12:51

标签: objective-c ios xcode cocoa-touch uipageviewcontroller

如何在数组中保存pdf页面以在uipageviewcontroller中显示它。

1 个答案:

答案 0 :(得分:3)

也许这会有所帮助。

此代码假设有两件事:

  • 您已将Quartz框架添加到项目中,
  • 您有一个描述PDF文档位置的NSURL对象。

首先,创建一个PDFDocument对象,使用PDF文档的内容进行初始化:

// Make a new PDF document object with the contents of the file at the specified URL.
PDFDocument * myPDF = [[PDFDocument alloc]initWithURL:fileURL];

然后,询问PDF文档对象包含的页数。

// Get the page count of the PDF document object.
NSUInteger pdfPageCount = [myPDF pageCount];

使用临时NSMutableArray来保存页面。

// Make a new mutable array to hold the document's pages.
NSMutableArray * mutablePageArray = [NSMutableArray arrayWithCapacity:pdfPageCount];

使用“for”循环翻阅PDF文档的页面。对于循环中的每次旅行,从PDF文档的页面索引中添加与循环计数器对应的页面。

// Add each page of the PDF document to the array.
for (int i=0; i < pdfPageCount; i++) {
    [mutablePageArray addObject:[myPDF pageAtIndex:i]];
}

最后,既然你想要一个NSArray,那就从NSMutableArray的内容中创建一个NSArray。

// Convert the NSMutableArray to an NSArray, then return it.
NSArray * pageArray = [NSArray arrayWithArray:mutablePageArray];

一些说明: 我仍然是Objective-C的新手,所以在这段代码中你可能想要做一些内存管理工作。此外,请注意这是从Mac OS的角度来看,但我认为代码中没有任何固有的Mac版本。至少,它应该让你指向正确的方向。