From cc4baa2fe9e49d69e06b25a1d2bf46c8fa3b0e39 Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Wed, 31 Aug 2022 17:50:28 +0200 Subject: [PATCH] [api-minor] Add basic support for the `SetOCGState` action (issue 15372) Note that this patch implements the `SetOCGState`-handling in `PDFLinkService`, rather than as a new method in `OptionalContentConfig`[1], since this action is nothing but a series of `setVisibility`-calls and that it seems quite uncommon in real-world PDF documents. The new functionality also required some tweaks in the `PDFLayerViewer`, to ensure that the `layersView` in the sidebar is updated correctly when the optional-content visibility changes from "outside" of `PDFLayerViewer`. --- [1] We can obviously move this code into `OptionalContentConfig` instead, if deemed necessary, but for an initial implementation I figured that doing it this way might be acceptable. --- src/core/catalog.js | 33 +++++++++++++++++ src/display/annotation_layer.js | 17 +++++++++ src/display/optional_content_config.js | 35 +++++++++--------- test/pdfs/.gitignore | 1 + test/pdfs/issue15372.pdf | Bin 0 -> 109219 bytes test/unit/api_spec.js | 28 +++++++++++++++ web/interfaces.js | 5 +++ web/pdf_layer_viewer.js | 40 ++++++++++++++------- web/pdf_link_service.js | 47 +++++++++++++++++++++++++ web/pdf_outline_viewer.js | 10 +++++- 10 files changed, 185 insertions(+), 31 deletions(-) create mode 100644 test/pdfs/issue15372.pdf diff --git a/src/core/catalog.js b/src/core/catalog.js index 3a0b3bb26..928f564ac 100644 --- a/src/core/catalog.js +++ b/src/core/catalog.js @@ -329,6 +329,7 @@ class Catalog { url: data.url, unsafeUrl: data.unsafeUrl, newWindow: data.newWindow, + setOCGState: data.setOCGState, title: stringToPDFString(title), color: rgbColor, count: Number.isInteger(count) ? count : undefined, @@ -1533,6 +1534,38 @@ class Catalog { } break; + case "SetOCGState": + const state = action.get("State"); + const preserveRB = action.get("PreserveRB"); + + if (!Array.isArray(state) || state.length === 0) { + break; + } + const stateArr = []; + + for (const elem of state) { + if (elem instanceof Name) { + switch (elem.name) { + case "ON": + case "OFF": + case "Toggle": + stateArr.push(elem.name); + break; + } + } else if (elem instanceof Ref) { + stateArr.push(elem.toString()); + } + } + + if (stateArr.length !== state.length) { + break; // Some of the original entries are not valid. + } + resultObj.setOCGState = { + state: stateArr, + preserveRB: typeof preserveRB === "boolean" ? preserveRB : true, + }; + break; + case "JavaScript": const jsAction = action.get("JS"); let js; diff --git a/src/display/annotation_layer.js b/src/display/annotation_layer.js index bf3b3e793..b7c710810 100644 --- a/src/display/annotation_layer.js +++ b/src/display/annotation_layer.js @@ -597,6 +597,9 @@ class LinkAnnotationElement extends AnnotationElement { } else if (data.action) { this._bindNamedAction(link, data.action); isBound = true; + } else if (data.setOCGState) { + this.#bindSetOCGState(link, data.setOCGState); + isBound = true; } else if (data.dest) { this._bindLink(link, data.dest); isBound = true; @@ -678,6 +681,20 @@ class LinkAnnotationElement extends AnnotationElement { link.className = "internalLink"; } + /** + * Bind SetOCGState actions to the link element. + * @param {Object} link + * @param {Object} action + */ + #bindSetOCGState(link, action) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.linkService.executeSetOCGState(action); + return false; + }; + link.className = "internalLink"; + } + /** * Bind JS actions to the link element. * diff --git a/src/display/optional_content_config.js b/src/display/optional_content_config.js index baa4aeb5c..d96c70024 100644 --- a/src/display/optional_content_config.js +++ b/src/display/optional_content_config.js @@ -14,6 +14,7 @@ */ import { objectFromMap, unreachable, warn } from "../shared/util.js"; +import { MurmurHash3_64 } from "../shared/murmurhash3.js"; const INTERNAL = Symbol("INTERNAL"); @@ -44,11 +45,11 @@ class OptionalContentGroup { } class OptionalContentConfig { - #cachedHasInitialVisibility = true; + #cachedGetHash = null; #groups = new Map(); - #initialVisibility = null; + #initialHash = null; #order = null; @@ -84,10 +85,7 @@ class OptionalContentConfig { } // The following code must always run *last* in the constructor. - this.#initialVisibility = new Map(); - for (const [id, group] of this.#groups) { - this.#initialVisibility.set(id, group.visible); - } + this.#initialHash = this.getHash(); } #evaluateVisibilityExpression(array) { @@ -206,20 +204,11 @@ class OptionalContentConfig { } this.#groups.get(id)._setVisible(INTERNAL, !!visible); - this.#cachedHasInitialVisibility = null; + this.#cachedGetHash = null; } get hasInitialVisibility() { - if (this.#cachedHasInitialVisibility !== null) { - return this.#cachedHasInitialVisibility; - } - for (const [id, group] of this.#groups) { - const visible = this.#initialVisibility.get(id); - if (group.visible !== visible) { - return (this.#cachedHasInitialVisibility = false); - } - } - return (this.#cachedHasInitialVisibility = true); + return this.getHash() === this.#initialHash; } getOrder() { @@ -239,6 +228,18 @@ class OptionalContentConfig { getGroup(id) { return this.#groups.get(id) || null; } + + getHash() { + if (this.#cachedGetHash !== null) { + return this.#cachedGetHash; + } + const hash = new MurmurHash3_64(); + + for (const [id, group] of this.#groups) { + hash.update(`${id}:${group.visible}`); + } + return (this.#cachedGetHash = hash.hexdigest()); + } } export { OptionalContentConfig }; diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index e17ce2b67..119701c04 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -51,6 +51,7 @@ !issue7847_radial.pdf !issue14953.pdf !issue15367.pdf +!issue15372.pdf !issue7446.pdf !issue7492.pdf !issue7544.pdf diff --git a/test/pdfs/issue15372.pdf b/test/pdfs/issue15372.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dbebb01b54abd71e4d24a276ac7df28b80695dba GIT binary patch literal 109219 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 Nh>cBIM}>swUjSNz#moQz literal 0 HcmV?d00001 diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index 0f7b38c4e..a5fba7314 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -1540,6 +1540,7 @@ describe("api", function () { url: null, unsafeUrl: undefined, newWindow: undefined, + setOCGState: undefined, title: "Händel -- Halle🎆lujah", color: new Uint8ClampedArray([0, 0, 0]), count: undefined, @@ -1565,6 +1566,7 @@ describe("api", function () { url: null, unsafeUrl: undefined, newWindow: undefined, + setOCGState: undefined, title: "Previous Page", color: new Uint8ClampedArray([0, 0, 0]), count: undefined, @@ -1576,6 +1578,32 @@ describe("api", function () { await loadingTask.destroy(); }); + it("gets outline, with SetOCGState-actions (issue 15372)", async function () { + const loadingTask = getDocument(buildGetDocumentParams("issue15372.pdf")); + const pdfDoc = await loadingTask.promise; + const outline = await pdfDoc.getOutline(); + + expect(Array.isArray(outline)).toEqual(true); + expect(outline.length).toEqual(1); + + expect(outline[0]).toEqual({ + action: null, + dest: null, + url: null, + unsafeUrl: undefined, + newWindow: undefined, + setOCGState: { state: ["OFF", "ON", "50R"], preserveRB: false }, + title: "Display Layer", + 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/interfaces.js b/web/interfaces.js index 8131a6cfc..7cce362fc 100644 --- a/web/interfaces.js +++ b/web/interfaces.js @@ -110,6 +110,11 @@ class IPDFLinkService { */ executeNamedAction(action) {} + /** + * @param {Object} action + */ + executeSetOCGState(action) {} + /** * @param {number} pageNum - page number. * @param {Object} pageRef - reference to the page. diff --git a/web/pdf_layer_viewer.js b/web/pdf_layer_viewer.js index d068224c6..b19bcf3e1 100644 --- a/web/pdf_layer_viewer.js +++ b/web/pdf_layer_viewer.js @@ -34,13 +34,19 @@ class PDFLayerViewer extends BaseTreeViewer { super(options); this.l10n = options.l10n; - this.eventBus._on("resetlayers", this._resetLayers.bind(this)); + this.eventBus._on("optionalcontentconfigchanged", evt => { + this.#updateLayers(evt.promise); + }); + this.eventBus._on("resetlayers", () => { + this.#updateLayers(); + }); this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); } reset() { super.reset(); this._optionalContentConfig = null; + this._optionalContentHash = null; } /** @@ -59,6 +65,7 @@ class PDFLayerViewer extends BaseTreeViewer { _bindLink(element, { groupId, input }) { const setVisibility = () => { this._optionalContentConfig.setVisibility(groupId, input.checked); + this._optionalContentHash = this._optionalContentConfig.getHash(); this.eventBus.dispatch("optionalcontentconfig", { source: this, @@ -123,6 +130,7 @@ class PDFLayerViewer extends BaseTreeViewer { this._dispatchEvent(/* layersCount = */ 0); return; } + this._optionalContentHash = optionalContentConfig.getHash(); const fragment = document.createDocumentFragment(), queue = [{ parent: fragment, groups }]; @@ -170,23 +178,29 @@ class PDFLayerViewer extends BaseTreeViewer { this._finishRendering(fragment, layersCount, hasAnyNesting); } - /** - * @private - */ - async _resetLayers() { + async #updateLayers(promise = null) { if (!this._optionalContentConfig) { return; } - // Fetch the default optional content configuration... - const optionalContentConfig = - await this._pdfDocument.getOptionalContentConfig(); + const pdfDocument = this._pdfDocument; + const optionalContentConfig = await (promise || + pdfDocument.getOptionalContentConfig()); - this.eventBus.dispatch("optionalcontentconfig", { - source: this, - promise: Promise.resolve(optionalContentConfig), - }); + if (pdfDocument !== this._pdfDocument) { + return; // The document was closed while the optional content resolved. + } + if (promise) { + if (optionalContentConfig.getHash() === this._optionalContentHash) { + return; // The optional content didn't change, hence no need to reset the UI. + } + } else { + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig), + }); + } - // ... and reset the sidebarView to the default state. + // Reset the sidebarView to the new state. this.render({ optionalContentConfig, pdfDocument: this._pdfDocument, diff --git a/web/pdf_link_service.js b/web/pdf_link_service.js index 4795ce0e4..52cba0ec2 100644 --- a/web/pdf_link_service.js +++ b/web/pdf_link_service.js @@ -493,6 +493,48 @@ class PDFLinkService { }); } + /** + * @param {Object} action + */ + async executeSetOCGState(action) { + const pdfDocument = this.pdfDocument; + const optionalContentConfig = await this.pdfViewer + .optionalContentConfigPromise; + + if (pdfDocument !== this.pdfDocument) { + return; // The document was closed while the optional content resolved. + } + let operator; + + for (const elem of action.state) { + switch (elem) { + case "ON": + case "OFF": + case "Toggle": + operator = elem; + continue; + } + switch (operator) { + case "ON": + optionalContentConfig.setVisibility(elem, true); + break; + case "OFF": + optionalContentConfig.setVisibility(elem, false); + break; + case "Toggle": + const group = optionalContentConfig.getGroup(elem); + if (group) { + optionalContentConfig.setVisibility(elem, !group.visible); + } + break; + } + } + + this.pdfViewer.optionalContentConfigPromise = Promise.resolve( + optionalContentConfig + ); + } + /** * @param {number} pageNum - page number. * @param {Object} pageRef - reference to the page. @@ -676,6 +718,11 @@ class SimpleLinkService { */ executeNamedAction(action) {} + /** + * @param {Object} action + */ + executeSetOCGState(action) {} + /** * @param {number} pageNum - page number. * @param {Object} pageRef - reference to the page. diff --git a/web/pdf_outline_viewer.js b/web/pdf_outline_viewer.js index 46d20937d..9bcb8179a 100644 --- a/web/pdf_outline_viewer.js +++ b/web/pdf_outline_viewer.js @@ -109,7 +109,7 @@ class PDFOutlineViewer extends BaseTreeViewer { /** * @private */ - _bindLink(element, { url, newWindow, action, dest }) { + _bindLink(element, { url, newWindow, action, dest, setOCGState }) { const { linkService } = this; if (url) { @@ -124,6 +124,14 @@ class PDFOutlineViewer extends BaseTreeViewer { }; return; } + if (setOCGState) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeSetOCGState(setOCGState); + return false; + }; + return; + } element.href = linkService.getDestinationHash(dest); element.onclick = evt => {