ios - 编码 iOS PDF 阅读器

标签 ios pdf

<分区>

我见过两种方法,一种是通过 UIWebView,另一种是使用 Quartz 框架来绘制 pdf 页面。我听说过使用 UIWebView 时会出现迟缓问题,而且它不如使用后一种方法灵活。

作为一名 iOS 程序员新手, 1) 我应该首先学习哪些主题(在继续学习 Quartz PDF 支持之前应该学习哪些框架/控件/库)?

2) iOS5/Xcode 的最新测试版有什么新东西与此相关吗?

任何可用的建议和/或示例都会很有帮助。

最佳答案

虽然 Apple 在他们的 Keynote 中表示“更好的 PDF 支持”,但 iOS4 和新版本之间没有明显的区别。可能是他们在内部改进了 PDF 解析,但这纯粹是我的猜测。

将 UIWebView 用于 pdf 并不是那么好。为此,Apple 在 iOS4 中引入了 QuickLook,与 webview 相比,它更快、更清晰。

如果您想获得更快的速度、更多的功能,您必须深入研究 Quartz CGPDF* 功能,而正确快速地实现这些功能是真正的 PITA。特别是因为有很多你甚至不知道的东西,例如PDF 可以包含旋转信息、裁剪/媒体框等。为了快速滚动,您还需要某种 UIScrollView 来快速重用其内部 View 。

并且要非常小心 CATiledLayer(你需要允许快速缩放)——因为它是多线程工作的,当你没有正确结束渲染时,它真的很喜欢撞到你的脸上。 (必须重要的是将它的委托(delegate)归零,甚至可能将它的内容归零。但是将内容归零会等待线程并且可能会阻塞主视图。)

如果您还想自己动手,Apple 的 Zooming PDF Viewer Example是一个开始。虽然它不处理旋转或 Crop/Media Box 具有负值的情况 - 而且也没有页面滚动。

关于ios - 编码 iOS PDF 阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6955179/

相关文章:

javascript - 如何编写 javascript 来重新排序 pdf 文档的页面?

ios - 每当我启动我的 React native 应用程序时,都会出现 RAM、JSC、 View 、UI 和 JS 使用表。如何删除此表?

pdf - 如何更改 pdf 中不同大小图像的 dpi 以实现每个页面的通用 "print size"?

pdf - 如何通过命令行比较两个pdf文件

java - iText setRotateContents(false) 横向 PDF 的奇怪行为?

C# PDF 控件和库

ios - 使用 iPhone 5.0 模拟器的 UI 自动化调试消息

ios - 尝试使用 Watch OS 2 发送图像时出现 WCErrorDomain 7013

iPhone - UITextView 在编辑时改变位置

iOS CMStepCounter & CMMotionActivityManager