【问题标题】:Ghostscript loses font while extracting the page from PDFGhostscript 在从 PDF 中提取页面时丢失字体
【发布时间】:2012-06-26 12:59:38
【问题描述】:

我在可用命令行的帮助下将 PDF 拆分为页面:

for G in $(seq 1 $(pdfinfo 47.pdf | sed -n 's/Pages:[^0-9]*\([0-9]*\).*/\1/p')) ; do 
   gs \
    -dSAFER \
    -sDEVICE=pdfwrite \
    -dBATCH \
    -dNOPAUSE \
    -dFirstPage=$G \
    -dLastPage=$G \
    -o $G.pdf \
     47.pdf ;
done

但有些页面显示没有文字(图形仍然存在)

所以,我尝试从 PDF 中提取嵌入字体:

gs -q -dNODISPLAY extractFonts.ps -c "(47.pdf) extractFonts quit"

这些字体我已安装在系统字体文件夹中。

之后,我重复拆分,没有发生任何变化。

如何确保正确提取页面,我现在不知道。

【问题讨论】:

  • 从 PDF 中提取字体以按照您的方式重新使用它们通常不会像您预期的那样工作。大多数 PDF 嵌入字体是仅子集(不是包含所有字形的完整字体),并且在提取后它们将具有不同的名称(通常在原始名称的基础上加上 6 个字母的前缀),并且他们也会有非标准的编码......所有这些都使得无法以可靠的方式重新使用提取的字体尸体。

标签: pdf ghostscript


【解决方案1】:

Ghostscript 和 pdfwrite 实际上并不是为了拆分 PDF 文件,还有其他工具可能会更好,为什么不试试 pdftk 呢?

如果您真的想使用 Ghostscript,那么我建议您从 Git 存储库中获取最新的前沿代码,在该代码中,pdfwrite 设备将接受包含“%d”的输出文件名,并将每页写一个文件。

除此之外,在我看来,您最有可能只是遇到了一个错误,而不是“丢失字体”,如果字体丢失,文本仍然存在,但字体不同。您使用的是哪个版本的 GS?

【讨论】:

  • GPL Ghostscript 9.04 (2011-08-05)
  • 嗯,这是“合理的”最近,因为它不到一年的历史。但是当前版本是 9.05,下一个版本将在大约 2-3 个月内发布。我建议您找到通过 pdfwrite 传递时出现问题的单页文件,用当前版本检查,如果仍然出现问题,请在bugs.ghostscript.com 提出错误报告,附加文件并指定命令行用于重现问题。
  • @KenS:很高兴听到 '%d' 的优点也将很快出现在 pdfwrite 中 :-) 太好了!
猜你喜欢
  • 1970-01-01
  • 2010-11-17
  • 1970-01-01
  • 2016-01-22
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多