我正在看问题(将 EPS 转换为 PDF)他们建议使用 Inkscape 将 EPS 转换为 PDF 图像。我需要完全相同的东西。使用 GUI,它运行良好。
由于我有大约 200 张图像需要转换,有没有办法自动完成这个过程?或者至少通过命令行运行它,这样我可以更快地完成这个过程?即使从命令提示符一次执行一个也可以,因为从 GUI 执行这个操作很麻烦。
我正在学习批处理脚本,因此对于任何给出的答案,您能否详细说明该过程的工作原理
我已经阅读页在命令提示符下运行 Inkscape,但我收到错误消息“inkscape”未被识别为内部或外部命令、可操作程序或批处理文件。
我问这个问题在...TeX StackExchange 网站并被要求运行以下批处理脚本。
@echo off
for /r %%i in (*.eps) do "c:\Program Files (x86)\Inkscape\inkscape.exe" --export-pdf=%%i.pdf %%i
当我使用 cmd 导航到目录时出现错误
Inkscape 已从执行的脚本中收到附加数据。脚本未返回错误,但这可能表示结果不会如预期。
但是 Inkscape 刚打开,之后什么都没发生。有人能帮帮我吗?
答案1
不要使用
inkscape.exe
。使用inkscape.com
包装器。这将允许您从 Windows 命令行查看输出和错误消息。请参阅此常见问题解答条目尝试明确使用该
-f
选项来查看是否有区别,即更改:--export-pdf=%%i.pdf %%i
到
-f "%%i" --export-pdf="%%i.pdf"
测试路径中带有反斜杠的单个文件,以确保 Inkscape 可以接受它。如果不行,您可能需要转换为正斜杠。
答案2
使用/r
选项for
,您将获得该目录和子目录中所有 .eps 文件的递归列表,其值为%%i
= c:\some\path\probably with\spaces\someEPSfile.eps
。
Inkscape 可能因文件名中意外的空格而卡住了。 它可能可以通过以下方式修复:
for /r %%i in (*.eps) do "c:\Program Files(x86)\Inkscape\inkscape.exe"
--export-pdf="%%i.pdf" "%%i"
如果这不起作用,那么我会尝试删除递归标志(也许 Inkscape 不喜欢文件名中的斜杠?):
for %%i in (*.eps) do "c:\Program Files(x86)\Inkscape\inkscape.exe"
--export-pdf="%%i.pdf" "%%i"