Использование шрифта Georgia в PDFLib на Mac (El Capitan)
Я создаю файл PDF с использованием PDFLib, и, к сожалению, я не могу заставить его использовать файл Georgia. Я могу использовать практически любой другой шрифт, кроме этого.
Я попытался загрузить файл, а также изменить путь поиска, но он все еще не работает. Что я пробовал до сих пор:
$searchPath = "/Library/Fonts";
$p->set_option("searchpath= {" . $searchPath . "}");
$scoreFont = $p->load_font("Georgia", "unicode", "");
if ($scoreFont == 0){
die("Error: " . $p->get_errmsg());
}
Всякий раз, когда я включаю это, я получаю сообщение об ошибке "Страница не работает".
Я не уверен, что это уместно, но я вижу файл Georgia.ttf в каталоге Library/Font, но не в каталоге 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. И в этом каталоге находится файл Georgia.ttf.
Есть идеи?
Спасибо!
1 ответ
Быстрый тест с приведенным выше кодом и текущей версией PDFlib 9.0.7 на OSX работает нормально. Так что это может быть хорошей идеей, чтобы проверить файл журнала ошибок вашего веб-сервера /PHP. Возможно, ваш веб-сервер неправильно выдает сообщение в случае die().
Если вы не видите причину ошибки в файле журнала веб-сервера, вы можете включить ведение журнала PDFlib,
$p->set_option("logging {filename {/tmp/PDFlib.log}}");
как ваш первый звонок PDFlib. Тогда вы должны увидеть там, если load_font() fail (0) и возможное сообщение об ошибке.
РЕДАКТИРОВАТЬ: спасибо, что поделились более подробной информацией из ваших файлов журналов. Вход
Tue Aug 09 11:23:48 2016] [notice] child pid 11501 exit signal Segmentation fault (11)
может указывать на проблему HostFont на Mac в сочетании с PHP и веб-сервером. Можете ли вы отключить поддержку hostfont. В образцах PHP PDFlib этот вызов закомментирован, поэтому просто включите вызов:
/* Enable the following line if you experience crashes on OS X
* (see PDFlib-in-PHP-HowTo.pdf for details):
*/
$p->set_option("usehostfonts=false");