您只需重新绘制整个场景,省略您不想写入 PDF 的部分。
如果您不想跟踪要重绘的所有内容,请创建第二个内存中的画布 ( document.createElement('canvas')
) 并对该画布而不是您的普通画布执行所有绘图操作,然后将该画布作为用户绘制到您的普通画布上编辑而不是直接在普通画布上绘图。
老办法:
// First you round the corners permanently by making a clipping region:
ctx.roundedRect(etc)
ctx.clip();
//then a user draws something onto normal canvas, like an image
ctx.drawImage(myImage, 0, 0);
新方式:
// make a hidden canvas:
var hiddenCanvas = document.createElement('canvas');
var hCtx = hiddenCanvas.getContext('2d');
// First you round the corners permanently by making a clipping region:
ctx.roundedRect(etc)
ctx.clip();
//then a user draws something onto HIDDEN canvas, like an image
// This image never gets its corners cut
hCtx.drawImage(myImage, 0, 0);
// Then you draw the hidden canvas onto your normal one:
ctx.drawImage(hiddenCanvas, 0, 0);
打印时,您使用隐藏的画布,它没有背景图像,也没有剪角。