2010-05-27 15 views
5

Mam umieścić jakiś tekst wewnątrz prostokąta przy użyciu Inkscape więc drzewo jest jakstworzyć tekst wewnątrz prostokąta za pomocą Inkscape

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

Problem polega na tym, że nie można zobaczyć tekst. Próbowałem gryźć z nieprzezroczystością recta bez skutku. Powinien być sposób na zrobienie tego z interfejsu użytkownika?

Edit

przykład jako wezwanego

<?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> 

będę oczekiwać, aby móc zobaczyć to w Inkscape.

Sposób obejścia problemu polega na umieszczeniu tekstu na warstwie nad polem (celem jest zasłonięcie warstw poniżej), a nie spróbuj uzyskać sprytnego z zagnieżdżonymi znacznikami. Szkoda, że ​​to nie działa.

+0

Czy próbujesz wyświetlić go w Inkscape lub innej przeglądarce? Czy możesz opublikować kompletny dokument SVG? – Ken

Odpowiedz

10

Prosty element nie może zawierać elementów tekstowych, które są nieprawidłowe zgodnie ze specyfikacją svg i będą po prostu ignorowane przez zgodne aplikacje użytkownika.

Po prostu umieść tekst po elemencie rect, aby był renderowany na wierzchu.

+0

Duh. Nigdy nawet nie pomyślał o sprawdzeniu poprawności xml. http://validator.w3.org/check jest przydatny w przypadku braku netbeans lub innego walidatora. Znalazłem svg dtd niezaprzeczalnie modułowe, ale raczej trudne do odczytania. –

Powiązane problemy