0

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

4

1 回答 1

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 的内容。至少,它应该让你指向正确的方向。

于 2012-11-01T13:16:37.147 回答