fullseye

measure_text — ANNOTATE text op

使い方

文字を描く前に測る。収まらないなら折り返すか縮め、駄目なら例外。

Parameters

text : str 測る文字列(\n で改行)。 font_size : int 希望のサイズ。max_width に入らなければ 1pt ずつ縮める。 font_path : str or None 明示すると機械をまたいでも同じ結果になる。None は :data:FONT_CANDIDATES を固定順で探す。 max_width : int or None 入れたい幅[px]。None なら縮小も折り返しもしない。 min_font_size : int ここまで縮めても入らなければ ValueError(黙って切らない)。 line_spacing : float 行送り係数。 bold, italic : bool or int 合成の太字・斜体(:func:_bold_px / :func:_italic_tile)。本物の Bold / Italic 書体ではないので字形は違う ―― 本物が要るときは font_path にその書体のファイルを渡すこと。bold に整数を渡すと 重ね打ちの回数を直に指定できる。太さと傾きのぶんは width に入る ので、板や表の桁はそのまま広がる(重ね打ちは横にだけ太るので height は変わらない)。 wrap : bool True(既定)なら max_width折り返す。False なら折り返さず 行を増やさずフォントを縮めて収める(格子のラベルのように、2 行に なると版が崩れる場所で使う ―― exhibit_tile._fit_label と同じ流儀)。 どちらでも min_font_size まで来て入らなければ例外。 \n の改行は max_width の有無・wrap の値によらず常に効く (幅を与えないと 1 行に潰れる、という事故は起きない)。

Returns

dict {"lines", "font", "font_size", "width", "height", "line_height"}width/height は実測[px]。

Raises

ValueError max_width が非正 / min_font_size まで縮めても 1 行が入らない。

詳しい使い方ガイド

背景知識ガイド(この op の手前にある物理・規約)

参考(サンプルデータ・文献)

実行できる例(この op を実際に呼ぶ検証済みサンプル)

型が繋がる次の op(table を入力に取れる)

同カテゴリ(text)

text_box


Provenance: annotate.py — ANNOTATE operator registry. この per-op ノートは tools/opdocs.py md が自動生成(手編集しない)。

© 2026 Kazufumi Furuse — Fullseye operator documentation. Licensed under Apache-2.0.