From 1dcd2f0cd3d4d404c5b2747f9d15793599088b3c Mon Sep 17 00:00:00 2001 From: Jonas Jenwald Date: Fri, 24 Sep 2021 17:30:56 +0200 Subject: [PATCH] [api-minor] Add basic support for RTL text-content in PopupAnnotations (issue 14046) In order to implement this, we utilize the existing `bidi` function to infer the text-direction of /T and /Contents entries. While this may not be perfect in cases where one PopupAnnotation mixes LTR and RTL languages, it should work well enough in most cases. To avoid having to add *two new* properties in lots of annotations, supplementing the existing `title`/`contents`-properties, this patch instead re-factors the existing code such that the properties are replaced by Objects (containing `str` and `dir`). *Please note:* In order avoid breaking existing third-party implementations, `GENERIC`-builds of the PDF.js library will still provide the old `title`/`contents`-properties on annotations returned by `PDFPageProxy.getAnnotations`. --- src/core/annotation.js | 42 ++++++++++++---- src/core/bidi.js | 2 +- src/display/annotation_layer.js | 85 +++++++++++++++++--------------- src/display/api.js | 28 +++++++++++ test/pdfs/.gitignore | 1 + test/pdfs/issue14046.pdf | Bin 0 -> 77849 bytes test/test_manifest.json | 7 +++ test/unit/annotation_spec.js | 16 +++--- 8 files changed, 124 insertions(+), 57 deletions(-) create mode 100644 test/pdfs/issue14046.pdf diff --git a/src/core/annotation.js b/src/core/annotation.js index 3dff3f7c4..83520ca16 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -47,6 +47,7 @@ import { Name, RefSet, } from "./primitives.js"; +import { bidi } from "./bidi.js"; import { Catalog } from "./catalog.js"; import { ColorSpace } from "./colorspace.js"; import { FileSpec } from "./file_spec.js"; @@ -356,6 +357,7 @@ class Annotation { constructor(params) { const dict = params.dict; + this.setTitle(dict.get("T")); this.setContents(dict.get("Contents")); this.setModificationDate(dict.get("M")); this.setFlags(dict.get("F")); @@ -374,7 +376,7 @@ class Annotation { annotationFlags: this.flags, borderStyle: this.borderStyle, color: this.color, - contents: this.contents, + contentsObj: this._contents, hasAppearance: !!this.appearance, id: params.id, modificationDate: this.modificationDate, @@ -500,17 +502,35 @@ class Annotation { return this._isPrintable(this.flags); } + /** + * @private + */ + _parseStringHelper(data) { + const str = typeof data === "string" ? stringToPDFString(data) : ""; + const dir = str && bidi(str).dir === "rtl" ? "rtl" : "ltr"; + + return { str, dir }; + } + + /** + * Set the title. + * + * @param {string} title - The title of the annotation, used e.g. with + * PopupAnnotations. + */ + setTitle(title) { + this._title = this._parseStringHelper(title); + } + /** * Set the contents. * - * @public - * @memberof Annotation * @param {string} contents - Text to display for the annotation or, if the * type of annotation does not display text, a * description of the annotation's contents */ setContents(contents) { - this.contents = stringToPDFString(contents || ""); + this._contents = this._parseStringHelper(contents); } /** @@ -1014,10 +1034,11 @@ class MarkupAnnotation extends Annotation { // the group attributes from the primary annotation. const parent = dict.get("IRT"); - this.data.title = stringToPDFString(parent.get("T") || ""); + this.setTitle(parent.get("T")); + this.data.titleObj = this._title; this.setContents(parent.get("Contents")); - this.data.contents = this.contents; + this.data.contentsObj = this._contents; if (!parent.has("CreationDate")) { this.data.creationDate = null; @@ -1043,7 +1064,7 @@ class MarkupAnnotation extends Annotation { this.data.color = this.color; } } else { - this.data.title = stringToPDFString(dict.get("T") || ""); + this.data.titleObj = this._title; this.setCreationDate(dict.get("CreationDate")); this.data.creationDate = this.creationDate; @@ -2405,8 +2426,11 @@ class PopupAnnotation extends Annotation { } } - this.data.title = stringToPDFString(parentItem.get("T") || ""); - this.data.contents = stringToPDFString(parentItem.get("Contents") || ""); + this.setTitle(parentItem.get("T")); + this.data.titleObj = this._title; + + this.setContents(parentItem.get("Contents")); + this.data.contentsObj = this._contents; } } diff --git a/src/core/bidi.js b/src/core/bidi.js index 32691c0c6..b0c6ed6d3 100644 --- a/src/core/bidi.js +++ b/src/core/bidi.js @@ -120,7 +120,7 @@ function createBidiText(str, isLTR, vertical = false) { const chars = []; const types = []; -function bidi(str, startLevel, vertical) { +function bidi(str, startLevel = -1, vertical = false) { let isLTR = true; const strLength = str.length; if (strLength === 0 || vertical) { diff --git a/src/display/annotation_layer.js b/src/display/annotation_layer.js index 33e9038ab..2cc05914a 100644 --- a/src/display/annotation_layer.js +++ b/src/display/annotation_layer.js @@ -320,9 +320,9 @@ class AnnotationElement { container, trigger, color: data.color, - title: data.title, + titleObj: data.titleObj, modificationDate: data.modificationDate, - contents: data.contents, + contentsObj: data.contentsObj, hideWrapper: true, }); const popup = popupElement.render(); @@ -562,8 +562,8 @@ class TextAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable }); } @@ -1392,7 +1392,9 @@ class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { class PopupAnnotationElement extends AnnotationElement { constructor(parameters) { - const isRenderable = !!(parameters.data.title || parameters.data.contents); + const isRenderable = !!( + parameters.data.titleObj?.str || parameters.data.contentsObj?.str + ); super(parameters, { isRenderable }); } @@ -1424,9 +1426,9 @@ class PopupAnnotationElement extends AnnotationElement { container: this.container, trigger: Array.from(parentElements), color: this.data.color, - title: this.data.title, + titleObj: this.data.titleObj, modificationDate: this.data.modificationDate, - contents: this.data.contents, + contentsObj: this.data.contentsObj, }); // Position the popup next to the parent annotation's container. @@ -1456,9 +1458,9 @@ class PopupElement { this.container = parameters.container; this.trigger = parameters.trigger; this.color = parameters.color; - this.title = parameters.title; + this.titleObj = parameters.titleObj; this.modificationDate = parameters.modificationDate; - this.contents = parameters.contents; + this.contentsObj = parameters.contentsObj; this.hideWrapper = parameters.hideWrapper || false; this.pinned = false; @@ -1490,7 +1492,8 @@ class PopupElement { } const title = document.createElement("h1"); - title.textContent = this.title; + title.dir = this.titleObj.dir; + title.textContent = this.titleObj.str; popup.appendChild(title); // The modification date is shown in the popup instead of the creation @@ -1508,7 +1511,7 @@ class PopupElement { popup.appendChild(modificationDate); } - const contents = this._formatContents(this.contents); + const contents = this._formatContents(this.contentsObj); popup.appendChild(contents); if (!Array.isArray(this.trigger)) { @@ -1531,13 +1534,14 @@ class PopupElement { * Format the contents of the popup by adding newlines where necessary. * * @private - * @param {string} contents + * @param {Object} contentsObj * @memberof PopupElement * @returns {HTMLParagraphElement} */ - _formatContents(contents) { + _formatContents({ str, dir }) { const p = document.createElement("p"); - const lines = contents.split(/(?:\r\n?|\n)/); + p.dir = dir; + const lines = str.split(/(?:\r\n?|\n)/); for (let i = 0, ii = lines.length; i < ii; ++i) { const line = lines[i]; p.appendChild(document.createTextNode(line)); @@ -1601,8 +1605,8 @@ class FreeTextAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); } @@ -1621,8 +1625,8 @@ class LineAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); } @@ -1665,8 +1669,8 @@ class SquareAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); } @@ -1712,8 +1716,8 @@ class CircleAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); } @@ -1759,8 +1763,8 @@ class PolylineAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); @@ -1824,8 +1828,8 @@ class CaretAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); } @@ -1844,8 +1848,8 @@ class InkAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); @@ -1903,8 +1907,8 @@ class HighlightAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, @@ -1931,8 +1935,8 @@ class UnderlineAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, @@ -1959,8 +1963,8 @@ class SquigglyAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, @@ -1987,8 +1991,8 @@ class StrikeOutAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, @@ -2015,8 +2019,8 @@ class StampAnnotationElement extends AnnotationElement { constructor(parameters) { const isRenderable = !!( parameters.data.hasPopup || - parameters.data.title || - parameters.data.contents + parameters.data.titleObj?.str || + parameters.data.contentsObj?.str ); super(parameters, { isRenderable, ignoreBorder: true }); } @@ -2055,7 +2059,10 @@ class FileAttachmentAnnotationElement extends AnnotationElement { trigger.style.width = this.container.style.width; trigger.addEventListener("dblclick", this._download.bind(this)); - if (!this.data.hasPopup && (this.data.title || this.data.contents)) { + if ( + !this.data.hasPopup && + (this.data.titleObj?.str || this.data.contentsObj?.str) + ) { this._createPopup(trigger, this.data); } diff --git a/src/display/api.js b/src/display/api.js index 46a5331f0..ebfd329f8 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -1305,6 +1305,34 @@ class PDFPageProxy { intentArgs.renderingIntent ); this._annotationPromises.set(intentArgs.cacheKey, promise); + + if (typeof PDFJSDev === "undefined" || PDFJSDev.test("GENERIC")) { + promise = promise.then(annotations => { + for (const annotation of annotations) { + if (annotation.titleObj !== undefined) { + Object.defineProperty(annotation, "title", { + get() { + deprecated( + "`title`-property on annotation, please use `titleObj` instead." + ); + return annotation.titleObj.str; + }, + }); + } + if (annotation.contentsObj !== undefined) { + Object.defineProperty(annotation, "contents", { + get() { + deprecated( + "`contents`-property on annotation, please use `contentsObj` instead." + ); + return annotation.contentsObj.str; + }, + }); + } + } + return annotations; + }); + } } return promise; } diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index a53250667..69639d573 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -15,6 +15,7 @@ !bug1727053.pdf !issue2391-1.pdf !issue2391-2.pdf +!issue14046.pdf !issue3214.pdf !issue4665.pdf !issue4684.pdf diff --git a/test/pdfs/issue14046.pdf b/test/pdfs/issue14046.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5d5595a87a0b6a8044dd162a38489e0dce2fad60 GIT binary patch literal 77849 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 literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index dffa446d2..c2ec9a923 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -5929,5 +5929,12 @@ "link": true, "forms": true, "type": "eq" + }, + { "id": "issue14046", + "file": "pdfs/issue14046.pdf", + "md5": "dbb5d4e284ca9cc3219e04af6ce64e13", + "rounds": 1, + "type": "eq", + "annotations": true } ] diff --git a/test/unit/annotation_spec.js b/test/unit/annotation_spec.js index 6434b19c6..3953426d0 100644 --- a/test/unit/annotation_spec.js +++ b/test/unit/annotation_spec.js @@ -312,14 +312,14 @@ describe("annotation", function () { const annotation = new Annotation({ dict, ref }); annotation.setContents("Foo bar baz"); - expect(annotation.contents).toEqual("Foo bar baz"); + expect(annotation._contents).toEqual({ str: "Foo bar baz", dir: "ltr" }); }); it("should not set and get invalid contents", function () { const annotation = new Annotation({ dict, ref }); annotation.setContents(undefined); - expect(annotation.contents).toEqual(""); + expect(annotation._contents).toEqual({ str: "", dir: "ltr" }); }); it("should set and get a valid modification date", function () { @@ -610,8 +610,8 @@ describe("annotation", function () { ); expect(data.inReplyTo).toEqual(annotationRef.toString()); expect(data.replyType).toEqual("Group"); - expect(data.title).toEqual("ParentTitle"); - expect(data.contents).toEqual("ParentText"); + expect(data.titleObj).toEqual({ str: "ParentTitle", dir: "ltr" }); + expect(data.contentsObj).toEqual({ str: "ParentText", dir: "ltr" }); expect(data.creationDate).toEqual("D:20180423"); expect(data.modificationDate).toEqual("D:20190423"); expect(data.color).toEqual(new Uint8ClampedArray([0, 0, 255])); @@ -665,8 +665,8 @@ describe("annotation", function () { ); expect(data.inReplyTo).toEqual(annotationRef.toString()); expect(data.replyType).toEqual("R"); - expect(data.title).toEqual("ReplyTitle"); - expect(data.contents).toEqual("ReplyText"); + expect(data.titleObj).toEqual({ str: "ReplyTitle", dir: "ltr" }); + expect(data.contentsObj).toEqual({ str: "ReplyText", dir: "ltr" }); expect(data.creationDate).toEqual("D:20180523"); expect(data.modificationDate).toEqual("D:20190523"); expect(data.color).toEqual(new Uint8ClampedArray([102, 102, 102])); @@ -3621,8 +3621,8 @@ describe("annotation", function () { pdfManagerMock, idFactoryMock ); - expect(data.title).toEqual("Correct Title"); - expect(data.contents).toEqual("Correct Text"); + expect(data.titleObj).toEqual({ str: "Correct Title", dir: "ltr" }); + expect(data.contentsObj).toEqual({ str: "Correct Text", dir: "ltr" }); expect(data.modificationDate).toEqual("D:20190423"); expect(data.color).toEqual(new Uint8ClampedArray([0, 0, 255])); }