2012-03-23 4 views
2

오후 모두, 내가 라파엘을 사용하여 (페이지의 나머지와 함께) 확대 할 수 있으며 주석이 동적 "통치자"를 그리려고라파엘 -

을 인쇄하기 전에 텍스트의 경계 상자를 찾을 수 있습니다.

나는 라파엘의 pathBBox()와 isBBoxIntersect를 발견했는데, 어떤 지점에서 눈금을 인쇄해야하는지 아니면 다른 눈금에 너무 가까워서 건너 뛸지를 결정할 때 매우 유용합니다.

이제 일부 눈금에 주석을 달고 유사한 방법을 따르고 싶습니다. 눈금이 가장 큰 눈금에 주석을 답니다. 가장 작은 눈금까지만 작업하지만 이미 그려진 눈금과 교차 할 경우 텍스트를 그립니다.

불행히도 Raphael docs를 통한 저의 시각은 저에게 Paper.print()와 Paper.text() 메소드 만 보여주었습니다. 둘 다 종이에 추가되었습니다. 이것은 내가 bbox를 추가하고 테스트를 찾은 다음 나쁜 경우 제거해야한다는 것을 의미합니다. 이는 다소 느릴 수 있습니다.

수동으로 bbox 개체를 만들고 내 저장된 bbox에 대해 테스트 할 수 있도록 인쇄하지 않고 인쇄 할 텍스트의 크기를 찾는 방법이 있습니까?

언제나처럼, 미리 감사드립니다. :-)

건배, -Oli

답변

0

당신은 텍스트에 .getBBox()를 사용할 수 있습니다 :이 공식적으로 문서화 보지 못했다

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

,하지만 작동하고, 분명히 교차 브라우저.

+0

예 ... 그걸 발견하고 그걸로 놀고 있어요 ... 문제는, paper.text는 용지에 인쇄하는 반면, 인쇄 할 것인지 결정하기 전에 계획된 텍스트의 경계 상자를 가져 오려고합니다. –

+1

Agh ... 당신이 그것을 캔버스에 올 때까지 평범하지 않은 것이 두렵습니다. 그러나 표시 여부를 결정할 때까지 opacity = 0을 설정할 수 있습니다. – peteorpeter

+0

흠, 그건 아주 재미있는 생각입니다, 피터, 그냥 일을 할 수 있습니다. 좋은 생각 :-) –