[Sie-announce] SIEコード [1389] fontSizeの調整

アーカイブの一覧に戻る

svnno****@sourc***** svnno****@sourc*****
2009年 11月 2日 (月) 22:43:16 JST


Revision: 1389
          http://sourceforge.jp/projects/sie/svn/view?view=rev&revision=1389
Author:   dhrname
Date:     2009-11-02 22:43:16 +0900 (Mon, 02 Nov 2009)

Log Message:
-----------
fontSizeの調整

Modified Paths:
--------------
    branches/05x/053/sie.js

Modified: branches/05x/053/sie.js
===================================================================
--- branches/05x/053/sie.js	2009-11-02 11:36:23 UTC (rev 1388)
+++ branches/05x/053/sie.js	2009-11-02 13:43:16 UTC (rev 1389)
@@ -1873,7 +1873,7 @@
   }
 };
 NAIBU._ie_createFont = function(/*Element*/ ti, /*Element*/ font) {
-  var node = ti.firstChild, data, glyphs = font.getElementsByTagName("glyph");
+  var node = ti.firstChild, data, glyphs = font.getElementsByTagName("glyph"), em = font.getElementsByTagName("font-face").item(0).getAttribute("units-per-em");
   var dx = parseFloat(ti.style.left), dy = parseFloat(ti.style.top), fontSize = parseFloat(ti.style.fontSize);
   while(node) {
     data = node.data;
@@ -1883,8 +1883,8 @@
         if (index > -1) {
           //fontSizeと文字数をかけた長さ分、ずらしていく
           var x = dx + fontSize * index, y = dy + fontSize * index;
-          ti.insertBefore(path);
-          NAIBU.pathData(glyphs[i].getAttribute("d"), path, true, x, y, ti.w, ti.h, fontSize, 1000);
+          ti.parentNode.insertBefore(path, ti);
+          NAIBU.pathData(glyphs[i].getAttribute("d"), path, true, x, y, ti.w, ti.h, fontSize, parseFloat(em || 1000));
         }
       }
     } else {
@@ -1954,7 +1954,7 @@
 };
 NAIBU.pathData = function(/*string*/ data, /*Element*/ p, /*boolean*/ t, /*float*/x, y, w, h, fontSize, em) {
   //CTMでフォントを移動させておく
-  var fe = fontSize / em, matrix = new Matrix(fe, 0, 0, -fe, x*fe, -y*fe);
+  var fe = fontSize / em, matrix = new Matrix(fe, 0, 0, -fe, x*fe, -y*fe - em*fontSize);
   if (t) { //IEならば
     var s = new STPath(p, matrix);
     s.d = data;




Sie-announce メーリングリストの案内
アーカイブの一覧に戻る