阅读书签
福昕 PDF SDK iOS 版通过 Core SDK 提供了阅读书签(Reading Bookmark)的创建、读取、编辑和删除能力。阅读书签不同于 PDF 大纲(Outline),它是一种应用层面的书签信息,存储在文档 Catalog 的元数据(XML)中,可用于标记用户感兴趣的页面并快速跳转。
UI Extensions 内置阅读书签面板
如果您使用的是完整阅读器(UI Extensions),阅读书签功能已内置在侧边面板中,用户可直接通过面板添加、查看和跳转阅读书签,无需额外编码。
核心类
| 类 | 说明 |
|---|---|
FSReadingBookmark | 阅读书签对象,包含标题、页码和时间戳 |
阅读书签通过 FSPDFDoc 的 getReadingBookmarkCount、getReadingBookmark:、insertReadingBookmark:title:pageIndex: 和 removeReadingBookmark: 方法进行管理。
示例:添加、遍历和删除阅读书签
objc
#import <FoxitRDK/FSPDFObjC.h>
FSPDFDoc *doc = [[FSPDFDoc alloc] initWithPath:@"path/to/Sample.pdf"];
[doc load:nil];
// 在末尾插入一个阅读书签
int count = [doc getReadingBookmarkCount];
FSReadingBookmark *newBookmark = [doc insertReadingBookmark:count
title:@"重要内容"
pageIndex:5];
// 设置创建时间
FSDateTime *now = [[FSDateTime alloc] init];
[newBookmark setDateTime:now is_creation_date:YES];
// 遍历所有阅读书签
count = [doc getReadingBookmarkCount];
for (int i = 0; i < count; i++) {
FSReadingBookmark *bookmark = [doc getReadingBookmark:i];
if ([bookmark isEmpty]) continue;
NSString *title = [bookmark getTitle];
int pageIndex = [bookmark getPageIndex];
NSLog(@"阅读书签: %@, 页码: %d", title, pageIndex);
}
// 删除第一个阅读书签
if (count > 0) {
FSReadingBookmark *first = [doc getReadingBookmark:0];
[doc removeReadingBookmark:first];
}
[doc saveAs:@"path/to/output.pdf" saveFlags:FSPDFDocSaveFlagNormal];
API 参考
FSReadingBookmark 的完整接口说明请参阅 API 手册。