我有一个脚本,它使用rdkit创建化学分子的svg图纸。 我将在Web服务器上使用它们,因此,数字的大小确实很重要。 当前输出是包含svg文件的字符串。 我知道我可以使用Inkscape删除白色背景并将页面大小调整为绘图"这正是我想要的。但是当我创建很多数字时,我正在寻找一种自动调整数字大小的方法。 我对svg的python模块的体验非常有限,因此我希望有人可以建议一个可以应用所需更改的模块。
我知道我可以简单地删除
<rect style='opacity:1.0;fill:#ffffff;stroke:none' width='2000' height='2000' x='0' y='0'> </rect>
部分来自svg文件以删除白色背景,但我不知道如何实现&#39;调整大小页面来绘制&#39;部分。
非常感谢任何帮助。
答案 0 :(得分:2)
Inkscape可以从命令行执行各种功能,包括您要求的功能。
我的搜索首先引导了我Podfile Syntax Reference
这是许多动词的广泛列表&#39;或者Inkscape可以从命令行执行的操作。有一些链接的页面,但意识到可以使用Inkscape的命令行帮助找到信息
从命令行inkscape --help
非常彻底。
上面提供的链接的输出只是此命令的副本:
inkscape --verb-list
。
从该列表中,我们要找的是FitCanvasToDrawing
inkscape --verb=FitCanvasToDrawing --verb=FileSave --verb=FileClose --verb=FileQuit input.svg
&#39;动词的格式&#39;是--verb = VerbName,可以链接许多不同的动作。在所有动词之后,你提供了Inkscape打开/操作的文件名(不幸的是动词不能接受会扩展脚本编写可能性的参数)。
上面示例中的最后一个动词(FileQuit)是可选的,就好像您循环执行此操作的许多文件一样,将Inkscape打开而不是每隔几秒重新启动它可能会更快。
最后一点提出了Inkscape的一个限制,那就是UI需要打开才能执行此操作,这可能会减慢更大批次的流程,但对于一次性操作来说是微不足道的。可以找到here:的错误报告,并将其标记为“愿望清单”&#39;项目
最后,你提到了python,但是这可以通过在最后提供一个变量而不是静态文件名并在所有svg文件的命令行中运行那个脚本来使用shell脚本进行批处理在script *.svg
之类的文件夹中,您可以随意使用您最熟悉的语言。