Sza*_*lcs 15 pdf fonts pdf-generation ghostscript mupdf
我正在寻找一种方法来"概述" PDF文件中的所有文本/字体,即将它们转换为曲线.
我更愿意这样做而无需将PDF转换为PostScript并返回.此外,我想使用可以从命令行自动执行的免费轻量级跨平台工具,例如Ghostscript或MuPDF.
Kur*_*fle 29
是的,你可以使用Ghostscript来实现你想要的.
您需要完成两个步骤:
将PDF转换为PostScript文件,但使用相对未知参数的副作用:调用它-dNOCACHE.这会将所有使用的字体转换为轮廓形状:
gs -o somepdf.ps -dNOCACHE -sDEVICE=pswrite somepdf.pdf
Run Code Online (Sandbox Code Playgroud)将PS转换回PDF(并且可能再次删除中间PS):
gs -o somepdf-with-outlines.pdf -sDEVICE=pdfwrite somepdf.ps
rm somepdf.ps
Run Code Online (Sandbox Code Playgroud)这种方法长期不可靠,因为Ghostscript开发人员声称-dNOCACHE可能不会出现在未来的版本中.
注意:生成的PDF很可能比原始PDF大.此外,如果没有其他命令行参数,原始PDF中的所有图像都可能会根据Ghostscript内置默认值进行处理.这可能导致不必要的副作用.通过添加更多命令行参数可以避免这些副作用.
Ghostscript版本9.15(2014年9月发布)支持新的命令行参数:
-dNoOutputFonts
Run Code Online (Sandbox Code Playgroud)
这将导致输出设备pdfwrite,ps2write并eps2write "将'字形变平'为'基本'标记操作(而不是将字体写入输出)".
这意味着:可以避免为9.15之前版本描述的两个步骤.只需一个命令即可实现所需的结果:
gs -o file-with-outlines.pdf -dNoOutputFonts -sDEVICE=pdfwrite file.pdf
Run Code Online (Sandbox Code Playgroud)
注意:同样的警告是正确的,如第一部分中已经提到的.如果您的PDF包含图像,则上面的简单命令行可能会产生不必要的副作用.要避免这些,您需要添加更多特定参数.