0
我正在用一段簡單的代碼掙扎,我已經花了很多時間尋找這個,檢查論壇並嘗試了不同的東西。我幾乎在那裏,但不完全。基本上我需要將UITableView的內容轉換爲PDF。Convertir UITableView to PDF
下面的代碼似乎正常工作,除非用戶已將劃過表格內容的末尾,否則該部分將不會呈現。我以編程方式滾動了UITableView,但似乎並沒有這樣做。我越來越多地進入Quartz2D進一步瞭解這個東西,但客戶需要這個固定昨日:-)
-(void) createPDFfromUITable:(UIView*)aView saveToDocumentsWithFileName:(NSString*)aFilename
{
CGRect priorBounds = self.tableView.bounds;
CGSize fittedSize = [self.tableView sizeThatFits:CGSizeMake(priorBounds.size.width,3000)];
self.tableView.bounds = CGRectMake(0, 0, fittedSize.width,1800);
CGRect pdfPageBounds = CGRectMake(0, 0,self.view.bounds.size.width,792);
NSMutableData *pdfData = [[NSMutableData alloc] init];
UIGraphicsBeginPDFContextToData(pdfData, pdfPageBounds, nil);
CGFloat pageOriginY=0;
for(int i=0;i<2;i++)//for (CGFloat pageOriginY = 0; pageOriginY < fittedSize.height; pageOriginY += pdfPageBounds.size.height)
{
UIGraphicsBeginPDFPageWithInfo(pdfPageBounds, nil);
CGContextSaveGState(UIGraphicsGetCurrentContext());
{
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0, -pageOriginY);
[self.tableView.layer renderInContext:UIGraphicsGetCurrentContext()];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:([_resultados count]-1)] atScrollPosition:UITableViewScrollPositionTop animated:NO];
CGContextTranslateCTM(UIGraphicsGetCurrentContext(), 0, -pageOriginY);
} CGContextRestoreGState(UIGraphicsGetCurrentContext());
pageOriginY += pdfPageBounds.size.height;
}
UIGraphicsEndPDFContext();
self.tableView.bounds = priorBounds; // Reset the tableView
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [paths objectAtIndex:0];
NSString *filePathPDF = [documentsPath stringByAppendingPathComponent:aFilename];
[pdfData writeToFile:filePathPDF atomically:YES];
[self showEmail:filePathPDF];
}
如果您有任何建議固定我現在使用的,你碰巧有碼整個片段完成整個事情,這將非常感激。