2013-03-04 12 views
6

Possiedo un file SVG proveniente da Inkscape, Illustrator o qualsiasi altra applicazione. Voglio convertire le forme in formato lineto, moveto, curveto.Converti in modo programmatico le forme SVG in tracciati (lineto, moveto)

Quello che voglio è qualcosa di simile:

./Appname svgfile outfilewithpath 

darò il file in formato SVG come un argomento, allora la mia domanda permette di convertire l'oggetto nei rispettivi percorsi.

+0

Giusto per essere chiari, si desidera convertire elementi come 'rect',' circle', 'ellipse' e' poligono' in tracciati? – Duopixel

+0

Sì e anche il testo. – skanzariya

+0

Vengo a sapere di Inkscape e ho scoperto che può fare il lavoro, ma quello che voglio è che ho reso pronto da qualsiasi software e ho voluto convertire l'oggetto in un percorso. Ad esempio, passare a Linea in. Qt, Perl, Python, C, C++ qualsiasi soluzione è accettata. – skanzariya

risposta

5

Inkscape ha un'interfaccia della riga di comando. Utilizzare il Inkscape man page insieme al verb source per riferimento:

Il ObjectToPath verbo converte un oggetto in un percorso:

inkscape filename.svg --select=myobject --verb=ObjectToPath --export-plain-svg=filename_to_path.svg 

L'argomento export-text-to-path converte i nodi di testo in tracciati:

inkscape filename.svg --export-eps=filename.eps --export-text-to-path 

Questi sono correlate domande su come eseguire InkScape da Perl, Ruby, PHP o Python:

+0

Inkscape stesso può fare le cose e sono anche molto ben informato sulla linea di comando di inkscape. Sto cercando qualche altra soluzione, forse Python o Perl. per es. Python/PerlApp svgfile outfilewithcoordinate.txt. So che svg è un file xml e può essere analizzato con la libreria xml. – skanzariya

3

Questo è ciò che alla fine ha funzionato per me:

inkscape -f filename.svg --verb EditSelectAll --verb SelectionUnGroup --verb EditSelectAll --verb ObjectToPath --verb FileSave --verb FileQuit 

Ci vogliono circa 9 secondi per correre e per breve tempo si apre l'interfaccia grafica Inkscape , che diventa l'applicazione attiva, quindi non è l'ideale, ma è l'unica risposta R ho trovato che funziona davvero.

Problemi correlati