From 7e02c772508183106897ef12ed7e0c2fff9b4000 Mon Sep 17 00:00:00 2001 From: Calixte Denizet Date: Sun, 1 Dec 2024 21:15:57 +0100 Subject: [PATCH] [Editor] Make ink annotation editable --- src/core/annotation.js | 31 +- src/display/annotation_layer.js | 97 +++++-- src/display/editor/drawers/inkdraw.js | 54 +++- src/display/editor/drawers/outline.js | 11 + src/display/editor/editor.js | 20 +- src/display/editor/ink.js | 69 ++++- src/display/editor/stamp.js | 10 +- test/integration/annotation_spec.mjs | 8 - test/integration/freetext_editor_spec.mjs | 24 +- test/integration/ink_editor_spec.mjs | 162 ++++++++++- test/integration/test_utils.mjs | 23 ++ test/pdfs/.gitignore | 2 + test/pdfs/inks.pdf | Bin 0 -> 108628 bytes test/pdfs/inks_basic.pdf | Bin 0 -> 7483 bytes test/test_manifest.json | 329 ++++++++++++++++++++++ 15 files changed, 753 insertions(+), 87 deletions(-) create mode 100644 test/pdfs/inks.pdf create mode 100644 test/pdfs/inks_basic.pdf diff --git a/src/core/annotation.js b/src/core/annotation.js index 0e3d816877a52..1c6877972f473 100644 --- a/src/core/annotation.js +++ b/src/core/annotation.js @@ -4382,7 +4382,7 @@ class InkAnnotation extends MarkupAnnotation { const { dict, xref } = params; this.data.annotationType = AnnotationType.INK; this.data.inkLists = []; - this.data.isEditable = !this.data.noHTML && this.data.it === "InkHighlight"; + this.data.isEditable = !this.data.noHTML; // We want to be able to add mouse listeners to the annotation. this.data.noHTML = false; this.data.opacity = dict.get("CA") || 1; @@ -4459,17 +4459,30 @@ class InkAnnotation extends MarkupAnnotation { } static createNewDict(annotation, xref, { apRef, ap }) { - const { color, opacity, paths, outlines, rect, rotation, thickness } = - annotation; - const ink = new Dict(xref); + const { + oldAnnotation, + color, + opacity, + paths, + outlines, + rect, + rotation, + thickness, + user, + } = annotation; + const ink = oldAnnotation || new Dict(xref); ink.set("Type", Name.get("Annot")); ink.set("Subtype", Name.get("Ink")); - ink.set("CreationDate", `D:${getModificationDate()}`); + ink.set(oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate()}`); ink.set("Rect", rect); ink.set("InkList", outlines?.points || paths.points); ink.set("F", 4); ink.set("Rotate", rotation); + if (user) { + ink.set("T", stringToAsciiOrUTF16BE(user)); + } + if (outlines) { // Free highlight. // There's nothing about this in the spec, but it's used when highlighting @@ -4524,12 +4537,15 @@ class InkAnnotation extends MarkupAnnotation { } for (const outline of paths.lines) { - for (let i = 0, ii = outline.length; i < ii; i += 6) { + appearanceBuffer.push( + `${numberToString(outline[4])} ${numberToString(outline[5])} m` + ); + for (let i = 6, ii = outline.length; i < ii; i += 6) { if (isNaN(outline[i])) { appearanceBuffer.push( `${numberToString(outline[i + 4])} ${numberToString( outline[i + 5] - )} m` + )} l` ); } else { const [c1x, c1y, c2x, c2y, x, y] = outline.slice(i, i + 6); @@ -5006,7 +5022,6 @@ class StampAnnotation extends MarkupAnnotation { oldAnnotation ? "M" : "CreationDate", `D:${getModificationDate()}` ); - stamp.set("CreationDate", `D:${getModificationDate()}`); stamp.set("Rect", rect); stamp.set("F", 4); stamp.set("Border", [0, 0, 0]); diff --git a/src/display/annotation_layer.js b/src/display/annotation_layer.js index fdfdf7e262cea..3198522d7733d 100644 --- a/src/display/annotation_layer.js +++ b/src/display/annotation_layer.js @@ -2792,6 +2792,8 @@ class CaretAnnotationElement extends AnnotationElement { } class InkAnnotationElement extends AnnotationElement { + #polylinesGroupElement = null; + #polylines = []; constructor(parameters) { @@ -2809,55 +2811,71 @@ class InkAnnotationElement extends AnnotationElement { : AnnotationEditorType.INK; } - render() { - this.container.classList.add(this.containerClassName); - - // Create an invisible polyline with the same points that acts as the - // trigger for the popup. - const { - data: { rect, rotation, inkLists, borderStyle, popupRef }, - } = this; - let { width, height } = getRectDims(rect); - let transform; - + #getTransform(rotation, rect) { // PDF coordinates are calculated from a bottom left origin, so // transform the polyline coordinates to a top left origin for the // SVG element. switch (rotation) { case 90: - transform = `rotate(90) translate(${-rect[0]},${rect[3] - height}) scale(1,-1)`; - [width, height] = [height, width]; - break; + return { + transform: `rotate(90) translate(${-rect[0]},${rect[1]}) scale(1,-1)`, + width: rect[3] - rect[1], + height: rect[2] - rect[0], + }; case 180: - transform = `rotate(180) translate(${-rect[0] - width},${rect[3] - height}) scale(1,-1)`; - break; + return { + transform: `rotate(180) translate(${-rect[2]},${rect[1]}) scale(1,-1)`, + width: rect[2] - rect[0], + height: rect[3] - rect[1], + }; case 270: - transform = `rotate(270) translate(${-rect[0] - width},${rect[3]}) scale(1,-1)`; - [width, height] = [height, width]; - break; + return { + transform: `rotate(270) translate(${-rect[2]},${rect[3]}) scale(1,-1)`, + width: rect[3] - rect[1], + height: rect[2] - rect[0], + }; default: - transform = `translate(${-rect[0]},${rect[3]}) scale(1,-1)`; - break; + return { + transform: `translate(${-rect[0]},${rect[3]}) scale(1,-1)`, + width: rect[2] - rect[0], + height: rect[3] - rect[1], + }; } + } + + render() { + this.container.classList.add(this.containerClassName); + + // Create an invisible polyline with the same points that acts as the + // trigger for the popup. + const { + data: { rect, rotation, inkLists, borderStyle, popupRef }, + } = this; + const { transform, width, height } = this.#getTransform(rotation, rect); const svg = this.svgFactory.create( width, height, /* skipDimensions = */ true ); - const basePolyline = this.svgFactory.createElement(this.svgElementName); + const g = (this.#polylinesGroupElement = + this.svgFactory.createElement("svg:g")); + svg.append(g); // Ensure that the 'stroke-width' is always non-zero, since otherwise it // won't be possible to open/close the popup (note e.g. issue 11122). - basePolyline.setAttribute("stroke-width", borderStyle.width || 1); - basePolyline.setAttribute("stroke", "transparent"); - basePolyline.setAttribute("fill", "transparent"); - basePolyline.setAttribute("transform", transform); + g.setAttribute("stroke-width", borderStyle.width || 1); + g.setAttribute("stroke-linecap", "round"); + g.setAttribute("stroke-linejoin", "round"); + g.setAttribute("stroke-miterlimit", 10); + g.setAttribute("stroke", "transparent"); + g.setAttribute("fill", "transparent"); + g.setAttribute("transform", transform); for (let i = 0, ii = inkLists.length; i < ii; i++) { - const polyline = i < ii - 1 ? basePolyline.cloneNode() : basePolyline; + const polyline = this.svgFactory.createElement(this.svgElementName); this.#polylines.push(polyline); polyline.setAttribute("points", inkLists[i].join(",")); - svg.append(polyline); + g.append(polyline); } if (!popupRef && this.hasPopupData) { @@ -2870,6 +2888,29 @@ class InkAnnotationElement extends AnnotationElement { return this.container; } + updateEdited(params) { + super.updateEdited(params); + const { thickness, points, rect } = params; + const g = this.#polylinesGroupElement; + if (thickness >= 0) { + g.setAttribute("stroke-width", thickness || 1); + } + if (points) { + for (let i = 0, ii = this.#polylines.length; i < ii; i++) { + this.#polylines[i].setAttribute("points", points[i].join(",")); + } + } + if (rect) { + const { transform, width, height } = this.#getTransform( + this.data.rotation, + rect + ); + const root = g.parentElement; + root.setAttribute("viewBox", `0 0 ${width} ${height}`); + g.setAttribute("transform", transform); + } + } + getElementsToTriggerPopup() { return this.#polylines; } diff --git a/src/display/editor/drawers/inkdraw.js b/src/display/editor/drawers/inkdraw.js index bcc7f2b574595..8e0314c7576c7 100644 --- a/src/display/editor/drawers/inkdraw.js +++ b/src/display/editor/drawers/inkdraw.js @@ -108,14 +108,7 @@ class InkDrawOutliner { } this.#last.set([x1, y1, x2, y2, x, y], 0); - this.#line.push( - (x1 + 5 * x2) / 6, - (y1 + 5 * y2) / 6, - (5 * x2 + x) / 6, - (5 * y2 + y) / 6, - (x2 + x) / 2, - (y2 + y) / 2 - ); + this.#line.push(...Outline.createBezierPoints(x1, y1, x2, y2, x, y)); return { path: { @@ -485,6 +478,51 @@ class InkDrawOutline extends Outline { break; } + if (!lines) { + lines = []; + for (const point of points) { + const len = point.length; + if (len === 2) { + lines.push( + new Float32Array([NaN, NaN, NaN, NaN, point[0], point[1]]) + ); + continue; + } + if (len === 4) { + lines.push( + new Float32Array([ + NaN, + NaN, + NaN, + NaN, + point[0], + point[1], + NaN, + NaN, + NaN, + NaN, + point[2], + point[3], + ]) + ); + continue; + } + const line = new Float32Array(3 * (len - 2)); + lines.push(line); + let [x1, y1, x2, y2] = point.subarray(0, 4); + line.set([NaN, NaN, NaN, NaN, x1, y1], 0); + for (let i = 4; i < len; i += 2) { + const x = point[i]; + const y = point[i + 1]; + line.set( + Outline.createBezierPoints(x1, y1, x2, y2, x, y), + (i - 2) * 3 + ); + [x1, y1, x2, y2] = [x2, y2, x, y]; + } + } + } + for (let i = 0, ii = lines.length; i < ii; i++) { newLines.push({ line: rescaleFn( diff --git a/src/display/editor/drawers/outline.js b/src/display/editor/drawers/outline.js index 27fceed76d567..e06aafcb33ac9 100644 --- a/src/display/editor/drawers/outline.js +++ b/src/display/editor/drawers/outline.js @@ -97,6 +97,17 @@ class Outline { return [x, y]; } } + + static createBezierPoints(x1, y1, x2, y2, x3, y3) { + return [ + (x1 + 5 * x2) / 6, + (y1 + 5 * y2) / 6, + (5 * x2 + x3) / 6, + (5 * y2 + y3) / 6, + (x2 + x3) / 2, + (y2 + y3) / 2, + ]; + } } export { Outline }; diff --git a/src/display/editor/editor.js b/src/display/editor/editor.js index e47388e0a0fc3..026d225742e18 100644 --- a/src/display/editor/editor.js +++ b/src/display/editor/editor.js @@ -66,7 +66,7 @@ class AnnotationEditor { #hasBeenClicked = false; - #initialPosition = null; + #initialRect = null; #isEditing = false; @@ -468,13 +468,13 @@ class AnnotationEditor { * @param {number} y - y-translation in page coordinates. */ translateInPage(x, y) { - this.#initialPosition ||= [this.x, this.y]; + this.#initialRect ||= [this.x, this.y, this.width, this.height]; this.#translate(this.pageDimensions, x, y); this.div.scrollIntoView({ block: "nearest" }); } drag(tx, ty) { - this.#initialPosition ||= [this.x, this.y]; + this.#initialRect ||= [this.x, this.y, this.width, this.height]; const { div, parentDimensions: [parentWidth, parentHeight], @@ -530,9 +530,16 @@ class AnnotationEditor { get _hasBeenMoved() { return ( - !!this.#initialPosition && - (this.#initialPosition[0] !== this.x || - this.#initialPosition[1] !== this.y) + !!this.#initialRect && + (this.#initialRect[0] !== this.x || this.#initialRect[1] !== this.y) + ); + } + + get _hasBeenResized() { + return ( + !!this.#initialRect && + (this.#initialRect[2] !== this.width || + this.#initialRect[3] !== this.height) ); } @@ -989,6 +996,7 @@ class AnnotationEditor { const newX = oppositeX - transfOppositePoint[0]; const newY = oppositeY - transfOppositePoint[1]; + this.#initialRect ||= [this.x, this.y, this.width, this.height]; this.width = newWidth; this.height = newHeight; this.x = newX; diff --git a/src/display/editor/ink.js b/src/display/editor/ink.js index e1a10f0c1739a..2f30dce592386 100644 --- a/src/display/editor/ink.js +++ b/src/display/editor/ink.js @@ -138,11 +138,44 @@ class InkEditor extends DrawingEditor { /** @inheritdoc */ static async deserialize(data, parent, uiManager) { + let initialData = null; if (data instanceof InkAnnotationElement) { - return null; + const { + data: { + inkLists, + rect, + rotation, + id, + color, + opacity, + borderStyle: { rawWidth: thickness }, + popupRef, + }, + parent: { + page: { pageNumber }, + }, + } = data; + initialData = data = { + annotationType: AnnotationEditorType.INK, + color: Array.from(color), + thickness, + opacity, + paths: { points: inkLists }, + boxes: null, + pageIndex: pageNumber - 1, + rect: rect.slice(0), + rotation, + id, + deleted: false, + popupRef, + }; } - return super.deserialize(data, parent, uiManager); + const editor = await super.deserialize(data, parent, uiManager); + editor.annotationElementId = data.id || null; + editor._initialData = initialData; + + return editor; } /** @inheritdoc */ @@ -214,9 +247,41 @@ class InkEditor extends DrawingEditor { structTreeParentId: this._structTreeParentId, }; + if (isForCopying) { + return serialized; + } + + if (this.annotationElementId && !this.#hasElementChanged(serialized)) { + return null; + } + serialized.id = this.annotationElementId; return serialized; } + + #hasElementChanged(serialized) { + const { color, thickness, opacity, pageIndex } = this._initialData; + return ( + this._hasBeenMoved || + this._hasBeenResized || + serialized.color.some((c, i) => c !== color[i]) || + serialized.thickness !== thickness || + serialized.opacity !== opacity || + serialized.pageIndex !== pageIndex + ); + } + + /** @inheritdoc */ + renderAnnotationElement(annotation) { + const { points, rect } = this.serializeDraw(/* isForCopying = */ false); + annotation.updateEdited({ + rect, + thickness: this._drawingOptions["stroke-width"], + points, + }); + + return null; + } } export { InkEditor }; diff --git a/src/display/editor/stamp.js b/src/display/editor/stamp.js index a2d0ff3dc6f71..972e009ca6a0b 100644 --- a/src/display/editor/stamp.js +++ b/src/display/editor/stamp.js @@ -921,19 +921,19 @@ class StampEditor extends AnnotationEditor { #hasElementChanged(serialized) { const { - rect, pageIndex, accessibilityData: { altText }, } = this._initialData; - const isSameRect = serialized.rect.every( - (x, i) => Math.abs(x - rect[i]) < 1 - ); const isSamePageIndex = serialized.pageIndex === pageIndex; const isSameAltText = (serialized.accessibilityData?.alt || "") === altText; return { - isSame: isSameRect && isSamePageIndex && isSameAltText, + isSame: + !this._hasBeenMoved && + !this._hasBeenResized && + isSamePageIndex && + isSameAltText, isSameAltText, }; } diff --git a/test/integration/annotation_spec.mjs b/test/integration/annotation_spec.mjs index 7431a17d17e22..4e444f5a452e0 100644 --- a/test/integration/annotation_spec.mjs +++ b/test/integration/annotation_spec.mjs @@ -504,14 +504,6 @@ describe("ResetForm action", () => { it("must check that the Ink annotation has a popup", async () => { await Promise.all( pages.map(async ([browserName, page]) => { - if (browserName) { - // TODO - pending( - "Re-enable this test when the Ink annotation has been made editable." - ); - return; - } - await page.waitForFunction( `document.querySelector("[data-annotation-id='25R']").hidden === false` ); diff --git a/test/integration/freetext_editor_spec.mjs b/test/integration/freetext_editor_spec.mjs index 29e89f28ae32e..0c3f9d7242a7d 100644 --- a/test/integration/freetext_editor_spec.mjs +++ b/test/integration/freetext_editor_spec.mjs @@ -28,6 +28,7 @@ import { getSelectedEditors, getSerialized, hover, + isCanvasWhite, kbBigMoveDown, kbBigMoveLeft, kbBigMoveRight, @@ -988,27 +989,8 @@ describe("FreeText Editor", () => { pages.map(async ([browserName, page]) => { await switchToFreeText(page); - const isEditorWhite = editorRect => - page.evaluate(rect => { - const canvas = document.querySelector(".canvasWrapper canvas"); - const ctx = canvas.getContext("2d"); - rect ||= { - x: 0, - y: 0, - width: canvas.width, - height: canvas.height, - }; - const { data } = ctx.getImageData( - rect.x, - rect.y, - rect.width, - rect.height - ); - return data.every(x => x === 0xff); - }, editorRect); - // The page has been re-rendered but with no freetext annotations. - let isWhite = await isEditorWhite(); + let isWhite = await isCanvasWhite(page, 1); expect(isWhite).withContext(`In ${browserName}`).toBeTrue(); let editorIds = await getEditors(page, "freeText"); @@ -1066,7 +1048,7 @@ describe("FreeText Editor", () => { editorIds = await getEditors(page, "freeText"); expect(editorIds.length).withContext(`In ${browserName}`).toEqual(1); - isWhite = await isEditorWhite(editorRect); + isWhite = await isCanvasWhite(page, 1, editorRect); expect(isWhite).withContext(`In ${browserName}`).toBeTrue(); // Check we've now a div containing the text. diff --git a/test/integration/ink_editor_spec.mjs b/test/integration/ink_editor_spec.mjs index 01ba30fcd85b0..1f908fde78488 100644 --- a/test/integration/ink_editor_spec.mjs +++ b/test/integration/ink_editor_spec.mjs @@ -17,9 +17,14 @@ import { awaitPromise, closePages, createPromise, + dragAndDropAnnotation, + getAnnotationSelector, + getEditors, getEditorSelector, getRect, getSelectedEditors, + getSerialized, + isCanvasWhite, kbRedo, kbSelectAll, kbUndo, @@ -27,8 +32,10 @@ import { scrollIntoView, switchToEditor, waitForNoElement, + waitForSelectedEditor, waitForSerialized, waitForStorageEntries, + waitForTimeout, } from "./test_utils.mjs"; const waitForPointerUp = page => @@ -580,7 +587,7 @@ describe("Ink Editor", () => { await closePages(pages); }); - it("must check that the color has been changed", async () => { + it("must check that the deletion has been undid", async () => { await Promise.all( pages.map(async ([browserName, page]) => { await switchToInk(page); @@ -669,4 +676,157 @@ describe("Ink Editor", () => { ); }); }); + + describe("Ink (update existing)", () => { + let pages; + + beforeAll(async () => { + pages = await loadAndWait("inks.pdf", ".annotationEditorLayer"); + }); + + afterAll(async () => { + await closePages(pages); + }); + + it("must update an existing annotation", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + const annotationsRect = await page.evaluate(() => { + let xm = Infinity, + xM = -Infinity, + ym = Infinity, + yM = -Infinity; + for (const el of document.querySelectorAll( + "section.inkAnnotation" + )) { + const { x, y, width, height } = el.getBoundingClientRect(); + xm = Math.min(xm, x); + xM = Math.max(xM, x + width); + ym = Math.min(ym, y); + yM = Math.max(yM, y + height); + } + return { x: xm, y: ym, width: xM - xm, height: yM - ym }; + }); + + await switchToInk(page); + + // The page has been re-rendered but with no ink annotations. + let isWhite = await isCanvasWhite(page, 1, annotationsRect); + expect(isWhite).withContext(`In ${browserName}`).toBeTrue(); + + let editorIds = await getEditors(page, "ink"); + expect(editorIds.length).withContext(`In ${browserName}`).toEqual(15); + + const pdfjsA = getEditorSelector(0); + const editorRect = await getRect(page, pdfjsA); + await page.mouse.click( + editorRect.x + editorRect.width / 2, + editorRect.y + editorRect.height / 2 + ); + await waitForSelectedEditor(page, pdfjsA); + + const red = "#ff0000"; + page.evaluate(value => { + window.PDFViewerApplication.eventBus.dispatch( + "switchannotationeditorparams", + { + source: null, + type: window.pdfjsLib.AnnotationEditorParamsType.INK_COLOR, + value, + } + ); + }, red); + + const serialized = await getSerialized(page); + expect(serialized.length).withContext(`In ${browserName}`).toEqual(1); + expect(serialized[0].color).toEqual([255, 0, 0]); + + // Disable editing mode. + await switchToInk(page, /* disable = */ true); + + // We want to check that the editor is displayed but not the original + // canvas. + editorIds = await getEditors(page, "ink"); + expect(editorIds.length).withContext(`In ${browserName}`).toEqual(1); + + isWhite = await isCanvasWhite(page, 1, editorRect); + expect(isWhite).withContext(`In ${browserName}`).toBeTrue(); + + // Check we've now a svg with a red stroke. + await page.waitForSelector("svg[stroke = '#ff0000']", { + visible: true, + }); + + // Re-enable editing mode. + await switchToInk(page); + await page.focus(".annotationEditorLayer"); + + await kbUndo(page); + await waitForSerialized(page, 0); + + editorIds = await getEditors(page, "ink"); + expect(editorIds.length).withContext(`In ${browserName}`).toEqual(15); + + // Undo again. + await kbUndo(page); + // Nothing should happen, it's why we can't wait for something + // specific! + // eslint-disable-next-line no-restricted-syntax + await waitForTimeout(200); + + // We check that the editor hasn't been removed. + editorIds = await getEditors(page, "ink"); + expect(editorIds.length).withContext(`In ${browserName}`).toEqual(15); + }) + ); + }); + }); + + describe("Ink (move existing)", () => { + let pages; + + beforeAll(async () => { + pages = await loadAndWait("inks.pdf", getAnnotationSelector("277R")); + }); + + afterAll(async () => { + await closePages(pages); + }); + + it("must move an annotation", async () => { + await Promise.all( + pages.map(async ([browserName, page]) => { + await page.click(getAnnotationSelector("277R"), { count: 2 }); + const edgeB = getEditorSelector(10); + await waitForSelectedEditor(page, edgeB); + + const editorIds = await getEditors(page, "ink"); + expect(editorIds.length).withContext(`In ${browserName}`).toEqual(15); + + // All the current annotations should be serialized as null objects + // because they haven't been edited yet. + const serialized = await getSerialized(page); + expect(serialized).withContext(`In ${browserName}`).toEqual([]); + + const editorRect = await page.$eval(edgeB, el => { + const { x, y, width, height } = el.getBoundingClientRect(); + return { x, y, width, height }; + }); + + // Select the annotation we want to move. + await page.mouse.click(editorRect.x + 2, editorRect.y + 2); + await waitForSelectedEditor(page, edgeB); + + await dragAndDropAnnotation( + page, + editorRect.x + editorRect.width / 2, + editorRect.y + editorRect.height / 2, + 100, + 100 + ); + await waitForSerialized(page, 1); + }) + ); + }); + }); }); diff --git a/test/integration/test_utils.mjs b/test/integration/test_utils.mjs index 65213567aa6c9..6138035b05122 100644 --- a/test/integration/test_utils.mjs +++ b/test/integration/test_utils.mjs @@ -781,6 +781,28 @@ function waitForNoElement(page, selector) { ); } +function isCanvasWhite(page, pageNumber, rectangle) { + return page.evaluate( + (rect, pageN) => { + const canvas = document.querySelector( + `.page[data-page-number = "${pageN}"] .canvasWrapper canvas` + ); + const canvasRect = canvas.getBoundingClientRect(); + const ctx = canvas.getContext("2d"); + rect ||= canvasRect; + const { data } = ctx.getImageData( + rect.x - canvasRect.x, + rect.y - canvasRect.y, + rect.width, + rect.height + ); + return new Uint32Array(data.buffer).every(x => x === 0xffffffff); + }, + rectangle, + pageNumber + ); +} + export { applyFunctionToEditor, awaitPromise, @@ -806,6 +828,7 @@ export { getSerialized, getSpanRectFromText, hover, + isCanvasWhite, isVisible, kbBigMoveDown, kbBigMoveLeft, diff --git a/test/pdfs/.gitignore b/test/pdfs/.gitignore index 45949cc358c30..7083ac7d95f00 100644 --- a/test/pdfs/.gitignore +++ b/test/pdfs/.gitignore @@ -685,3 +685,5 @@ !issue19120.pdf !bug1934157.pdf !rotated_ink.pdf +!inks.pdf +!inks_basic.pdf diff --git a/test/pdfs/inks.pdf b/test/pdfs/inks.pdf new file mode 100644 index 0000000000000000000000000000000000000000..371144239fe0e190b5bbba7a18e5a606e4137dd4 GIT binary patch literal 108628 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

^A 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 literal 0 HcmV?d00001 diff --git a/test/test_manifest.json b/test/test_manifest.json index 98a5c23da1a40..d3167615d5f73 100644 --- a/test/test_manifest.json +++ b/test/test_manifest.json @@ -10872,5 +10872,334 @@ "talos": false, "type": "eq", "link": true + }, + { + "id": "inks_basic-editor-save-print", + "file": "pdfs/inks_basic.pdf", + "md5": "2615610de59b4849993dcc2614ebb266", + "rounds": 1, + "lastPage": 1, + "type": "eq", + "save": true, + "print": true, + "annotationStorage": { + "pdfjs_internal_editor_0": { + "annotationType": 15, + "color": [241, 17, 41], + "opacity": 1, + "thickness": 20, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 114, + 691.5, + null, + null, + null, + null, + 159.75, + 631.5 + ] + ], + "points": [[114, 691.5, 159.75, 631.5]] + }, + "pageIndex": 0, + "rect": [ + 104.0000076523194, 621.5000049701105, 169.7500193485847, + 701.5000020036331 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "16R" + }, + "pdfjs_internal_editor_1": { + "id": "17R", + "deleted": true, + "pageIndex": 0, + "popupRef": "" + }, + "pdfjs_internal_editor_2": { + "annotationType": 15, + "color": [0, 0, 0], + "opacity": 1, + "thickness": 3, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 475.0961608886719, + 647.4615478515625, + null, + null, + null, + null, + 520.8461303710938, + 587.4615478515625 + ] + ], + "points": [ + [ + 475.0961608886719, 647.4615478515625, 520.8461303710938, + 587.4615478515625 + ] + ] + }, + "pageIndex": 0, + "rect": [ + 473.59618278650134, 585.9615278473268, 522.3461772570244, + 648.9615135559669 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "18R" + }, + "pdfjs_internal_editor_3": { + "annotationType": 15, + "color": [250, 23, 28], + "opacity": 0.55, + "thickness": 3, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 79.04861450195312, + 532.353759765625, + null, + null, + null, + null, + 198.18736267089844, + 378.6045837402344 + ] + ], + "points": [ + [ + 79.04861450195312, 532.353759765625, 198.18736267089844, + 378.6045837402344 + ] + ] + }, + "pageIndex": 0, + "rect": [ + 77.54861622361037, 377.10462435392236, 199.6873893210521, + 533.8537948498359 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "19R" + }, + "pdfjs_internal_editor_4": { + "annotationType": 15, + "color": [70, 108, 241], + "opacity": 0.7, + "thickness": 20, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 273.6300048828125, + 535.47998046875, + null, + null, + null, + null, + 319.3800048828125, + 475.4800109863281 + ] + ], + "points": [ + [ + 273.6300048828125, 535.47998046875, 319.3800048828125, + 475.4800109863281 + ] + ] + }, + "pageIndex": 0, + "rect": [ + 263.629992209948, 465.48002000955444, 329.38000390621335, + 545.4799757370582 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "20R" + } + } + }, + { + "id": "inks_basic-editor-print", + "file": "pdfs/inks_basic.pdf", + "md5": "2615610de59b4849993dcc2614ebb266", + "rounds": 1, + "lastPage": 1, + "type": "eq", + "print": true, + "annotationStorage": { + "pdfjs_internal_editor_0": { + "annotationType": 15, + "color": [241, 17, 41], + "opacity": 1, + "thickness": 20, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 114, + 691.5, + null, + null, + null, + null, + 159.75, + 631.5 + ] + ], + "points": [[114, 691.5, 159.75, 631.5]] + }, + "pageIndex": 0, + "rect": [ + 104.0000076523194, 621.5000049701105, 169.7500193485847, + 701.5000020036331 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "16R" + }, + "pdfjs_internal_editor_1": { + "id": "17R", + "deleted": true, + "pageIndex": 0, + "popupRef": "" + }, + "pdfjs_internal_editor_2": { + "annotationType": 15, + "color": [0, 0, 0], + "opacity": 1, + "thickness": 3, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 475.0961608886719, + 647.4615478515625, + null, + null, + null, + null, + 520.8461303710938, + 587.4615478515625 + ] + ], + "points": [ + [ + 475.0961608886719, 647.4615478515625, 520.8461303710938, + 587.4615478515625 + ] + ] + }, + "pageIndex": 0, + "rect": [ + 473.59618278650134, 585.9615278473268, 522.3461772570244, + 648.9615135559669 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "18R" + }, + "pdfjs_internal_editor_3": { + "annotationType": 15, + "color": [250, 23, 28], + "opacity": 0.55, + "thickness": 3, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 79.04861450195312, + 532.353759765625, + null, + null, + null, + null, + 198.18736267089844, + 378.6045837402344 + ] + ], + "points": [ + [ + 79.04861450195312, 532.353759765625, 198.18736267089844, + 378.6045837402344 + ] + ] + }, + "pageIndex": 0, + "rect": [ + 77.54861622361037, 377.10462435392236, 199.6873893210521, + 533.8537948498359 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "19R" + }, + "pdfjs_internal_editor_4": { + "annotationType": 15, + "color": [70, 108, 241], + "opacity": 0.7, + "thickness": 20, + "paths": { + "lines": [ + [ + null, + null, + null, + null, + 273.6300048828125, + 535.47998046875, + null, + null, + null, + null, + 319.3800048828125, + 475.4800109863281 + ] + ], + "points": [ + [ + 273.6300048828125, 535.47998046875, 319.3800048828125, + 475.4800109863281 + ] + ] + }, + "pageIndex": 0, + "rect": [ + 263.629992209948, 465.48002000955444, 329.38000390621335, + 545.4799757370582 + ], + "rotation": 0, + "structTreeParentId": null, + "id": "20R" + } + } } ]