今天开发Evermark时要用到将UIWebView中显示的内容转为图片,方便转发到各个社交网络(Twitter,Facebook,Weibo),这样内容就不受长度限制,类似于长微博。 之前关于视图转图片我知道可以通过QuartzCore里截图的形式,但是截图只能截取当前屏幕所显示的区域(UIGraphicsGetCurrentContext()
),而UIWebView的内容可能比屏幕长得多,在网上搜了一下,没有找到更好的方法,所有只有将UIWebView分屏截取,然后将截取的图片拼接成一张图片。
|
|
将UIWebView从头,contentOffset = (0, 0)
,开始截取webView.bounds.size.height
高度的图片,然后将_webView可见区域下移继续截屏,这样将所有截取的图片按照顺序拼接,就能得到整个UIWebView显示内容的完整图片。(不知道有没有更好的方法)
本以为用同样的方法就能生成PDF文件
但是通过UIGraphics
生成的PDF其实就是图片,文字都没法选中,而且质量也不高,所以继续查找其他方法。发现UIPrintPageRenderer
可以实现渲染视图绘制的内容。
|
|
通过这种方式生成的PDF质量高,与浏览器“打印”功能显示出的内容一样
代码已上传github (https://github.com/tracy-e/UIWebViewToFile)
========全文完============