So erhalten Sie eine Momentaufnahme von UITableView im PDF-Format
Ich habe einUITableView
Das ist mit einigen Daten gefüllt, aber da es Daten enthält, die mehr Zellen als den sichtbaren Bereich des Bildschirms enthalten, habe ich nur den Schnappschuss davon erhalten. Ich möchte wissen, ob ich auf andere Weise die gesamte Tabellenansicht erhalten kann snapshot in pdf..dies ist, was ich versucht habe, danke
- (IBAction)clickMe:(id)sender
{
UIView *viewToRender = self.myTableView;
CGPoint contentOffset = self.myTableView.contentOffset;
UIGraphicsBeginImageContext(viewToRender.bounds.size);
CGContextRef ctx = UIGraphicsGetCurrentContext();
// KEY: need to translate the context down to the current visible portion of the tablview
CGContextTranslateCTM(ctx, 0, -contentOffset.y);
[viewToRender.layer renderInContext:ctx];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIImageView *myImage=[[UIImageView alloc]initWithImage:image];
UIGraphicsEndImageContext();
[self createPDFfromUIViews:myImage saveToDocumentsWithFileName:@"PDF Name"];
}
- (void)createPDFfromUIViews:(UIView *)myImage saveToDocumentsWithFileName:(NSString *)string
{
NSMutableData *pdfData = [NSMutableData data];
UIGraphicsBeginPDFContextToData(pdfData, myImage.bounds, nil);
UIGraphicsBeginPDFPage();
CGContextRef pdfContext = UIGraphicsGetCurrentContext();
// draws rect to the view and thus this is captured by UIGraphicsBeginPDFContextToData
[myImage.layer renderInContext:pdfContext];
// remove PDF rendering context
UIGraphicsEndPDFContext();
NSArray* documentDirectories = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString* documentDirectory = [documentDirectories objectAtIndex:0];
NSString* documentDirectoryFilename = [documentDirectory stringByAppendingPathComponent:string];
NSLog(@"%@",documentDirectoryFilename);
[pdfData writeToFile:documentDirectoryFilename atomically:YES];
}