feat: optimize reader caching and document formats
This commit is contained in:
@@ -4,6 +4,32 @@
|
||||
|
||||
主工程的下载、解密、缓存、链接、标注和持久化仍由现有 PDF Feature 管理;后续通过适配层逐步迁移,避免把业务问题和手势问题混在一起。
|
||||
|
||||
## PDF 数据来源
|
||||
|
||||
普通 PDF 可以由 SDK 使用 PDFKit 直接解析:
|
||||
|
||||
```swift
|
||||
let reader = try RDPDFReaderViewController(
|
||||
pdfURL: fileURL,
|
||||
bookIdentifier: stableBookID,
|
||||
password: standardPDFPassword,
|
||||
persistence: persistence,
|
||||
annotationPersistence: annotationStore
|
||||
)
|
||||
```
|
||||
|
||||
自定义加密 PDF 继续由宿主解密并提供页面图片,不需要把原始文件交给 SDK:
|
||||
|
||||
```swift
|
||||
let reader = RDPDFReaderViewController(
|
||||
pageProvider: encryptedImageProvider,
|
||||
persistence: persistence,
|
||||
annotationPersistence: annotationStore
|
||||
)
|
||||
```
|
||||
|
||||
两种入口最终都转换为 `RDPDFReaderPageProvider`,共用翻页、缩放、目录、书签、OCR、标注和画笔功能。内置 PDFKit 数据源按需渲染页面、限制最大图片尺寸并使用内存缓存;能够读取的原生 PDF 文字会直接用于选择和标注,图片扫描页则按配置回退到 OCR。
|
||||
|
||||
## 调试入口
|
||||
|
||||
在任意测试宿主中 push `RDPDFReaderDebugViewController()`:
|
||||
|
||||
Reference in New Issue
Block a user