在Mac上使用PDFLib中的Georgia字体(El Capitan)

时间:2016-08-09 15:41:09

标签: pdf fonts pdflib

我正在使用PDFLib创建PDF文件,不幸的是,我似乎无法使用它来使用Georgia文件。除了那个之外,我几乎可以使用任何其他字体。

我尝试加载文件,以及更改搜索路径,但它似乎仍然无法正常工作。到目前为止我尝试过的事情:

$searchPath = "/Library/Fonts";
$p->set_option("searchpath= {" . $searchPath . "}");
$scoreFont = $p->load_font("Georgia", "unicode", "");
if ($scoreFont == 0){
    die("Error: " . $p->get_errmsg());
}

每当我加入它时,它会给我一个" Page不能正常工作"错误。

我不确定它是否相关,但我确实在Library / Font目录中看到了Georgia.ttf文件,但没有看到System / Library / Font目录。任何人都有这方面的经验吗?任何帮助将不胜感激。

提前谢谢!

修改

我检查了我的apache日志,我发现有一个错误,列为:

Tue Aug 09 11:23:48 2016] [notice] child pid 11501 exit signal Segmentation fault (11)

另外,我检查了PDFLib日志文件,我看到了:

PDF_load_font[----------------------------------------------------------------   --------------]
[ PDFlib 9.0.5  PHP5 binding on Mac OS X-10.6 64 (le) 2016-08-09 11:23:48      ]
[ Classes: api=1 warning=1                                                     ]
[ Enter in vi to compile it:                                                   ]
[ %s/)$/);/g   and   %s/"(NULL)"/NULL/g   and   %s/\[[^]]*\]//g                ]
[ Program should run on a little-endian platform                               ]
[------------------------------------------------------------------------------]

PDF_set_option(p_0x1097619a8, "searchpath= {/Library/Fonts}")
[New category:resource "SearchPath:/usr/local/PDFlib"]
[New category:resource "SearchPath:/usr/local/PDFlib/PDFlib"]
[New category:resource "SearchPath:/usr/local/PDFlib/PDFlib/9.0"]
[New category:resource "SearchPath:/usr/local/PDFlib/PDFlib/9.0/resource/cmap"]
[New category:resource   "SearchPath:/usr/local/PDFlib/PDFlib/9.0/resource/codelist"]
[New category:resource "SearchPath:/usr/local/PDFlib/PDFlib/9.0/resource/fonts"]
[New category:resource "SearchPath:/usr/local/PDFlib/PDFlib/9.0/resource/glyphlst"]
[New category:resource "SearchPath:/usr/local/PDFlib/PDFlib/9.0/resource/icc"]
[New category:resource "SearchPath:/Users/{username}/PDFlib"]
[New category:resource "SearchPath:/Users/{username}/PDFlib/PDFlib"]
[New category:resource "SearchPath:/Users/{username}/PDFlib/PDFlib/9.0"]
[New category:resource "SearchPath:/Users/{username}/PDFlib/PDFlib/9.0/resource/cmap"]
[New category:resource "SearchPath:/Users/{username}/PDFlib/PDFlib/9.0/resource/codelist"]
[New category:resource "SearchPath:/Users/{username}/PDFlib/PDFlib/9.0/resource/fonts"]
[New category:resource "SearchPath:/Users/{username}/PDFlib/PDFlib/9.0/resource/glyphlst"]
[New category:resource "SearchPath:/Users/{username}/PDFlib/PDFlib/9.0/resource/icc"]
[New category:resource "SearchPath:/Library/Fonts"]

我不确定这些条目中的任何一个是什么意思。在PDFLib日志中,唯一存在于最后一个目录中的目录是/ Library / Fonts one。在该目录中是Georgia.ttf文件。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

使用上面的代码进行快速测试,OSX上的当前PDFlib 9.0.7工作正常。因此,检查Web服务器/ PHP的错误日志文件可能是个好主意。也许你的网络服务器没有正确地给出die()案例中的消息。

如果在Web服务器日志文件中没有看到任何错误原因,则可以启用PDFlib日志记录,

$p->set_option("logging {filename {/tmp/PDFlib.log}}");

作为您的第一个PDFlib调用。然后你应该看到,如果load_font()失败(0)和可能的错误消息。

编辑:感谢您从日志文件中分享更多详细信息。条目

Tue Aug 09 11:23:48 2016] [notice] child pid 11501 exit signal Segmentation fault (11)

可能表明Mac上的HostFont问题与PHP和Webserver结合使用。你可以请禁用hostfont支持。在PDFlib PHP示例中,此调用已注释掉,因此只需启用调用:

 /* Enable the following line if you experience crashes on OS X
  * (see PDFlib-in-PHP-HowTo.pdf for details):
  */
  $p->set_option("usehostfonts=false");