Я пытаюсь создать 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;
}
Вы предлагаете в комментариях выше, что этот вопрос является дубликатом? Если это так, я не понимаю не закрытого голосования или ответа. – danh
@danh Я уже убрал дублирующий флаг, прежде чем публиковать этот ответ после прочтения кода. Я видел все ошибки, которые не имели никакого отношения к вопросу вообще, я потратил время, чтобы дать ему решение, но пусть комментарии все еще будут там для будущей справки о том, что кто-то столкнулся с этим вопросом с реальной проблемой на вопрос. –
Я понимаю. Возможно, улучшить этот ответ с этими ссылками в качестве дополнительной ссылки? Затем дублирующийся комментарий может исчезнуть. – danh