2013-03-04 20 views
6

Mam plik SVG pochodzący z Inkscape, Illustratora lub dowolnej innej aplikacji. Chcę przekonwertować kształty na format lineto, moveto, curveto.Programowo konwertuj kształty SVG na ścieżki (lineto, moveto)

Co chcę jest coś takiego:

./Appname svgfile outfilewithpath 

dam plik SVG jako argumentu, to moja aplikacja będzie przekształcić obiekt do odpowiednich ścieżek.

+0

Po prostu, aby było jasne, chcesz przekonwertować elementy takie jak 'rect',' circle', 'ellipse' i' polygon' na ścieżki? – Duopixel

+0

Tak, a także tekst. – skanzariya

+0

Dowiedziałem się o Inkscape i stwierdziłem, że może wykonać to zadanie, ale to, czego chcę, to gotowe svg z dowolnego oprogramowania i chciałem przekonwertować obiekt na ścieżkę. tj. Przejdź do linii do. Qt, Perl, Python, C, C++ dowolne rozwiązanie są akceptowane. – skanzariya

Odpowiedz

5

Inkscape ma interfejs wiersza poleceń. Za pomocą Inkscape man page wraz z verb source dokumencie:

ObjectToPath czasownik przekształca obiektu na ścieżce:

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

export-text-to-path argumentu przekształca węzłów tekstowych ścieżek:

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

są one powiązane pytania dotyczące uruchamiania InkScape z Perl, Ruby, PHP lub Python:

+0

Sam Inkscape może to zrobić i jestem również bardzo dobrze poinformowany o linii poleceń inkscape. Szukam innego rozwiązania, być może Python lub Perl. na przykład Python/PerlApp svgfile outfilewithcoordinate.txt. Wiem, że svg jest plikiem xml i może być analizowany w bibliotece xml. – skanzariya

3

To co ostatecznie pracował dla mnie:

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

To trwa około 9 sekund do uruchomienia i krótko otwiera gui Inkscape , która staje się aktywną aplikacją, więc nie jest idealna, ale jest to jedyna odpowiedź r Mogę stwierdzić, że tak naprawdę działa.