2010-05-27 63 views
5

我已經把使用Inkscape的矩形內的一些文字,讓樹就像使用Inkscape的

<svg:rect><svg:text><svg:tspan>text.... 

的問題是創建一個矩形內的文本,我無法看到的文本。我已經嘗試過對rect的不透明度進行擺弄,無濟於事。應該有一種方法可以通過用戶界面來做到這一點?

編輯

例如按要求

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<!-- Created with Inkscape (http://www.inkscape.org/) --> 
<svg 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:cc="http://creativecommons.org/ns#" 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:svg="http://www.w3.org/2000/svg" 
    xmlns="http://www.w3.org/2000/svg" 
    xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 
    xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 
    width="184.25197" 
    height="262.20471" 
    id="svg2" 
    sodipodi:version="0.32" 
    inkscape:version="0.46" 
    version="1.0" 
    sodipodi:docname="ex1.svg" 
    inkscape:output_extension="org.inkscape.output.svg.inkscape"> 
    <defs 
    id="defs4"> 
    <inkscape:perspective 
     sodipodi:type="inkscape:persp3d" 
     inkscape:vp_x="0 : 526.18109 : 1" 
     inkscape:vp_y="0 : 1000 : 0" 
     inkscape:vp_z="744.09448 : 526.18109 : 1" 
     inkscape:persp3d-origin="372.04724 : 350.78739 : 1" 
     id="perspective10" /> 
    </defs> 
    <sodipodi:namedview 
    id="base" 
    pagecolor="#ffffff" 
    bordercolor="#666666" 
    borderopacity="1.0" 
    gridtolerance="10000" 
    guidetolerance="10" 
    objecttolerance="10" 
    inkscape:pageopacity="0.0" 
    inkscape:pageshadow="2" 
    inkscape:zoom="0.64" 
    inkscape:cx="195.9221" 
    inkscape:cy="335.3072" 
    inkscape:document-units="px" 
    inkscape:current-layer="layer1" 
    showgrid="false" 
    inkscape:window-width="640" 
    inkscape:window-height="675" 
    inkscape:window-x="44" 
    inkscape:window-y="44" /> 
    <metadata 
    id="metadata7"> 
    <rdf:RDF> 
     <cc:Work 
     rdf:about=""> 
     <dc:format>image/svg+xml</dc:format> 
     <dc:type 
      rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 
     </cc:Work> 
    </rdf:RDF> 
    </metadata> 
    <g 
    inkscape:label="Layer 1" 
    inkscape:groupmode="layer" 
    id="layer1"> 
    <rect 
     style="opacity:0.25480766;fill:#ff0000;fill-opacity:1;stroke:#000000;stroke-width:12.94795799;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 
     id="rect2383" 
     width="150.87796" 
     height="84.226181" 
     x="18.221733" 
     y="39.557121"> 
     <text 
     xml:space="preserve" 
     style="font-size:56.0331955px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;font-family:Bitstream Vera Sans" 
     x="44.815186" 
     y="114.0088" 
     id="text2385" 
     transform="scale(1.0054479,0.9945816)"><tspan 
      sodipodi:role="line" 
      id="tspan2387" 
      x="44.815186" 
      y="114.0088">text</tspan></text> 
    </rect> 
    </g> 
</svg> 

我希望能夠看到這Inkscape中。

解決方法是將文本放在盒子上方的圖層上(意圖是盒子遮住它下面的圖層),而不是試圖讓嵌套標籤變得聰明。可惜它不起作用。

+0

您是否試圖在Inkscape或其他查看器中查看它?你能發佈完整的SVG文檔嗎? – Ken 2010-05-27 17:19:00

回答

10

rect元素不能包含文本元素,根據svg規範它是無效的,並且將被兼容的用戶代理忽略。

只需將rect元素後面的文本放在頂部即可。

+0

杜。從來沒有想過驗證xml。 http://validator.w3.org/check在沒有netbeans或其他驗證器的情況下很方便。我發現svg dtd不可否認是模塊化的,但很難閱讀。 – 2010-05-28 10:34:36