php - PHP/Apache 中的 Inkscape 不会将字体呈现为 PNG

标签 php apache fonts inkscape

我今天发现的一个问题与此类似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/

相关文章:

php - 引号字符在数据库中的存储

PHP preg_match_all 导致 Apache 段错误

python - 为什么在 xvfb 下显示的文字更大?

c# - XNA - 新安装的字体不起作用?

php - 不工作 Laravel 多对多关系

php - 服务器上的欺骗时间

java - 公开托管 Apache Tomcat 问题时的文件上传

linux - Apache DirectoryRoot 配置?

.net - 在 .NET 中创建 Font 对象的成本

php - 备份mysql数据库取特定表