diff --git a/src/modules/html.js b/src/modules/html.js index fd66e15cd..b4e1f85af 100644 --- a/src/modules/html.js +++ b/src/modules/html.js @@ -494,9 +494,12 @@ import { globalObject } from "../libs/globalObject.js"; ) : options.windowHeight; + pdf.context2d.save(true); return html2canvas(this.prop.container, options); }) .then(function toContext2d_post(canvas) { + this.opt.jsPDF.context2d.restore(true); + // Handle old-fashioned 'onrendered' argument. var onRendered = this.opt.html2canvas.onrendered || function() {}; onRendered(canvas); diff --git a/test/reference/html-basic.pdf b/test/reference/html-basic.pdf index 899710841..ba7f2e2cc 100644 Binary files a/test/reference/html-basic.pdf and b/test/reference/html-basic.pdf differ diff --git a/test/reference/html-font-faces.pdf b/test/reference/html-font-faces.pdf index dc68c7933..e4824e1e7 100644 Binary files a/test/reference/html-font-faces.pdf and b/test/reference/html-font-faces.pdf differ diff --git a/test/reference/html-margin-page-break-image.pdf b/test/reference/html-margin-page-break-image.pdf index 4239fc56d..983af6e3c 100644 Binary files a/test/reference/html-margin-page-break-image.pdf and b/test/reference/html-margin-page-break-image.pdf differ diff --git a/test/reference/html-margin-page-break-slice.pdf b/test/reference/html-margin-page-break-slice.pdf index 8303e85dd..c63b2b140 100644 Binary files a/test/reference/html-margin-page-break-slice.pdf and b/test/reference/html-margin-page-break-slice.pdf differ diff --git a/test/reference/html-margin-page-break-text.pdf b/test/reference/html-margin-page-break-text.pdf index 76d810500..bc1cf4145 100644 Binary files a/test/reference/html-margin-page-break-text.pdf and b/test/reference/html-margin-page-break-text.pdf differ diff --git a/test/reference/html-margin-page-break.pdf b/test/reference/html-margin-page-break.pdf index caa8d5f35..1aee0ae63 100644 Binary files a/test/reference/html-margin-page-break.pdf and b/test/reference/html-margin-page-break.pdf differ diff --git a/test/reference/html-margin-x-y-text.pdf b/test/reference/html-margin-x-y-text.pdf index 5164f48d2..6d041a183 100644 Binary files a/test/reference/html-margin-x-y-text.pdf and b/test/reference/html-margin-x-y-text.pdf differ diff --git a/test/reference/html-margin-x-y.pdf b/test/reference/html-margin-x-y.pdf index 6a8a16ab2..70b1e792b 100644 Binary files a/test/reference/html-margin-x-y.pdf and b/test/reference/html-margin-x-y.pdf differ diff --git a/test/reference/html-margin.pdf b/test/reference/html-margin.pdf index 6a8a16ab2..70b1e792b 100644 Binary files a/test/reference/html-margin.pdf and b/test/reference/html-margin.pdf differ diff --git a/test/reference/html-multiple.pdf b/test/reference/html-multiple.pdf new file mode 100644 index 000000000..3b29149aa Binary files /dev/null and b/test/reference/html-multiple.pdf differ diff --git a/test/reference/html-width-100-windowWidth-500.pdf b/test/reference/html-width-100-windowWidth-500.pdf index 7d7b94690..6dceac04f 100644 Binary files a/test/reference/html-width-100-windowWidth-500.pdf and b/test/reference/html-width-100-windowWidth-500.pdf differ diff --git a/test/reference/html-width-210-windowWidth-1000.pdf b/test/reference/html-width-210-windowWidth-1000.pdf index d1d8839fc..5ae9c69c5 100644 Binary files a/test/reference/html-width-210-windowWidth-1000.pdf and b/test/reference/html-width-210-windowWidth-1000.pdf differ diff --git a/test/reference/html-width-210-windowWidth-250.pdf b/test/reference/html-width-210-windowWidth-250.pdf index 2d8fdbe64..bbe80422c 100644 Binary files a/test/reference/html-width-210-windowWidth-250.pdf and b/test/reference/html-width-210-windowWidth-250.pdf differ diff --git a/test/reference/html-width-210-windowWidth-500.pdf b/test/reference/html-width-210-windowWidth-500.pdf index f32fe57f0..9afd79b56 100644 Binary files a/test/reference/html-width-210-windowWidth-500.pdf and b/test/reference/html-width-210-windowWidth-500.pdf differ diff --git a/test/reference/html-width-300-windowWidth-500-scale-2.pdf b/test/reference/html-width-300-windowWidth-500-scale-2.pdf index d32682fd1..877559bf0 100644 Binary files a/test/reference/html-width-300-windowWidth-500-scale-2.pdf and b/test/reference/html-width-300-windowWidth-500-scale-2.pdf differ diff --git a/test/reference/html-width-300-windowWidth-500.pdf b/test/reference/html-width-300-windowWidth-500.pdf index 249776e0b..cc2d5eb84 100644 Binary files a/test/reference/html-width-300-windowWidth-500.pdf and b/test/reference/html-width-300-windowWidth-500.pdf differ diff --git a/test/reference/html-width-default-windowWidth-default.pdf b/test/reference/html-width-default-windowWidth-default.pdf index 575828fde..8f1fc94d7 100644 Binary files a/test/reference/html-width-default-windowWidth-default.pdf and b/test/reference/html-width-default-windowWidth-default.pdf differ diff --git a/test/reference/html-x-y.pdf b/test/reference/html-x-y.pdf index 6a8a16ab2..70b1e792b 100644 Binary files a/test/reference/html-x-y.pdf and b/test/reference/html-x-y.pdf differ diff --git a/test/saucelabs/karma.conf.js b/test/saucelabs/karma.conf.js index a9bf8c894..2a43f93eb 100644 --- a/test/saucelabs/karma.conf.js +++ b/test/saucelabs/karma.conf.js @@ -15,7 +15,7 @@ const browsers = { base: "SauceLabs", browserName: "chrome", platform: "Windows 10", - version: "83" + version: "94" }, sl_firefox: { base: "SauceLabs", diff --git a/test/specs/html.spec.js b/test/specs/html.spec.js index 1de962b0d..3dd448732 100644 --- a/test/specs/html.spec.js +++ b/test/specs/html.spec.js @@ -277,7 +277,7 @@ describe("Module: html", () => { }); it("page break with image", async () => { - const doc = jsPDF({ floatPrecision: 2, unit: "pt", format: [100, 100] }); + const doc = jsPDF({ floatPrecision: 2, unit: "pt", format: [100, 100], lineWidth: 1 }); await new Promise(resolve => doc.html( '', @@ -315,6 +315,14 @@ describe("Module: html", () => { comparePdf(doc.output(), "html-x-y.pdf", "html"); }); + it("is able to render html multiple times", async () => { + const doc = jsPDF({ floatPrecision: 2, unit: "pt" }); + await doc.html("
", { x: 30, y: 10 }); + await doc.html("
", { x: 50, y: 10 }); + await doc.html("
", { x: 10, y: 10 }); + comparePdf(doc.output(), "html-multiple.pdf", "html"); + }); + it("html x, y + margin offsets properly", async () => { const doc = jsPDF({ floatPrecision: 2, unit: "pt" }); doc.line(30, 10, 100, 10);