Ich versuche, das PDF zu erstellen und laden Sie dann das PDF in Webview für die Vorschau. Jetzt kann ich das PDF erfolgreich erstellen. Als nächstes möchte ich die PDF erstellen, indem ich die Taste drücke und dann in die Webansicht lade. Ich habe this link und this link referenziert. Obwohl die PDF-Datei erfolgreich erstellt wurde, kann die PDF-Datei nicht in der Webansicht geladen werden. Könnte jemand einen Vorschlag machen? Vielen Dank.ios - erstellen und laden pdf in webview
Der Code:
-(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;
}
Sie darüber in Kommentar darauf hindeutet Sind diese Frage ist ein Duplikat? Wenn ja, verstehe ich die nicht-enge Abstimmung oder die Antwort nicht. – danh
@danh Ich hatte die Duplikatflagge schon vor dem Absenden dieser Antwort eingezogen, nachdem ich den Code durchgelesen hatte. Ich sah alle Fehler, die überhaupt nichts mit der Frage zu tun hatten. Ich nahm mir die Zeit, um ihm die Lösung zu geben Dort für zukünftige Referenz, wenn jemand diese Frage mit dem eigentlichen Problem auf die Frage stieß. –
Ich verstehe. Vielleicht diese Antwort mit diesen Links als weitere Referenz verbessern? Dann kann der duplizierende Kommentar weggehen. – danh