お寿司か焼き肉食べたい

まじめな事からしょーもない事まで
めにゅーを開く(投げやり)

日記はここで終わっている

テキスト。もちろんcanvasにも文字だって表示できます。

context.fillText(text,x,y[,maxWidth])

fillがついていますので、塗りつぶし文字です。
塗りつぶし文字ってなんだかあまり聞かないですが、つまり普通の文字です
テキストの描画は現在のパスには影響を与えません。 また、影・透明度・切り抜き・合成の対象となります。

text

表示したいテキストをここに記述します。

x y

テキストを表示させる座標位置を指定してあげましょう。

maxWidth

これはオプションですが、設定することで、テキストの表示幅を指定することができます。
テキストは折り返されるわけではなく、縮小されます。

var canvas1 = document.getElementById('canvas01');
canvas1.width = 400;
canvas1.height = 200;
if (canvas1.getContext) {
  var context1 = canvas1.getContext('2d');
  context1.beginPath();
  context1.font = "30px 'MS ゴシック'";
  context1.fillText('テキスト1領域指定',50,50,70);
  context1.fillText('テキスト2領域指定しない',0,90);
}

さてさて、こんな感じですね。
テキスト装飾やらフォントは追ってやります。
注目いただきたいのは、文字列じゃなくあくまでも描画なわけで。つまり、コピペできないしソース表示してもない
保護したいテキスト、歌詞なんかは重宝しますね。

context.strokeText(text,x,y[,maxWidth])

同じ文字ですが、少し違う方法、塗りつぶしとくれば、輪郭。つまり中抜き文字ってことですかね
引数に関してはfillTextと一緒です。

var canvas2 = document.getElementById('canvas02');
canvas2.width = 400;
canvas2.height = 200;
if (canvas2.getContext) {
  var context2 = canvas2.getContext('2d');
  context2.beginPath();
  context2.font = "30px 'MS ゴシック'";
  context2.strokeText('テキスト1領域指定',50,50,70);
  context2.strokeText('テキスト2領域指定しない',0,90);
}

フォントの指定

デモでも使ってたりしますが、フォントの指定等をある程度できるように用意されています。

context.font=pram

色々なフォント指定を行うことができます。
指定内容はCSSのfontと同じです。

var canvas3 = document.getElementById('canvas03');
canvas3.width = 400;
canvas3.height = 200;
if (canvas3.getContext) {
  var context3 = canvas3.getContext('2d');
  context3.beginPath();
  context3.font = "bold large/150% 'Gyate_FONT'";
  context3.fillText('テキスト1',150,50);
  context3.font = "bold 30px 'メイリオ'";
  context3.fillText('テキスト2',50,100);
}

context.textAlign=pram

その名の通り、テキストの位置を指定することができます。

start
開始揃え(デフォルト)
end
終了位置揃え
left
左揃え
right
右揃え
center
中央揃え
var canvas4 = document.getElementById('canvas04');
canvas4.width = 400;
canvas4.height = 200;
if (canvas4.getContext) {
  var context4 = canvas4.getContext('2d');
  context4.beginPath();
  context4.textAlign = "start";
  context4.fillText('テキスト_start',150,30);
  context4.textAlign = "end";
  context4.fillText('テキスト_end',150,60);
  context4.textAlign = "left";
  context4.fillText('テキスト_left',150,90);
  context4.textAlign = "right";
  context4.fillText('テキスト_right',150,120);
  context4.textAlign = "center";
  context4.fillText('テキスト_center',150,150);
}

context.textBaseline=pram

テキストのベースラインを設定することができます。

top
emスクエアの上端
hanging
「आ」のような文字が固定される位置
middle
emスクエアの中間
alphabetic
(デフォルト)
アルファベットのベースライン(初期値)
ideographic
漢字など表意文字のベースライン
bottom
emスクエアの下端
var canvas5 = document.getElementById('canvas05');
canvas5.width = 1090;
canvas5.height = 200;
if (canvas5.getContext) {
  var context5 = canvas5.getContext('2d');
  context5.beginPath();
  context5.font = "bold 20px 'Gyate_FONT'";
  context5.textBaseline  = "top";
  context5.fillText('あアAa1_top',10,30);
  context5.textBaseline  = "hanging";
  context5.fillText('あアAa1_hanging',130,30);
  context5.textBaseline  = "middle";
  context5.fillText('あアAa1_middle',300,30);
  context5.textBaseline  = "alphabetic";
  context5.fillText('あアAa1_alphabetic',460,30);
  context5.textBaseline  = "ideographic";
  context5.fillText('あアAa1_ideographic',660,30);
  context5.textBaseline  = "bottom";
  context5.fillText('あアAa1_bottom',880,30);
  context5.moveTo(0, 15);
  context5.lineTo(1090, 15);
  context5.moveTo(0, 25);
  context5.lineTo(1090, 25);
  context5.moveTo(0, 32);
  context5.lineTo(1090, 32);
  context5.stroke();
}

context.measureText(text)

このテキストを入れたらどんくらいの長さになるん?を測定できるます。
戻り値はオブジェクトで返ってきます。
TextMetrics.widthで取得できます。