2014-01-27 61 views
0

我已经创建了一个应用程序来创建PDF并将其存储在应用程序文档文件夹中。当按下'View pdf'UIButton时,我现在想打开它并从应用程序中查看它。在Xcode项目中打开保存在我的文档文件夹中的pdf

我已经看过这里的几个问题,我已经考虑过一个单独的视图控制器或可能是一个滚动视图。

什么是最好的使用方法?

UPDATE:

我按照意见,我想使用QLPreviewController。我添加了QuickLook框架,现在有以下内容,但我坚持如何获得在pathForResource中识别的路径。有什么建议么?

- (NSInteger)numberOfPreviewItemsInPreviewController:(QLPreviewController *)controller 
{ 
return 1; 
} 

- (id <QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index 
{ 
NSString *path=[[NSBundle mainBundle] pathForResource:[pdfPathWithFileName] ofType:nil]; 
    return [NSURL fileURLWithPath:path]; 
} 



- (IBAction)viewPdfButton:(id)sender { 

NSString *filename= @"ObservationPDF.pdf"; 
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documnetDirectory = [path objectAtIndex:0]; 
NSString *pdfPathWithFileName = [documnetDirectory stringByAppendingPathComponent:filename]; 

[self generatePdf: pdfPathWithFileName]; 

QLPreviewController *previewController=[[QLPreviewController alloc]init]; 
previewController.delegate=self; 
previewController.dataSource=self; 
[self presentViewController:previewController animated:YES completion:nil]; 

}

+0

什么你研究过吗? – Wain

+0

编辑的问题来回答这个问题 - 我知道,我似乎没有看过它,但是当我研究这个时候,似乎建议的是一个单独的应用程序来查看它。这就是说我不想安装一个单独的应用程序。但是可以设置一个按钮来打开使用Safari的网络链接。对于内置于iOS的PDF查看器是否有类似的方法,或者您是否需要通过自己的视图来完成?如果你能做到两者哪个更好? – RGriffiths

回答

2

如果PDF文件是在应用程序文件夹,然后你不应该想着它传递到另一个应用程序,你应该寻找呈现在应用程序中的文件。 2个常规选项:

  1. 添加UIWebView和本地文件加载到它
  2. 使用QLPreviewController显示包含PDF

Web视图是简单的一个新的观点,并要求在没有过渡UI。预览控制器需要转换,但可免费提供一些共享/打印支持。


此行是混乱(和它的外观无效的语法):

NSString *path=[[NSBundle mainBundle] pathForResource:[pdfPathWithFileName] ofType:nil]; 

您只使用NSBundle获得项目从捆绑的,而不是你拥有什么。您应该只创建与文件路径的网址,让您保存文件:

[NSURL fileURLWithPath:pdfPathWithFileName]; 

(你可以存储或者您可能需要以同样的方式来重新当你保存文件)

+0

谢谢。我已经添加了我已经掌握的更新。我认为这很接近,但不能完全达到目标。你能看到我缺少的东西吗? – RGriffiths

相关问题