2017-02-18 16 views
0

Я пытаюсь создать PDF, а затем загрузить PDF в webview для предварительного просмотра. Теперь, когда я могу создать PDF успешно. Затем я хочу создать pdf, нажав кнопку, а затем загрузить в веб-просмотр. Я ссылался на this link и this link. Несмотря на то, что pdf-файл успешно создан, PDF-код не может загружаться в веб-просмотре. Может ли кто-нибудь предложить предложение? Большое спасибо.ios - создайте и загрузите pdf в webview

Код:

-(IBAction)preview:(id)sender 
{ 
CGRect rect = [[UIScreen mainScreen] bounds]; 
CGSize screenSize = rect.size; 
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)]; 
NSDate*todayDate = [NSDate date]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"dd-MM-yyyy "]; 
NSString *mytext = [NSString stringWithFormat:@"form%@",[dateFormatter stringFromDate:todayDate]]; 
[self createPDFfromUIView:_myView saveToDocumentsWithFileName:mytext]; 
NSLog(@"is saved in %@", mytext); 
NSString *path = [self createPDFfromUIView:_myView saveToDocumentsWithFileName:mytext]; 
NSURL *targetURL = [NSURL fileURLWithPath:path]; 
NSURLRequest *request = [NSURLRequest requestWithURL:targetURL]; 
[webView loadRequest:request]; 
} 
-(NSMutableData *)createPDFDatafromUIView:(UIView*)aView 
{ 
NSMutableData *pdfData = [NSMutableData data]; 
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil); 
UIGraphicsBeginPDFPage(); 
CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 
[aView.layer renderInContext:pdfContext]; 
UIGraphicsEndPDFContext(); 
return pdfData; 
} 
-(NSString*)createPDFfromUIView:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename 
{ 
NSMutableData *pdfData = [self createPDFDatafromUIView:aView]; 
UIGraphicsBeginPDFContextToData(pdfData, aView.bounds, nil); 
UIGraphicsBeginPDFPage(); 
CGContextRef pdfContext = UIGraphicsGetCurrentContext(); 
[aView.layer renderInContext:pdfContext]; 
UIGraphicsEndPDFContext(); 
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); 
NSString* documentDirectory = [documentDirectories objectAtIndex:0]; 
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:aFilename]; 
[pdfData writeToFile:documentDirectoryFilename atomically:YES]; 
NSLog(@"documentDirectoryFileName: %@",documentDirectoryFilename); 
NSLog(@"saved in %@", documentDirectoryFilename); 
return documentDirectoryFilename; 
} 

ответ

1
UIWebView *webView = [[UIWebView alloc] initWithFrame:CGRectMake(0,0,screenSize.width,screenSize.height)]; 

Я не вижу где-нибудь, где вы на самом деле добавить UIWebView как subView.

[self.view addSubview:webView]; 

Также. вы должны добавить UIWebView в property вместо того, чтобы выделять/создавать его каждый раз, когда кто-то нажимает кнопку.

@property (strong, nonatomic) UIWebView *webView; 

Наконец:

Вы должны использовать WKWebView вместо UIWebView, как указано в Apple, документаций:

Начиная с прошивкой 8.0 и OS X 10,10, использовать WKWebView для добавления веб-контента к вашему приложению. Не используйте UIWebView или WebView.

EDIT:

Для людей, читающих это, кто на самом деле работает в проблеме, как вопрос на самом деле означает, проверить эти другие темы на тот же вопрос:

Load text+pdf file in uiwebview

iPhone : can we open pdf file using UIWebView?

how to load pdf file in UIWebview center

Display local pdf file in UIWebView in iphone

Loading Local PDF File Into WebView

+0

Вы предлагаете в комментариях выше, что этот вопрос является дубликатом? Если это так, я не понимаю не закрытого голосования или ответа. – danh

+0

@danh Я уже убрал дублирующий флаг, прежде чем публиковать этот ответ после прочтения кода. Я видел все ошибки, которые не имели никакого отношения к вопросу вообще, я потратил время, чтобы дать ему решение, но пусть комментарии все еще будут там для будущей справки о том, что кто-то столкнулся с этим вопросом с реальной проблемой на вопрос. –

+0

Я понимаю. Возможно, улучшить этот ответ с этими ссылками в качестве дополнительной ссылки? Затем дублирующийся комментарий может исчезнуть. – danh

0

Вы можете использовать рамки Быстрый взгляд компании Apple для предварительного просмотра PDF. Вы также получите вариант совместного использования, через который пользователь может разделить PDF по почте или сохранить его в iBooks для последующего использования.

Вы можете обратиться мой блог link для полного описания