我需要下载pdf文件,我将其作为base64string在api响应中获取。
我应该如何基于单元格标签在本地保存它并使用documentcontroller进行预览?
Eg-api响应是一个包含不同pdf文件的字典数组,其中我们有一个名为“pdf”的键:“zcvffaewww ..”
我需要在uitableviewcell上点击uibutton下载这些pdf文件,并在documentcontroller中预览。
请帮忙。
感谢。
答案 0 :(得分:1)
你在JSON中得到一个base64字符串,这意味着你也得到了正确的文件名和文件类型(如果没有得到它就没事了)
第1步:您可以在webView中查看该PDF,而不是下载。这是实现此目的的方法,
// convert your base64 string into NSData
NSData* myData = [NSData dataFromBase64String: yourBase64String];
然后写下面的代码在webView中显示pdf,
[_webView loadData:myData
MIMEType:@"application/pdf"
textEncodingName:@"NSUTF8StringEncoding"
baseURL:[NSURL URLWithString:@"https://www.google.co.in/"]];
// zooming pdf view
_webView.scalesPageToFit = YES;
_webView.autoresizingMask = (UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight);
它将在webView中显示pdf
第2步:下载pdf,编写代码
NSURL *URL = [NSURL URLWithString:
[NSString stringWithFormat:@"data:application/pdf;base64,%@",
numStr]];
NSData *urlData = [NSData dataWithContentsOfURL:url];
if ( urlData )
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *filePath = [NSString stringWithFormat:@"%@/%@", documentsDirectory,@"filename.pdf"];
[urlData writeToFile:filePath atomically:YES];
}