parallax/jsPDF

context2d initial property values are not applied

Open

#3.319 geöffnet am 16. Nov. 2021

Auf GitHub ansehen
 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)JavaScript (28.280 Stars) (4.596 Forks)batch import
Bugdifficulty:mediumhelp wanted

Beschreibung

Example borrowed from #2701:

var doc = new jsPDF()
var ctx = doc.context2d
ctx.strokeText(`font: ${ctx.font}, line: ${ctx.lineWidth}`, 10, 10)
ctx.font = ctx.font // font size is changed(16px → 10px)
ctx.strokeText(`font: ${ctx.font}, line: ${ctx.lineWidth}`, 10, 20)
ctx.lineWidth = ctx.lineWidth // line width is changed(0.2px → 1px)
ctx.strokeText(`font: ${ctx.font}, line: ${ctx.lineWidth}`, 10, 30)

The same thing happens after manually switching or creating pages with addPage or setPage.

A correct solution would probably check if the current document state is the same as the context2d state and if not would apply the properties that are different before executing a command like fill, fillText, stroke, etc.

Contributor Guide