【问题标题】:Convert any document's pages to images将任何文档的页面转换为图像
【发布时间】:2012-03-04 14:47:10
【问题描述】:

将 PDF 页面转换为图像可以通过在位图上下文 (CGContextDrawPDFPage) 中渲染每个 pdf 页面来实现。

我们可以对其他文档类型(iWork、MS Office 等)做同样的事情吗?

我们可以使用 UIDocumentInteractionController 或 QuickLook 框架来显示所有这些文档的预览。但两者都不能自定义,也不能让我访问各个页面。

UIDocument 也是如此。它可以为我提供 NSData 或 NSFileWrapper 的全部内容,但我不确定如何逐页呈现它(比如在位图上下文中)。

有没有办法将其他文档页面转换成图片?

更新:

到目前为止,这方面没有进展。 UIWebView、UIDocumentInterationController 和 QLPreview 是我能找到的唯一东西,甚至可以查看 office/iWork 文档,更不用说将它们转换为图像了。

是否有人对自定义文档交互控制器或快速预览控制器以逐页呈现文档有任何经验/想法?

【问题讨论】:

  • 我也想实现这个,但是除了uiwebview之外没有找到解决方案

标签: iphone ios document


【解决方案1】:

我认为您可以在 UIWebview 中打开文档并截取视图。

【讨论】:

  • 如何将网页视图滚动到每个页面以拍摄快照?加上网页视图添加了一个花哨的背景,它显示在上方和下方或侧面(取决于您的文档与 webview 框架的纵横比)我不希望在我的页面图像中出现。我只想要页面..
  • 是的。你有这些困难。 :(您必须以某种方式找到帧才能获取快照。
【解决方案2】:

我们可以对其他文档类型(iWork、MS Office 等)做同样的事情吗?

如果您知道如何为相关文档类型呈现内容,则可以。 QA1630 包含一些提示,包括您可以在 UIWebView 中显示的文档类型列表,尽管尚不清楚以这种方式将此类文档分成页面是否容易。

UIDocument 也是如此。它可以给我全部内容 NSData 或 NSFileWrapper 但我不知道如何渲染它的页面 页面(例如在位图上下文中)。

UIDocument 是一个抽象类——它对特定文档类型一无所知。您必须继承 UIDocument 以提供数据格式的详细信息。因此,您将能够显示自己的文档类型,但不能显示来自其他应用程序的文档,除非您知道这些文档如何存储它们的数据。

【讨论】:

  • @celeb:我的问题不是渲染。您提到的链接仅讨论使用 Web 视图呈现这些文件格式。我已经可以通过快速预览来做得更好(我怀疑它也使用了网络视图)
猜你喜欢
  • 2018-10-17
  • 2021-08-15
  • 2010-10-25
  • 2019-08-02
  • 2013-10-16
  • 1970-01-01
  • 1970-01-01
  • 2012-07-01
  • 2012-02-20
相关资源
最近更新 更多