首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Inkscape CLI模式处理20k SVG文件?(对齐和合并对象)

如何使用Inkscape CLI模式处理20k SVG文件?(对齐和合并对象)
EN

Stack Overflow用户
提问于 2014-10-26 11:20:23
回答 1查看 788关注 0票数 0

我是,基于一个模板生成20 000个文件。这些文件包含两个对象:

  1. 汉字(hanzi);
  2. 它的发音(pinyin)。

这个部分工作得很好,然后我要:

  • 向左对齐hanzi
  • pinyin对齐到右边
  • 合并hanzipinyin
    • 这意味着首先将<svg:text> 转换为 <svg:path>,然后转换为

有以下选择:

代码语言:javascript
复制
inkscape -f file.svg \
  --select=hanzi --verb=AlignHorizontalLeft --verb=EditDeselect \
  --select=pinyin --verb=AlignHorizontalRight --verb=EditDeselect \
  --select=hanzi --select=pinyin \
  --verb=AlignVerticalCenter --verb=SelectionUnion \
  --verb=FileSave --verb=FileQuit

节流阀是为每个文件Inkscape 打开/关闭。

注:我正在使用Inkscape 0.48.4 r9939 (2014年1月22日)

问题

  1. 有办法在一个Inkscape实例中处理多个文件吗?
  2. Align*动词的替代方法是什么,因为它们在inkscape --verbs-list中不可用?

参考文献

EN

回答 1

Stack Overflow用户

发布于 2014-10-26 12:50:51

我根本不知道Inkscape,但我认为你的问题是它太慢了--尽管你没有明确地这样说。不管怎样,你也许可以试试这样的GNU Parallel

代码语言:javascript
复制
parallel -j 8 ./process {} ::: *.svg

这将使8个作业并行运行,直到所有20,000个文件都被处理。{}是文件名的缩写,文件名列表是在:::之后给出的。如果您的命令行也有其他可能的文件,您可以像这样在stdin上输入它们

代码语言:javascript
复制
find . -name "*.svg" | parallel -j 8 ./process {}

然后,将Inkscape命令包装在一个名为process的脚本中,并使其可执行(使用chmod +x process),并使它接受一个参数,即文件名。

无论如何,我想这是值得一试的--使用一个小的复制的示例文件夹,直到您对GNU Parallel有信心为止。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26572397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档