2012-03-23 6 views
2

午後すべて、私はラファエルを使用して、(ページの残りの部分と一緒に)ズームすることができ、注釈されているダイナミックな「定規」を描くしようとしているラファエル -

を印刷する前に、テキストのバウンディングボックスを見つけます。

私はラファエルのpathBBox()とisBBoxIntersectを発見しました。これは、ある瞬間に目盛りを印刷するか、別の罫線に近すぎるかどうかを判断するのに非常に役立ち、スキップする必要があります。

今私はいくつかの卒業証書に注釈を付ける必要があり、同様の方法に従う必要があります。最も大きな卒業証書に注釈を付け、最小の詳細レベルまで作業しますが、すでに描画されたものと交差する場合はテキストをスキップします。

残念ながら、Raphaelのドキュメントを使った私の見解では、Paper.print()とPaper.text()メソッドしか表示されていませんでした。つまり、追加してからbboxを見つけてテストし、悪い場合は削除しなければならないということです。これは潜在的に遅い可能性があります。

私は手動でbboxオブジェクトを作成し、私の保存されたbboxに対してそれをテストできるように、印刷せずに印刷したいテキストの寸法を見つける方法はありますか?

いつものように、あらかじめありがとうございます!私はこれが正式に文書化され表示されませんでしたが、それが動作する、と明らかにクロス

var text = paper.text(...); 
if (text.getBBox().width > max) ...; 

::-)

乾杯、 -OLi

答えて

0

あなたがテキストに.getBBox()を使用することができますブラウザ。

+0

ええと...私はそれを見つけて遊んでいます...問題は、paper.textは紙に印刷しますが、印刷するかどうかを決める前に、計画されたテキストの境界ボックスを取得したいです。 –

+1

Agh ...あなたがキャンバスに置くまで、それは普通のものはないと思う。ただし、表示するかどうかを決定するまでは、opacity = 0を設定できます。 – peteorpeter

+0

ええと、それは非常に興味深い考えです、ピーター、それはちょうど仕事をするかもしれません。良い考え方:-) –

関連する問題