COMPANY

ブログ

warning: file_get_contents(http://ipinfo.io/54.161.202.106) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 429 Too Many Requests in /var/www/www.4d.com/docs/includes/common.inc(1645) : eval()'d code on line 3.

SVG: テキストとテキストエリア

03.05.2010
by Keisuke Miyako

4DのSVGレンダリングエンジンは, 4D 11.3でバージョンアップしました。おもな拡張項目は, ドキュメントに記載されているとおり, システム変数MouseXおよびMouseYとの連動, そして座標からXMLのIDが調べられるSVG Find element ID by coordinates関数の追加です。加えて, マーカーの描画, base64エンコードイメージの組み込み, Quadratic bezier path, そしてテキストよりも高度なテキストエリアも11.3よりサポートされるようになりました。テキストエリアは, SVG 1.1ではなく, SVG Tiny 1.2の仕様に基づいています。テキストでは困難な表現も, テキストエリアならば容易な場合が少なくありません。特に改行が含まれるテキストの出力には, 明らかにテキストエリアが適しています。

 

www.w3.org/TR/SVGMobile12/text.html#TextInAnArea

 

テキストエリアの正しい表記は<textArea>です。XMLは大文字と小文字を区別するので, これを<textarea>などと記述した場合は無視されるので気をつける必要があります。サポートされているプロパティは基本的にテキストと同じ(例外: text-decoration="overline"はテキストのみ)ですが, text-anchorはテキストエリア特有の属性であるtext-align, display-alignを使用します。中央合わせは, text-anchorではmiddleと設定しますが, text-align, display-alignはそれぞれcenterです。この属性だけはSVG 1.2なので, g属性から継承することはできません。textAreaの属性として明示的に設定する必要があります。テキストは, 幅と高さを省略してもSVGレンダリングがその文字列に最適のピクチャサイズを自動的に計算しますが, テキストエリアの場合はその性格上, エリアのサイズ指定が必須です。

 

XMLデータに含まれる改行コード(\r, \n)などはピクチャテキストに反映されません。(加えてXMLデータの改行コードは解析時に0x10、出力時にシステムネイティブのコードに変換されることになっています。)改行は単語の区切りとエリアの幅に基づいてレンダリングエンジンが処理します。強制的なブレークはタグで挿入することができますが, HTMLではないので, ブレークを挿入する場合のタグは<br />ではなく<tbreak />です。

 

www.4d.com/jp/blog/xml-end-of-line.html

 

forums.4d.fr/Post//3796264/1/