📅  最后修改于: 2023-12-03 14:43:51.635000             🧑  作者: Mango
若需要将 LaTeX 编译后得到的 pdf 文件转换成 eps 格式,可以使用 Ghostscript 命令行工具实现。
以下是一个 Shell 脚本,可以将指定目录下所有的 pdf 文件都转换成 eps 格式并保存在指定目录内。请确保已安装 Ghostscript 工具。
#!/bin/bash
# 指定 pdf 文件所在目录和 eps 文件保存目录
pdf_directory="/path/to/pdf/files"
eps_directory="/path/to/eps/files"
# 遍历 pdf 文件
for pdf_file in ${pdf_directory}/*.pdf; do
# 从 pdf 文件路径中获取文件名(不含扩展名)
file_name=$(basename "${pdf_file}" .pdf)
# 转换成 eps 格式
gs -dSAFER -dBATCH -dNOPAUSE -sDEVICE=eps2write -sOutputFile="${eps_directory}/${file_name}.eps" "${pdf_file}"
done
使用方法:将脚本保存成文件(如 convert_pdf_to_eps.sh
)并赋予执行权限,然后在终端中执行即可,或者将脚本直接复制粘贴到终端中执行。脚本中需要将 pdf_directory
和 eps_directory
更改为实际路径。
以上脚本中:
-dSAFER
参数是为了限制 Ghostscript 的操作权限,避免出现安全问题;-dBATCH
参数表示在所有文件处理完成后退出 Ghostscript,而不是等待用户手动退出;-dNOPAUSE
参数表示在处理文件时不要停顿,而是一口气处理完;-sDEVICE=eps2write
参数表示将文件转换成 eps 格式;-sOutputFile=
参数指定输出文件的路径和文件名。补充:若有部分 pdf 文件不需要转换成 eps 格式,可以在转换前加入判断,例如:
if [[ "${pdf_file}" == *"_no_eps.pdf" ]]; then
# 文件名包含 "_no_eps" 的 pdf 文件不进行转换
continue
fi
这样就可以跳过指定文件的转换了。
注意,本脚本只能将单页 pdf 文件转换成 eps,若需要将多页 pdf 文件的每一页都转换成 eps,可以使用 pdfseparate
命令将多页 pdf 文件分割成单页 pdf 文件,再使用本脚本分别转换每一页,最后使用 convert
命令将 eps 文件合并成一个多页 eps 文件。