parallax/jsPDF

context2d initial property values are not applied

Open

#3319 opened on Nov 16, 2021

View on GitHub
 (0 comments) (0 reactions) (0 assignees)JavaScript (28,280 stars) (4,596 forks)batch import
Bugdifficulty:mediumhelp wanted

Description

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