PDF.js中如何使用标注层?

How to use annotation layer in PDF.js?

一些 PDF.js 代码提到了“注释层”,例如此处的 AnnotationLayerBuilder:

https://github.com/mozilla/pdf.js/blob/95e102c07bc257c2120fd7fd9141762b2c813a1c/web/annotation_layer_builder.js#L118

还有 pdfDocument.annotationStoragepdfjsLib.AnnotationLayer,它们在我尝试过的所有文档中都是空的,即使在有文本注释的文档中也是如此。

我找不到关于注释层的任何示例或文档以及它应该如何使用,但它确实听起来很有趣:)

  1. 什么注释层?这是在谈论标准 PDF 注释,如 https://pspdfkit.com/blog/2018/what-are-annotations/ or https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/pdf_reference_1-7.pdf 第 8.4 节注释中所述?或者,它是 PDF.js 内部的东西吗?

  2. 如何列出 PDF.js 中 javascript 代码的现有注释,以及如何添加注释? (只是为了展示;当然不希望能够将其保存在 pdf 中)任何人都可以提供一个工作代码示例吗?

谢谢!

如您提供的链接中所述,注释是 PDF 文件格式的标准格式。它们对 PDF.js 来说并不是一个新概念。

如何获取注释取决于您的情况。我正在构建一个视图层来替换 PDF.js 团队构建的查看器。基本思路就是你:

  1. 通过 const doc = getDocument(url)
  2. 获取对 PDFDocumentProxy 对象的引用
  3. 通过 const page = await doc.getPage(num)
  4. 获取对 PDFPageProxy 对象的引用
  5. 通过await page.getAnnotations()
  6. 获取注释

如果您已经在使用他们构建的查看器,它似乎不会暴露在任何地方。