文档管理中心

添加、删除书签

PDF Kit支持添加和删除PDF文档书签。

添加书签时,可设置标题、颜色,是否粗体、斜体、跳转信息等。

接口说明

展开
接口名 描述
createBookmark(): Bookmark 创建PDF文档书签。
getRootBookmark(): Bookmark 获取PDF文档第一个根书签。
insertBookmark(bookmark: Bookmark, parent: Bookmark, position: number): boolean 插入PDF文档书签。
setBookmarkInfo(info: BookmarkInfo): void 设置书签信息。
removeBookmark(bookmark: Bookmark): boolean 移除PDF文档书签。
setDestInfo(info: DestInfo): void 设置书签的跳转信息。
getBookmarkInfo(): BookmarkInfo 获取书签信息。

示例代码

添加书签

  1. 调用loadDocument方法,加载PDF文档。

  2. 调用createBookmark方法,创建书签。

  3. 调用setDestInfo方法,设置书签的跳转信息。

  4. 调用getBookmarkInfo方法,获取书签信息。

  5. 调用setBookmarkInfo方法,设置书签内容及样式。

  6. 设置保存文档沙箱路径并保存。

删除书签

  1. 调用loadDocument方法,加载PDF文档。

  2. 调用getRootBookmark方法,获取文档的第一个根书签。

  3. 调用removeBookmark方法,删除书签。

  4. 设置保存文档沙箱路径并保存。

收起
自动换行
深色代码主题
复制
  1. import { pdfService } from '@kit.PDFKit';
  2. import { hilog } from '@kit.PerformanceAnalysisKit';
  3. // ...
  4. @Entry
  5. @Component
  6. struct BookmarkPage {
  7. private pdfDocument: pdfService.PdfDocument = new pdfService.PdfDocument();
  8. private context = this.getUIContext().getHostContext() as Context;
  9. build() {
  10. Column() {
  11. // ...
  12. Button('addBookmark').onClick(async () => {
  13. // 确保在工程目录src/main/resources/resfile里有input.pdf文档
  14. let filePath = this.context.resourceDir + '/input.pdf';
  15. this.pdfDocument.loadDocument(filePath);
  16. // 创建书签
  17. let mark1: pdfService.Bookmark = this.pdfDocument.createBookmark();
  18. let mark2: pdfService.Bookmark = this.pdfDocument.createBookmark();
  19. // 设置书签的跳转信息
  20. let destInfo: pdfService.DestInfo = mark1.getDestInfo();
  21. destInfo.fitMode = pdfService.FitMode.FIT_MODE_XYZ;
  22. destInfo.pageIndex = 1;
  23. destInfo.left = 20;
  24. destInfo.top = 30;
  25. destInfo.zoom = 1.5;
  26. mark1.setDestInfo(destInfo);
  27. // 设置书签内容及样式
  28. let bookInfo: pdfService.BookmarkInfo = mark1.getBookmarkInfo();
  29. bookInfo.title = '这里是跳到第一页的书签';
  30. bookInfo.titleColor = 12;
  31. bookInfo.isBold = true;
  32. bookInfo.isItalic = true;
  33. mark1.setBookmarkInfo(bookInfo);
  34. // 把创建的书签插入到PDF页面
  35. this.pdfDocument.insertBookmark(mark1, null, 1);
  36. this.pdfDocument.insertBookmark(mark2, mark1, 1);
  37. // 设置保存文档沙箱路径并保存
  38. let outPdfPath = this.context.filesDir + '/testAddBookmark.pdf';
  39. let result = this.pdfDocument.saveDocument(outPdfPath);
  40. hilog.info(0x0000, 'BookmarkPage', 'saveAddBookmark %{public}s!', result ? 'success' : 'fail');
  41. })
  42. // 删除书签
  43. Button('removeBookmark').onClick(async () => {
  44. // 确保沙箱目录有testAddBookmark.pdf文档
  45. this.pdfDocument.loadDocument(this.context.filesDir + '/testAddBookmark.pdf');
  46. let bookmarks: pdfService.Bookmark = this.pdfDocument.getRootBookmark();
  47. if (bookmarks.isRootBookmark()) {
  48. let hasRemoveBookmark: boolean = this.pdfDocument.removeBookmark(bookmarks);
  49. hilog.info(0x0000, 'BookmarkPage', 'removeBookmark %{public}s!', hasRemoveBookmark ? 'success' : 'fail');
  50. let outPdfPath = this.context.filesDir + '/testRemoveBookmark.pdf';
  51. let result = this.pdfDocument.saveDocument(outPdfPath);
  52. hilog.info(0x0000, 'BookmarkPage', 'saveRemoveBookmark %{public}s!', result ? 'success' : 'fail');
  53. }
  54. })
  55. // ...
  56. }
  57. }
  58. }
在 指南 中进行搜索
请输入您想要搜索的关键词