//此方法只是把当前页面的内容生成PDF并保存在沙盒中。

//还需要做:把当前面没有显示的内容以分页的形式生成PDF,并把PDF读取并显示出来

//关于显示可以参考:念茜的博客 iOS开发笔记——PDF的显示和浏览 (http://blog.csdn.net/yiyaaixuexi/article/details/7645725

//Create empty PDF context on iPhone for later randering in it

-(CGContextRef) createPDFContext:(CGRect)inMediaBox path:(CFStringRef) path

{

CGContextRef myOutContext = NULL;

CFURLRef url;

url = CFURLCreateWithFileSystemPath (NULL, // 1

path,

kCFURLPOSIXPathStyle,

false);

if (url != NULL) {

myOutContext = CGPDFContextCreateWithURL (url,// 2

&inMediaBox,

NULL);

CFRelease(url);// 3

}

return myOutContext;// 4

}

/**

*  把当前页面绘制成PDF并保存

*/

- (void)drawPDF{

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

NSString *documentsDirectory = [paths objectAtIndex:0];

//PDF保存的路径

NSLog(@"documentsDirectory:%@",documentsDirectory);

NSString *writableDBPath = [documentsDirectory stringByAppendingPathComponent:@"tmp.pdf"];

CGContextRef pdfContext = [self createPDFContext:self.view.bounds path:(CFStringRef)writableDBPath];

NSLog(@"PDF Context created");

CGContextBeginPage (pdfContext,nil); // 6

//turn PDF upsidedown

CGAffineTransform transform = CGAffineTransformIdentity;

transform = CGAffineTransformMakeTranslation(0, self.view.bounds.size.height);

transform = CGAffineTransformScale(transform, 1.0, -1.0);

CGContextConcatCTM(pdfContext, transform);

//Draw view into PDF

[self.view.layer renderInContext:pdfContext];

CGContextEndPage (pdfContext);// 8

CGContextRelease (pdfContext);

}

最新文章

  1. 编译自己的Ubuntu内核
  2. C# webBrowser 开新窗口保持Session(转)
  3. iOS 分析一个支持GIF的UIImage扩展:SwiftGIF
  4. 移动端事件touchstart、touchmove、touchend
  5. 经典贪心算法uva11729
  6. 使用bootstrap和metroui设计的微网站或手机app界面
  7. UIWebView相关设置
  8. C++学习38 string字符串的增删改查
  9. mac media server
  10. JSF 2 outputText example
  11. (转载)github简单使用教程
  12. SEL数据类型,@selector的用法,以及调用SEL
  13. Java面试题之四
  14. Android:Drag and Drop的应用
  15. C++它 typedef void *HANDLE
  16. 新概念英语(1-13)A new dress
  17. 死磕 java集合之LinkedBlockingQueue源码分析
  18. 第五节:WebApi的三大过滤器
  19. css篇-less,scss 用calc问题
  20. lapis 项目添加prometheus 监控集成grafana

热门文章

  1. AES算法加密java实现
  2. crm使用soap删除下拉框
  3. Linux 简单的Shell输出
  4. centos7 64位系统jdbc连接oracle报错问题
  5. break return continue
  6. NS3网络仿真(9): 构建以太网帧
  7. asp.net MVC 中呈现指定区域下的分部视图
  8. how to create modals with Bootstrap
  9. bzoj1833: [ZJOI2010]count 数字计数&&USACO37 Cow Queueing 数数的梦(数位DP)
  10. mac系统下显示隐藏文件