我找不到将 PDF 转换为 EPS 的工具,无论是在 MikTeX 还是在 TeXLive 中。真的有这样的工具吗?
更新:
根据赫伯特接受的答案,我简化了他的批次如下:
#!/bin/sh
# $Id: pdf2eps,v 0.01 2005/10/28 00:55:46 Herbert Voss Exp $
# Convert PDF to encapsulated PostScript.
# usage:
# pdf2eps <page number> <pdf file without ext>
pdfcrop "$2.pdf" "$2-temp.pdf"
pdftops -f $1 -l $1 -eps "$2-temp.pdf" "$2.eps"
rm "$2-temp.pdf"
对于 Windows 用户,创建一个批处理文件,并将其命名pdf2eps.bat
为:
rem pdf2eps <page number> <pdf file without ext>
echo off
pdfcrop "%2.pdf" "%2-temp.pdf"
pdftops -f %1 -l %1 -eps "%2-temp.pdf" "%2.eps"
del "%2-temp.pdf"
答案1
这是一个Linux脚本pdf2eps
。它可以轻松地转换为Windows的批处理脚本。
#!/bin/sh
# $Id: pdf2eps,v 0.01 2005/10/28 00:55:46 Herbert Voss Exp $
# Convert PDF to encapsulated PostScript.
# usage:
# pdf2eps <page number> <pdf file without ext>
pdfcrop $2.pdf
pdftops -f $1 -l $1 -eps "$2-crop.pdf"
rm "$2-crop.pdf"
mv "$2-crop.eps" $2.eps
答案2
提供这样的工具不是 TeX 发行版的任务。您需要使用外部工具。
其中有几个应该能够将 PDF 转换为 EPS,有时需要先经过 PS。
我可以推荐以下 3 种可以给我带来良好效果的工具:
- Inkscape(矢量图形编辑器,免费且多平台)
可以使用 GUI(打开 PDF,保存为 EPS)或使用命令行(仅在 Linux 下测试):
inkscape input.pdf --export-eps=output.eps
inkscape input.pdf --export-filename=output.eps
Acrobat Reader(Linux 版)+
ps2eps
(TeXLive)acroread -toPostScript input.pdf ps2eps input.ps
Ghostscript(多平台)
注意:-dNOCACHE
需要防止 GhostScript 栅格化字体。eps2write
以前用作epswrite
。gs -q -dNOCACHE -dNOPAUSE -dBATCH -dSAFER -sDEVICE=eps2write -sOutputFile=output.eps input.pdf
还有以下工具。我没有测试过所有工具,有些会栅格化字体 :-( !
ImageMagick
convert
(可能使用 Ghostscript 本身。如果更灵活,可以手动调用它并可能避免问题。convert
实际上可能会栅格化 PDF!)convert input.pdf output.eps
pdf2ps
(使用 Ghostscript)+ps2eps
(自带 TeXLive)pdftops
(部分poppler
),使用-eps
开关进行EPS输出。
并且很可能还会有更多。
答案3
我尝试了很多方法,包括使用 Inkscape 进行转换和使用启用了 eps 标志的 pdftops。这两种方法在某些字体上都存在问题。在线工具和 ImageMagick 都以不可接受的方式对图像进行栅格化。
我发现最有效的转换过程是分两步进行:首先使用 pdftops 将 .pdf 转换为 .ps,这样可以保留字体,并且不会光栅化图像。接下来,使用 ps2eps(TeXLive 发行版附带)将 .ps 转换为 .eps。
我用来执行此操作的 bash 脚本:
#!/bin/bash
# Convert PDF to encapsulated PostScript
# usage: pdf2eps <filename.pdf>
# Remove .pdf extension from input
filename=$(echo $1 | sed 's/.pdf//')
# Convert into .eps
pdftops $filename.pdf $filename-temp.ps
ps2eps $filename-temp.ps
mv $filename-temp.eps $filename.eps
rm $filename-temp.ps
答案4
我认为将 PDF 转换为 eps 文件的最佳方法是使用传统的 PDF 阅读器(Acrobat 或 Okular)将 PDF 打印为扩展名为 eps 的文件。更具体地说,我使用了打印对话框窗口中的常用选项“打印到文件”,并将目标文件的扩展名更改为 eps。我试过了,效果很好,并且在很大程度上保留了文档的质量。