我今天发现的一个问题与此类似unanswered problem ;虽不尽相同,但原因可能相同。
我正在使用 inkscape
将 SVG 文件渲染为 PNG 或 PDF。在大多数情况下,我打算使用 Gearman 在后台呈现这些,但现在我正在 PHP/Apache 进程中创建一些缩略图。似乎如果在 Apache 进程内调用 inkscape(通过 PHP 的 exec
),它找不到需要呈现的字体。因此,图形元素渲染良好,但任何文本元素都不会绘制在 PNG 输出中。
我怀疑 Apache 内部的 CLI 环境与我常用的 bash 控制台不同,这意味着无法看到字体。我在 OS X 10.6.8 上。有什么想法吗?
编辑:根据评论,我在 Apache 和 Gearman 中捕获了 php -i
,并将第一个与第二个进行了比较(因此理论上应用 diff 将使其工作)。 result is here .
编辑 2:我已经在使用 system
的两种环境中尝试了 convert -list font
- 完全没有区别。
最佳答案
正如上面的评论所确定的,这是由环境差异引起的——HOME
env var 在执行过程中的设置不同。使用proc_open
而不是简单的 exec
可以更精确地控制所述过程并明确设置 env var 解决了这个问题。
关于php - PHP/Apache 中的 Inkscape 不会将字体呈现为 PNG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9967217/