From 216b86a082c604719c34615f22911c2e93dcf87f Mon Sep 17 00:00:00 2001 From: Jonas Jenwald <jonas.jenwald@gmail.com> Date: Tue, 30 Aug 2022 18:40:27 +0200 Subject: [PATCH] [api-minor] Support Named-actions in the outline (issue 15367) Apparently this is implemented in e.g. Adobe Reader, and the specification does support it, however it cannot be commonly used in real-world PDF documents since it took over ten years for this feature to be requested. --- src/core/catalog.js | 3 ++- test/pdfs/.gitignore | 1 + test/pdfs/issue15367.pdf | Bin 0 -> 42112 bytes test/unit/api_spec.js | 26 ++++++++++++++++++++++++++ web/pdf_outline_viewer.js | 10 +++++++++- 5 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 test/pdfs/issue15367.pdf diff --git a/src/core/catalog.js b/src/core/catalog.js index 1a2513758..3a0b3bb26 100644 --- a/src/core/catalog.js +++ b/src/core/catalog.js @@ -302,7 +302,7 @@ class Catalog { throw new FormatError("Invalid outline item encountered."); } - const data = { url: null, dest: null }; + const data = { url: null, dest: null, action: null }; Catalog.parseDestDictionary({ destDict: outlineDict, resultObj: data, @@ -324,6 +324,7 @@ class Catalog { } const outlineItem = { + action: data.action, dest: data.dest, url: data.url, unsafeUrl: data.unsafeUrl, diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index b3f167b00..e17ce2b67 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -50,6 +50,7 @@ !issue7439.pdf !issue7847_radial.pdf !issue14953.pdf +!issue15367.pdf !issue7446.pdf !issue7492.pdf !issue7544.pdf diff --git a/test/pdfs/issue15367.pdf b/test/pdfs/issue15367.pdf new file mode 100644 index 0000000000000000000000000000000000000000..1ee10d22bf7399d2ba3b3df1fec7142ace204c23 GIT binary patch literal 42112 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 SABQf$p&TdhR_gadm;VJ7f#cf% literal 0 HcmV?d00001 diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index bdcfb05d1..0f7b38c4e 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -1535,6 +1535,7 @@ describe("api", function () { expect(outline.length).toEqual(6); expect(outline[4]).toEqual({ + action: null, dest: "Händel -- Halle🎆lujah", url: null, unsafeUrl: undefined, @@ -1550,6 +1551,31 @@ describe("api", function () { await loadingTask.destroy(); }); + it("gets outline, with named-actions (issue 15367)", async function () { + const loadingTask = getDocument(buildGetDocumentParams("issue15367.pdf")); + const pdfDoc = await loadingTask.promise; + const outline = await pdfDoc.getOutline(); + + expect(Array.isArray(outline)).toEqual(true); + expect(outline.length).toEqual(4); + + expect(outline[1]).toEqual({ + action: "PrevPage", + dest: null, + url: null, + unsafeUrl: undefined, + newWindow: undefined, + title: "Previous Page", + color: new Uint8ClampedArray([0, 0, 0]), + count: undefined, + bold: false, + italic: false, + items: [], + }); + + await loadingTask.destroy(); + }); + it("gets outline with non-displayable chars", async function () { const loadingTask = getDocument(buildGetDocumentParams("issue14267.pdf")); const pdfDoc = await loadingTask.promise; diff --git a/web/pdf_outline_viewer.js b/web/pdf_outline_viewer.js index de02e3a97..46d20937d 100644 --- a/web/pdf_outline_viewer.js +++ b/web/pdf_outline_viewer.js @@ -109,13 +109,21 @@ class PDFOutlineViewer extends BaseTreeViewer { /** * @private */ - _bindLink(element, { url, newWindow, dest }) { + _bindLink(element, { url, newWindow, action, dest }) { const { linkService } = this; if (url) { linkService.addLinkAttributes(element, url, newWindow); return; } + if (action) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeNamedAction(action); + return false; + }; + return; + } element.href = linkService.getDestinationHash(dest); element.onclick = evt => {