如何将 PDF 文件中的文本从字体/文本转换为轮廓?

如何将 PDF 文件中的文本从字体/文本转换为轮廓?

我有 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 中,使用ps2writeeps2write

相关内容