parallax/jsPDF

context2d initial property values are not applied

Open

#3,319 创建于 2021年11月16日

在 GitHub 查看
 (0 评论) (0 反应) (0 负责人)JavaScript (28,280 star) (4,596 fork)batch import
Bugdifficulty:mediumhelp wanted

描述

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.

贡献者指南