如何在iOS中显示PDF原始数据

时间:2012-11-06 15:15:14

标签: objective-c ios pdf

我有一个可以下载PDF的网址,但我不能使用以下内容:

[myWebView loadRequest:urlRequest];

因为这个链接会发出一些挑战......

但是,我设法获取PDF原始数据NSURLConnection(确切地说,我可以在委托方法中获取数据:

(void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data).

然后我想知道,我怎么能显示这个PDF?有没有人有任何想法?非常感谢!

1 个答案:

答案 0 :(得分:0)

我已经制作了自己的pdf下载课程,但这是你需要的。在班级的.h。声明:

NSMutableData *_data;
NSString *pdfPath;

还为连接的子代表

<NSURLConnectionDataDelegate, NSURLConnectionDelegate>

然后在实施文件中,- viewDidLoad

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
pdfPath = [documentsDirectory stringByAppendingPathComponent:@"pdfName.pdf"];

connection:didReceiveData:方法:

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    if(!_data) _data = [[NSMutableData data]init];
    [_data appendData:data];
    progressView.progress =  ((float) [_data length] / (float) downloadSize);
}

connectionDidFinishLoading:方法:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {

        unsigned char byteBuffer[[_data length]];
        [_data getBytes:byteBuffer];
        [_data writeToFile:pdfPath atomically:YES];

}

因此,当它接收数据时,它会构建_data,然后在完成时将其写入路径。确保连接委托设置为self

之后,您可以像以前一样打开PDF的路径。