我有 PDF 图形,我想删除其中的字体。文件的所有其他属性都应保留(例如大小等)。输出文件也应为 PDF 格式。文本本身应转换为轮廓。
我可以在将 PDF 图形包含在 pdftex 文档中时执行此操作吗?或者我可以使用 magic ghostscript 命令吗?
答案1
下列的这个答案,你应该对新的(9.15+)ghostscript 使用以下命令
*尼克斯
gs -dNoOutputFonts -sDEVICE=pdfwrite -o vectorized_file.pdf file.pdf
赢
gswin32 -dNoOutputFonts -sDEVICE=pdfwrite -o vectorized_file.pdf file.pdf
答案2
在我的例子中(pdftops 0.18.4,GPL Ghostscript 9.05),按照上述答案生成的 PDF 仍然包含字体,并且文本未转换为曲线。但是,我在这个马来西亚 LaTeX 用户组网站对我有用。这是我使用的脚本:
#!/bin/sh
if [ "x$1" = "x" -o "x$2" = "x" ]; then
echo Usage: `basename "$0"` "<input.pdf>" "<output.pdf>" >&2
exit 1
fi
gs -sDEVICE=pswrite -dNOCACHE -sOutputFile=- -q -dbatch \
-dNOPAUSE -dQUIET "$1" -c quit | ps2pdf - "$2"
当然,pdfcrop
如果需要的话,仍然可以添加一个步骤。
如果出现错误,请使用 -sDEVICE ps2write
答案3
(最初作为 OP ronszon 问题的一部分发布)
问题的解决方案是从 PDF 转换为 PS,从 PS 转换为 PDF,然后裁剪最终的 PDF 文件。
pdftops myfile.pdf
ps2pdf myfile.ps
pdfcrop myfile.pdf
答案4
Ghostscript 中的输出驱动程序-sDEVICE=pswrite
已自 2010 年 12 月 15 日起已弃用. 在 Ghostscript 版本 >= 9.09 中,使用ps2write
或eps2write
。