objective-c - 像 iBook 一样在 iOS 中加载自动分页的 pdf

标签 objective-c ios pdf core-graphics cgpdfdocument

在 iBook 中,当您打开 PDF 时,您可以自动格式化和分页 pdf,例如如果在 iPhone 中,有 5 页,但是当您使用 iPad 查看时,它只包含 2 页。

当您更改文字大小时,页面也会自动更新。

如何使用 CGPDFDocumentRef 做到这一点?

最佳答案

我假设您是在谈论 iPad 上的 Apple iBooks?您确定您观察的是 PDF 而不是 ePub 文件的行为吗?

iBooks 的原生格式是 ePub 或 iBooks Author 创建的格式。

PDF 文件通常(在绝大多数情况下)以非重排方式使用。再现页面的准确视觉外观 - 明确无回流 - 正是发明 PDF 的原因。

您可以将一些结构添加到 PDF 文件中,使它们更类似于 HTML 和 ePub 等格式;这些构造可以用样式标记文本,逻辑上定义段落、列和表格等。通常,它们用于制作适合长期存档(根据 ISO PDF/A 标准)或可访问(例如适合视障人士使用屏幕阅读器软件阅读)的 PDF 文件。这样的 PDF 文件通常称为带标签的 PDF。

据我所知,iBooks 实际上不支持带标签的 PDF(也就是说,它不使用此类 PDF 文件中的信息来重排文件)。据我所知,您无法使用内置的 iOS 库创建必要的标签和结构。

如果您的目标应用是 iBooks,您可能最好考虑生成 ePub...

关于objective-c - 像 iBook 一样在 iOS 中加载自动分页的 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13608504/

相关文章:

ios - 黑色瓷砖出现在 UIWebview 的 pdf 缩放中

ios - 推送 View Controller 会使应用程序崩溃

iphone - 使用 Core Text 创建 PDF - 'unsupported ' Zapf' version 00020000' 错误消息的含义/修复是什么

ios - 使用 PDF 的 UIButton 或 UIImageView 的矢量插图

Java欧元符号转换为货币符号

objective-c - 如何获取 NSOutLineView 中的特定项目?

objective-c - iOS Objective C - 指向 viewDidLoad 上的接口(interface)控制的指针

ios - NSData 到 NSNumbers 的 NSArray?

objective-c - 如何替换 "Navigation-based application"中的RootViewController

objective-c - 核心图如何格式化图例,请参见图片