CGPDFDocumentCreateWithURL会将文件下载到文档目录中

时间:2011-05-04 11:00:17

标签: iphone pdf cgpdfdocument

我正在使用我的iPhone访问我的PHP服务器中可用的PDF文件,并将文件URL传递给CGPDFDocumentCreateWithURL。我的问题是每当我访问它将下载到我的iphone文档目录的文件?

因为如果我的应用程序处于活动状态一段时间我收到错误CFURLCreateDataAndPropertiesFromResource,错误代码为-14。收到此错误后,我的应用程序没有崩溃,但它无法正常运行。

我无法理解内部流程?请帮我解决这个问题?

2 个答案:

答案 0 :(得分:2)

我认为你误解了CGPDFDocumentCreateWithURL的作用。它不会将PDF文档下载到文件系统。它根据提供的URL在内存中创建PDF。它不会向文件系统保存任何内容。

强烈建议您使用网络类(NSURLConnection,ASI等)首先下载PDF ,然后再打开它。这将使您能够提供更好的反馈,并支持更高级的下载功能,例如恢复部分下载,提供进度以及更好的线程管理。

答案 1 :(得分:0)

保存PDF

NSString *urlString = @"http://www.web.com/url/for/document.pdf";

NSURL *url = [NSURL URLWithString:urlString];

NSData *data = [NSData dataWithContentsOfURL:url];

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:@"myLocalFileName.pdf"];

[data writeToFile:pdfPath atomically:YES];

然后将保存的文件加载到Web视图中:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *pdfPath = [documentsDirectory stringByAppendingPathComponent:@"myLocalFileName.pdf"];

NSURL *url = [NSURL fileURLWithPath: pdfPath];

NSURLRequest *request = [NSURLRequest requestWithURL:url];

[[self mainWebView] loadRequest:request];