2011-12-07 27 views
5

¿Cómo puedo crear texto desde una fuente TTF y convertirlo en una ruta SVG estática? Para que cualquiera pueda abrirlo en Illustrator y ver la palabra (como .SVG).¿Convertir texto en ruta (svg) en el servidor?

Nuestro servidor es Debain, y utilizamos principalmente PHP para la codificación de back-end.

¡Feliz de usar Imagemagick o Inkscape - lo que sea que lo haga!

+0

Ver http: // stackoverflow.com/questions/8296964/is-there-a-php-library-for-drawing-text-as-a-vector-outline –

Respuesta

7

Prueba esto:

  1. Crear un archivo de plantilla SVG de Inkscape (ver un ejemplo más abajo).
  2. Abra ese archivo con un editor de texto y coloque algunos tokens de marcador de posición para las variables que desea cambiar: la fuente y el texto.
  3. Crea una página web para que el usuario pueda seleccionar la fuente y escribir el texto.
  4. Recupere esa información en el servidor.
  5. Lea el archivo de plantilla y cambie los tokens de marcador de posición con los datos de usuario.
  6. Llamar a Inkscape a través de la línea de comandos.
inkscape template.svg --export-text-to-path --export-id=maintext --export-pdf=new_file.pdf 

Ahora, ya sé, ya sé, usted ha dicho que quiere una salida SVG ... Probé la opción:

--export-plain-svg=new_file.svg 

Pero de acuerdo a la página del manual de Inkscape:

-T, --export-text-to-path 
    Convert text objects to paths on export, where applicable (for PS, EPS, and PDF export). 

Soooo ... no se puede obtener una exportación simple svg y exportar texto a la ruta: S ... BTW esto debe completarse como un error.

Se puede servir el PDF, o llamar de nuevo:

inkscape -l new_file.svg new_file.pdf 

Qué ... Lo sé, es bastante estúpida. No, en serio, abra una incidencia en Inkscape: P

Este es el ejemplo de plantilla de Inkscape:

<?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" 
    version="1.1" 
    width="440.29297" 
    height="39.824219" 
    id="svg2"> 
    <defs 
    id="defs4" /> 
    <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" /> 
     <dc:title></dc:title> 
     </cc:Work> 
    </rdf:RDF> 
    </metadata> 
    <text 
    x="-3.4374955" 
    y="30.390625" 
    id="maintext" 
    xml:space="preserve" 
    style="font-size:40px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:[FONT_PLACEHOLDER]"><tspan 
     x="-3.4374955" 
     y="30.390625" 
     id="tspan3006" 
     style="fill:#000000">[TEXT_PLACEHOLDER]</tspan></text> 
</svg> 

cordial saludo.

+0

¡gracias esto me ayudó a la perfección! – Justin

1

También puede indicar inkscape para abrir su archivo en modo gui y luego emitir commands. La siguiente entrada de línea de comando abre una svg, selecciona todos los nodos y los convierte en rutas. Esto le permitirá guardar su svg convertido de nuevo a svg.

inkscape -f your.svg --with-gui --verb EditSelectAll --verb ObjectToPath --verb FileSave --verb FileQuit 

Cuidado, esto será anulación su archivo!

0

O incluso más simple, use EasySVG, esta biblioteca convierte un texto a una definición de SVG. A continuación, puede poner esta definición en una ruta, o lo que sea.

La definición se basa en el archivo SVG de una fuente, pero se puede convertir fácilmente archivos TTF a SVG ...

Cuestiones relacionadas