来自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 如何以不同的分辨率或比例渲染屏幕截图?

怎么分辨PDF文件是扫描成的还是转换来的呢?

Mapbox GL JS:将地图导出为 PNG 或 PDF?

从服务器加载低分辨率版本的高分辨率图像(非javascript解决方案)

iPhone 5 分辨率和 MonoDevelop

css 媒体查询来处理新的高分辨率手机,同时忽略平板电脑