如何在 PDF.js 中使用注释层?

Ale*_*x I 5 javascript pdf firefox pdfjs

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

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

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

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

  1. 什么注释层?这是在谈论标准 PDF 注释吗,如https://pspdfkit.com/blog/2018/what-are-annotations/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 中)任何人都可以提供一个有效的代码示例吗?

谢谢!

Kev*_*eal 4

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

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

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

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