【问题标题】:GhostScript - text misplaced after converting from pdf to jpgGhostScript - 从 pdf 转换为 jpg 后文本错位
【发布时间】:2023-12-26 09:09:02
【问题描述】:

我正在使用 PHP exec() 和 GhostScript 将我的 PDF 文件转换为 JPG,但是,文本似乎存在问题 - 字母放错了位置。以下是结果示例截图:

这就是它在 PDF 上的样子 - http://screencast.com/t/vmF2kJdlts 这就是 JPG 上的结果 - http://screencast.com/t/BTFNMkrc

这是我正在使用的命令: exec("/usr/bin/gs -dNOPAUSE -sDEVICE=jpeg -sOutputFile=test.jpg -dJPEGQ=100 -r814x1149 -q test.pdf", $out, $rcode);

如果有帮助,PDF 本身是使用 dompdf 和自定义安装的字体生成的。

任何建议我做错了什么?

【问题讨论】:

标签: php pdf jpeg ghostscript


【解决方案1】:

使用 GS9.07win 转换后,文本看起来很好(文本以默认字体 Arial 呈现)。很可能是 OpenSans 和 OpenSans-Bold 字体替换或不完整的 glif 映射的问题。

【讨论】:

  • 所以基本上这意味着 GhostScript 有它自己的字体库,我需要在其中安装 OpenSans?
  • GS link -sFONTDIR=c:/windows/fonts -sCIDFMAP=lib/cidfmap
  • 我尝试在我的组件的帮助下转换您的 PDF 文件,图像看起来像原始 pdf。在您的情况下,唯一可能不正确的是 /W 宽度计算。(我的意思是 /W [0 [883] 32 [260] 33 [267] 34 [401] 35 [646] 36 [572] 37 [823] 38 ...)