残念ながら、canvas 2d コンテキストの fillText メソッドと strokeText メソッドは改行をサポートしていません。複数行のテキストが必要な場合は、テキストを部分文字列に分割し、異なる y オフセットで個別に出力することで、自分でこれを行う必要があります。
これは、12 ピクセルの固定行の高さで区切られた複数の行に改行 (\n) を含むテキストを描画する関数です。
function fillMultilineText(context, text, x, y) {
// split text at line-breaks and put the resulting sub-strings into an array
var lines = text.split('\n');
// draw each line with 12pixel offset
for(var i = 0; i < lines.length; i++) {
var line_y = y + i * 12;
context.fillText(lines[i], x, line_y);
}
}
HTML5 canvas ctx.fillText
は改行を行いませんか?