问题
I have an SVG file coming from Inkscape, Illustrator, or any other application. I want to convert the shapes to lineto
, moveto
, curveto
format.
What I want is something like:
./Appname svgfile outfilewithpath
I will give the SVG file as an argument, then my application will convert the object into the respective paths.
回答1:
Inkscape has a command-line interface. Use the Inkscape man page along with the verb source for reference:
The ObjectToPath
verb converts an object to a path:
inkscape filename.svg --select=myobject --verb=ObjectToPath --export-plain-svg=filename_to_path.svg
The export-text-to-path
argument converts text nodes to paths:
inkscape filename.svg --export-eps=filename.eps --export-text-to-path
These are related questions on how to run InkScape from Perl, Ruby, PHP or Python:
- Using the Inkscape shell from perl
- Run inkscape in PHP
- Calling Inkscape in Python
- Inkscape Merge Ruby Gem
回答2:
This is what finally worked for me:
inkscape -f filename.svg --verb EditSelectAll --verb SelectionUnGroup --verb EditSelectAll --verb ObjectToPath --verb FileSave --verb FileQuit
It takes about 9 seconds to run and briefly opens the inkscape gui, which becomes the active application, so it's not ideal, but it's the only answer I could find that actually works.
来源:https://stackoverflow.com/questions/15203650/programmatically-convert-svg-shapes-to-paths-lineto-moveto