2016-08-24 79 views
1

因此,我正在渲染一些特定的width爲120px的對象,並且對象將具有不同的標題。我的問題是,標題太長時,它不包裹它,並把它放在一個新的行。 svg中有沒有解決這類問題的方法?如何在SVG中包裝文本

var labels = ["Testing 123", "Things are fantastic"] 

for (var i = 0; i < labels.length; i++) 
      { 
       cell = editor.graph.cloneCells([cell])[0]; 
       // cell.setStyle(new-style); 
       editor.graph.model.valueForCellChanged(cell, label); 

       editor.toolbar.addPrototype(label, "data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' height='43px' width='104px'>" + 
        "<rect fill='#595A5A' stroke='black' x='0' y='0' rx='5' ry='5' width='100%' height='100%'/>"+ 
        "<text text-anchor='middle' font-weight='600' font-family='Helvetica' fill='#BCCF00' x='50%' y='25' font-size='12'>" + label + "</text></svg>", cell); 
      } 

回答

3

SVG 1.1中沒有自動文字換行。你需要自己將文本排版成線。

+0

您是否確定即使在正常的svg中,我們也無法斷線;是否有可能將文本標籤放在可能包含文本的框中,而不是隱藏溢出 –

+1

通用SVG 1.1沒有包裝能力。 SVG 2在發佈時很可能會發生變化。但是,如果您在瀏覽器中,則可以使用''元素[將HTML嵌入您的SVG](https://developer.mozilla.org/en/docs/Web/SVG/Element/異物)。這是你唯一的選擇。 –