Я думаю, вы не указали ширину и высоту холста HTML Сам элемент, попробуйте:
addText();
function addText() {
var canvas = document.getElementById("canvas"); // 850x400px
var ctx = canvas.getContext("2d");
var y = 1 * 20 + 20;
var text = {
text: "ABC",
x: 20,
y: y
};
ctx.font = "40px consolas";
text.width = ctx.measureText(text.text).width;
text.height = 80;
ctx.fillText(text.text, text.x, text.y);
}
<canvas id="canvas" width="850" height="400" style="background: red"></canvas>
Обновление
Другим вариантом является программная установка ширины и высоты, это предотвратит увеличение:
let canvas = document.getElementById("canvas");
canvas.height = window.innerHeight;
canvas.width = window.innerWidth;
Я использовал ширину и высоту окна, но любой другой элемент сделает это.