![用于从 PS 文件创建裁剪 PDF 的宏](https://linux22.com/image/157547/%E7%94%A8%E4%BA%8E%E4%BB%8E%20PS%20%E6%96%87%E4%BB%B6%E5%88%9B%E5%BB%BA%E8%A3%81%E5%89%AA%20PDF%20%E7%9A%84%E5%AE%8F.png)
我有 Postscript PS 图像,并编写了一个宏来转换为 PDF,然后裁剪为其边界框大小。该代码工作正常,但我想有一种更直接的方法可以做到这一点。任何帮助,不胜感激。谢谢。
##!/bin/sh
echo 'Convert all PS to PDF in current directory and then crop according to the DAVE
sizes (5x4in) 1.75,3.5in offset: in standard PS Letter size'
pwd
for f in *.ps
do
ps2pdf -dEPSCrop "$f"
done
for g in *.pdf
do
pdfcrop --margins "10 10 10 10" "$g"
rm "$g"
done
答案1
你说在评论中您不想存储不需要的中间 PDF 文件。以下是如何在更简单的 shell 脚本中执行此操作:
#!/bin/sh
for name in ./*.ps; do
ps2pdf -dEPSCrop "$name" - | pdfcrop --margins '10 10 10 10' - "${name%.ps}.pdf"
done
如果您给程序ps2pdf
指定输出文件名-
.该流可以直接通过管道传输,pdfcrop
而无需将其存储在中间文件中。-
输入文件的文件名pdfcrop
意味着“从标准输入读取”(在本例中是通过管道传入的数据)。
的输出文件pdfcrop
将与输入文件同名ps2pdf
,但尾部.ps
替换为.pdf
。这是通过参数替换来完成的(从 值的末尾${name%.ps}.pdf
删除,然后附加到结果字符串)。.ps
$name
.pdf