Skip to content
3 changes: 3 additions & 0 deletions src/modules/html.js
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
Binary file modified test/reference/html-basic.pdf
Binary file not shown.
Binary file modified test/reference/html-font-faces.pdf
Binary file not shown.
Binary file modified test/reference/html-margin-page-break-image.pdf
Binary file not shown.
Binary file modified test/reference/html-margin-page-break-slice.pdf
Binary file not shown.
Binary file modified test/reference/html-margin-page-break-text.pdf
Binary file not shown.
Binary file modified test/reference/html-margin-page-break.pdf
Binary file not shown.
Binary file modified test/reference/html-margin-x-y-text.pdf
Binary file not shown.
Binary file modified test/reference/html-margin-x-y.pdf
Binary file not shown.
Binary file modified test/reference/html-margin.pdf
Binary file not shown.
Binary file added test/reference/html-multiple.pdf
Binary file not shown.
Binary file modified test/reference/html-width-100-windowWidth-500.pdf
Binary file not shown.
Binary file modified test/reference/html-width-210-windowWidth-1000.pdf
Binary file not shown.
Binary file modified test/reference/html-width-210-windowWidth-250.pdf
Binary file not shown.
Binary file modified test/reference/html-width-210-windowWidth-500.pdf
Binary file not shown.
Binary file modified test/reference/html-width-300-windowWidth-500-scale-2.pdf
Binary file not shown.
Binary file modified test/reference/html-width-300-windowWidth-500.pdf
Binary file not shown.
Binary file modified test/reference/html-width-default-windowWidth-default.pdf
Binary file not shown.
Binary file modified test/reference/html-x-y.pdf
Binary file not shown.
2 changes: 1 addition & 1 deletion test/saucelabs/karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ const browsers = {
base: "SauceLabs",
browserName: "chrome",
platform: "Windows 10",
version: "83"
version: "94"
},
sl_firefox: {
base: "SauceLabs",
Expand Down
10 changes: 9 additions & 1 deletion test/specs/html.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -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(
'<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8DwHwAFBQIAX8jx0gAAAABJRU5ErkJggg==" width="10" height="200">',
Expand Down Expand Up @@ -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("<div style='background: red; width: 10px; height: 10px;'></div>", { x: 30, y: 10 });
await doc.html("<div style='background: red; width: 10px; height: 10px;'></div>", { x: 50, y: 10 });
await doc.html("<div style='background: red; width: 10px; height: 10px;'></div>", { 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);
Expand Down