新闻资讯 | 控件产品 | 技术文章 | 购物车 | 合作伙伴 | 问题解答 | 电子简报 | PDF论坛 | 资源下载
您现在的位置:技术文章>PDF开发篇 首页|PDF应用篇|PDF开发篇|解决方案

利用UIPrintPageRenderer将html转换成pdf

发布日期:2012-7-12 作者:a287971 出处:csdn

原文地址:http://blog.csdn.net/a287971/article/details/7734945

Boss让我调查一下把html转换成PDF的方法,google之,有很多,都是用webview加载,截屏,转换。
于是去向Boss报告,结果他说这样转换成的pdf是纯图片的,不能对文本进行操作了,达不到想要的效果。
无奈,继续google。结果,再一次领略了stackoverflow的强大,最终找到一个解决方案:http://stackoverflow.com/q/9528658/966127
实现过程,子类化UIPrintPageRenderer

复制代码
  1. @implementation KYPrintPageRenderer

  2. - (CGRect) paperRect
  3. {
  4. if (!_generatingPdf)
  5. return [super paperRect];

  6. return UIGraphicsGetPDFContextBounds();
  7. }


  8. - (CGRect) printableRect
  9. {
  10. if (!_generatingPdf)
  11. return [super printableRect];

  12. return CGRectInset( self.paperRect, 20, 20 );
  13. }


  14. - (NSData*) printToPDF
  15. {
  16. _generatingPdf = YES;

  17. NSMutableData *pdfData = [NSMutableData data];

  18. UIGraphicsBeginPDFContextToData( pdfData, CGRectMake(0, 0, 792, 612), nil ); // letter-size, landscape

  19. [self prepareForDrawingPages: NSMakeRange(0, 1)];

  20. CGRect bounds = UIGraphicsGetPDFContextBounds();

  21. for ( int i = 0 ; i < self.numberOfPages ; i++ )
  22. {
  23. UIGraphicsBeginPDFPage();

  24. [self drawPageAtIndex: i inRect: bounds];
  25. }

  26. UIGraphicsEndPDFContext();

  27. _generatingPdf = NO;

  28. return pdfData;
  29. }


还是用webView加载html,不过这次利用KYPrintPageRenderer(ppRenderer即其实例)来生成pdf:
复制代码

  1. UIViewPrintFormatter *viewFormatter = [htmlWebView viewPrintFormatter];
  2. [ppRenderer addPrintFormatter:viewFormatter startingAtPageAtIndex:0];
  3. NSData *pdfData = [ppRenderer printToPDF];
  4. NSString *pdfPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/test.pdf"];
  5. [pdfData writeToFile:pdfPath atomically:YES];

 

 

发布人:管理员 【报告错误】·【推荐好友】·【打印文章】
相关评论 本文现有 0 条评论 评分人数: 0 平均分: 0
相关评论
用户名: 密  码:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
注意:请不要在评论中含与内容无关的广告链接,违者封ID
文章搜索
推荐文章
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
热门点击
一个简单的PDF文件结构的分析(22340)
PHP的FDF文档支持(16147)
用C#制作PDF文件全攻略(13578)
Word转换PDF格式的C#或(12119)
pdfMaker文章:PDF加(11627)
ITextRenderer学习(11083)
PDF文件加密仿真(11036)
怎样用iReport制作Web(10384)
iText PDF概述(1)(9888)
循序渐进学习iTextShar(9833)
热门评论
从pdf文档中提取出文本(8)
PDFlib开发:创建超文本元(2)
客户端自动打印PDF(Prin(2)
浅谈PDFlib中文输出(一)(2)
xml的转换之pdf 2 ((1)
xml的转换之pdf 1 (x(1)
PDF知识讲座(1)(1)
PDFBox使用简介(1)
使用正则表达式计算PDF文档的(1)
word转pdf(1)