2011-12-07 4 views
5

Come posso creare testo da un font TTF e convertirlo in un percorso SVG statico? In modo che chiunque possa aprirlo in Illustrator e vedere la parola (come .SVG).Conversione di testo in percorso (svg) sul server?

Il nostro server è Debain e utilizziamo principalmente PHP per la codifica del backend.

Felice di usare Imagemagick o Inkscape - qualsiasi cosa si possa fare!

+0

See http: // StackOverflow.it/questions/8296964/is-there-a-php-library-for-drawing-text-as-a-vector-outline –

risposta

7

Prova questo:

  1. Creare un file in formato SVG modello in Inkscape (si veda l'esempio qui sotto).
  2. Aprire quel file con un editor di testo e posizionare alcuni token segnaposto per le variabili che si desidera modificare: il carattere e il testo.
  3. Creare una pagina Web in modo che l'utente possa selezionare il carattere e scrivere il testo.
  4. Recupera i dati nel server.
  5. Leggere il file modello e modificare i token segnaposto con i dati utente.
  6. Chiama Inkscape tramite la riga di comando.
inkscape template.svg --export-text-to-path --export-id=maintext --export-pdf=new_file.pdf 

Ora, lo so, lo so, hai detto che vuole un output in formato SVG ... ho provato l'opzione:

--export-plain-svg=new_file.svg 

Ma secondo la pagina man Inkscape:

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

Soooo ... non è possibile ottenere svg esportazione ed esportazione di testo nel percorso: S ... BTW questo dovrebbe essere riempito come un bug.

Si può servire il PDF, oppure chiamare ancora:

inkscape -l new_file.svg new_file.pdf 

Quale ... Lo so, è abbastanza stupido. No, davvero, aprire un bug su Inkscape: P

Questo è l'esempio modello di 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> 

Cordiali saluti.

+0

grazie mi ha aiutato perfettamente! – Justin

1

È anche possibile indicare a inkscape di aprire il file in in modalità GUI e quindi emettere commands. Il seguente comando da riga di comando apre un file svg, seleziona tutti i nodi e li converte in tracciati. Questo ti permetterà di salvare il tuo svg convertito in svg.

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

Attenzione, questo sarà di override il file!

0

O ancora più semplice, utilizzare EasySVG, questa libreria converte un testo in una definizione SVG. È quindi possibile inserire questa definizione in un percorso o qualsiasi altra cosa.

La definizione si basa su file in formato SVG di un tipo di carattere, ma si può facilmente convertire i file TTF SVG ...