欢迎来到DIVCSS5查找CSS资料与学习DIV CSS布局技术!
  H5界面生成PDF需要的俩中形式:
 
  1:图片的形式的保存.
 
  主要是截取H5界面的所有内容,是图片形式的,然后生成PDF格式.
 
  2:截取H5界面字符串和图片
 
  保存的所有的字和图片,进行拼装,然后以不同样式进行保存PDF格式
 
  第一种方法很只是简单的操作就可以,但是满足不了需求,只能选择第二个.
 
  但是第2个截取保存数据和图片,自己写一套的话,工作量很大的.
 
  利用系统里面的UIWebView
 
  iOS开发人员都太熟悉不过了吧,哈哈,都是用这个方法
 
  [UIWebView loadHTMLString:@"" baseURL:@""];
 
  进行加载H5界面所有文字和图片.
 
  然后进行下面的方法进行保存数据到本地
 
  这个是UIWebVIew扩展类,自己写就行
 
  - (NSData *)converToPDF{
 
  UIViewPrintFormatter *fmt = [self viewPrintFormatter];
 
  UIPrintPageRenderer *render = [[UIPrintPageRenderer alloc] init];
 
  [render addPrintFormatter:fmt startingAtPageAtIndex:0];
 
  CGRect page;
 
  page.origin.x=0;
 
  page.origin.y=0;
 
  page.size.width=600;
 
  page.size.height=768;
 
  CGRect printable=CGRectInset( page, 50, 50 );
 
  [render setValue:[NSValue valueWithCGRect:page] forKey:@"paperRect"];
 
  [render setValue:[NSValue valueWithCGRect:printable] forKey:@"printableRect"];
 
  NSMutableData * pdfData = [NSMutableData data];
 
  UIGraphicsBeginPDFContextToData( pdfData, CGRectZero, nil );
 
  for (NSInteger i=0; i < [render numberOfPages]; i++)
 
  {
 
  UIGraphicsBeginPDFPage();
 
  CGRect bounds = UIGraphicsGetPDFContextBounds();
 
  [render drawPageAtIndex:i inRect:bounds];
 
  }
 
  UIGraphicsEndPDFContext();
 
  return pdfData;
 
  }
 
  //点击保存进行调用上面的方法
 
  - (void)savePDF
 
  {
 
  NSData *data = [_webView converToPDF]; 调用上面的方法
 
  NSString *path = [NSHomeDirectory() stringByAppendingPathComponent:[NSString stringWithFormat:@"Documents/testFile.pdf"]];
 
  BOOL result = [data writeToFile:path atomically:YES];
 
  [MBProgressHUD hideHUD];
 
  if (result) {
 
  "保存成功"
 
  }else{
 
  "保存失败";
 
  }
 
  从本地获取路径进行显示PDF
 
  NSURL *pdfURL = [NSURL fileURLWithPath:path];
 
  NSURLRequest *request = [NSURLRequest requestWithURL:pdfURL];
 
  [self.webView setScalesPageToFit:YES];
 
  [self.webView loadRequest:request];
 
  }
 
  接着从本地打开就ok了.

如需转载,请注明文章出处和来源网址:http://www.divcss5.com/html/h62391.shtml