我正在寻找一个python包,它可以应用'调整页面大小到绘图'到一个类似于Inkscap的svg文件

2024-05-23 18:58:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,它使用rdkit创建化学分子的svg图形。 我将在网络服务器上使用它们,因此,数字的大小确实很重要。 当前输出是一个包含svg文件的字符串。 我知道我可以使用Inkscape删除白色背景和“调整页面大小到绘图”,这正是我想要的。但当我创建了很多数字,我正在寻找一种方法来调整数字自动。 我使用python模块进行svg的经验非常有限,因此我希望有人能推荐一个可以应用所需更改的模块。你知道吗

我知道我可以简单地移除

<rect style='opacity:1.0;fill:#ffffff;stroke:none' width='2000' height='2000' x='0' y='0'> </rect>

部分从svg文件中删除白色背景,但我不知道如何实现'调整页面大小到绘图'部分。你知道吗

非常感谢您的帮助。你知道吗


Tags: 模块文件svgrect网络服务器脚本图形
1条回答
网友
1楼 · 发布于 2024-05-23 18:58:50

Inkscape可以从命令行执行各种功能,包括您所要求的功能。你知道吗

我的搜索首先引导我here:

这是Inkscape可以从命令行执行的许多“动词”或操作的广泛列表。这里有一些链接页面,但是意识到可以通过Inkscape的命令行帮助找到信息

从命令行inkscape help是非常彻底的。你知道吗

上面提供的链接的输出只是此命令的一个副本: inkscape verb-list。你知道吗

从这个列表中,我们要寻找的是FitCanvasToDrawing

最终代码

inkscape  verb=FitCanvasToDrawing  verb=FileSave  verb=FileClose  verb=FileQuit input.svg

“verbs”的格式是verb=VerbName,可以链接许多不同的操作。在所有谓词之后,您提供了Inkscape将要打开/操作的文件名(不幸的是,谓词不能接受扩展脚本可能性的参数)。你知道吗

上面示例中的最后一个动词(FileQuit)是可选的,因为如果您在许多文件中循环执行此操作,那么让Inkscape保持打开状态可能比每隔几秒钟重新启动它更快。你知道吗

这最后一点带来了Inkscape的一个局限性,即UI需要打开才能执行此操作,这可能会减慢更大批量的处理过程,但对于一次性处理来说,这是微不足道的。这个错误报告可以在here找到,并被标记为“Wishlist”项。你知道吗

最后,您提到了python,但这可以通过shell脚本进行批处理,方法是在末尾提供一个变量,而不是静态文件名,并在soscript *.svg这样的文件夹中的所有svg文件上从命令行运行该脚本,但可以随意使用您最熟悉的语言。你知道吗

相关问题 更多 >