对于我的项目工作,我使用Inkscape执行两项任务:
File
- > Document Properties
- > Resize page to content...
这项任务相当简单,但是对于大量的图纸而言,这些任务非常耗时。
我检查了Inkscape中的宏功能,但没有这样的东西。但是我发现Inkscape允许用Python实现自己的扩展脚本。
如果您有任何类似的经历,可以帮我实现上面列出的Inkscape扩展步骤。
潜在有用的链接:http://wiki.inkscape.org/wiki/index.php/PythonEffectTutorial
编辑:接受的答案无法使用内部python扩展解决我的请求,但它使用inkscape
命令行选项解决了该任务。
答案 0 :(得分:1)
我从未在inkscape中编写过脚本,但我一直使用python中的inkscape(通过子进程模块)。如果在命令行上键入inkscape --help
,则会看到所有选项。我相信您的用例,以下内容将起作用:
inkscape -D -A myoutputfile.pdf myinputfile.whatever
-A表示要输出为PDF(需要文件名),-D表示要调整大小到图纸。
如果您从未使用过子模块,最简单的方法是使用subprocess.call,如下所示:
subprocess.call(['inkscape', '-D', '-A', outfn, inpfn])
编辑:
处理命令行上传递的输入文件名的最可能的脚本(未经测试!)看起来像这样:
import sys
import os
# Do all files except the program name
for inpfn in sys.argv[1:]:
# Name result files 'resized_<oldname>.pdf'
# and put them in current directory
shortname = os.path.basename(inpfname).rsplit('.',1)[0]
outfn = 'resized_%s.pdf' % shortname
subprocess.call(['inkscape', '-D', '-A', outfn, inpfn])