来自uiwebview的高分辨率截图/或pdf
Posted
技术标签:
【中文标题】来自uiwebview的高分辨率截图/或pdf【英文标题】:high resolution screenshot / or pdf from uiwebview 【发布时间】:2010-09-26 15:15:20 【问题描述】:我想保存屏幕截图或从 UIWebView 文本内容生成 pdf。我知道如何制作如下所述的屏幕截图:
http://developer.apple.com/library/ios/#qa/qa2010/qa1703.html
问题是我想要 300dpi 的屏幕截图。在 UIWebView 中生成内容是固定要求。
我考虑过生成放大 UIWebView 的触摸,以高缩放比例制作几张屏幕截图并将它们拼接在一起。
有人有更优雅的解决方案吗?
谢谢b00tsy
【问题讨论】:
上面的链接失效了——你能提供一个实际的吗? 【参考方案1】:问题是我想要 300dpi 的屏幕截图。在 UIWebView 中生成内容是固定要求。
我不确定这是否容易做到。
UIWebView 使用 WebKit。它似乎在背景中渲染到图块,并且似乎进行了 一些 预渲染,但如果您快速滚动,您有时会看到未尽快渲染的图块。没有简单的方法可以知道 WebKit 何时完成页面渲染。
最不难看的方法可能是生成大于全屏的 UIWebView 并渲染其层。设置scalesPageToFit = YES
可能会有所帮助。
还请注意,UIWebView 在渲染时会考虑屏幕分辨率(即它在 iPhone 4 上进行高分辨率渲染)。这意味着您将在 iPhone 4/iPod Touch 4g 上获得更好的效果。这也意味着您可能能够“欺骗” UIWebView 使其认为屏幕比实际分辨率更高(您可能在 OS 4.0+ 上设置 webView.layer.contentsScale 成功)。
(而 FWIW,“300 dpi”是一个模糊的要求——“视网膜显示”超过 300 ppi。)
【讨论】:
您好,谢谢您的回复。我正在寻找一种可以在预视网膜显示设备和 iPad 上渲染高分辨率图像的解决方案。 >最不难看的方法可能是生成大于全屏的 UIWebView 并渲染其层。设置 scalesPageToFit = YES 可能会有所帮助。这是否意味着,一个 webview 可能比显示器上的区域大,当我渲染 webview 层时,我会得到整个 webview 的屏幕截图,显示器不显示这些区域? 嗨,tc.,contentsScale 不是选项,因为它将每个像素扩展为 contentsScale 中定义的数字。第一个建议效果很好,但我给自己带来了更多麻烦,解释如下:***.com/questions/4027656/…。你有什么线索吗?以上是关于来自uiwebview的高分辨率截图/或pdf的主要内容,如果未能解决你的问题,请参考以下文章
iPhone iOS 如何以不同的分辨率或比例渲染屏幕截图?
Mapbox GL JS:将地图导出为 PNG 或 PDF?