Как конвертировать с princeXML и PHP
Я следовал инструкциям в файле readme, но я не получил ни ошибок, ни вывода, ни чего-либо записанного в файл журнала. Итак, как правильно конвертировать HTML-файл в PDF с принцем, заранее спасибо.
ini_set('display_errors', '1');
error_reporting(-1);
require 'prince.php';
$exepath='/Users/agk/Desktop/prince/bin/prince';
$prince= new Prince($exepath);
if(!$prince) die("Prince instantiation failed");
$prince->setHTML(TRUE);
$prince->setLog('prince.log');
$xmlPath='/Applications/MAMP/htdocs/test/newhtml.html';
$msgs= array();
$convert=$prince->convert_file($xmlPath, $msgs);
if(!$convert)
{
echo 'nothing converted';
var_dump($msgs);
}
1 ответ
Я заметил, что вы используете MAMP - и именно здесь я столкнулся с той же проблемой - и вот как я ее исправил.
Мне удалось найти ответ где-нибудь еще на SO, касающийся запуска команд оболочки через PHP на MAMP, поэтому поделюсь этим.
Проблема в том, что DYLD_LIBRARY_PATH установлен в MAMP, а команда shell/shell_exec в PHP ищет в другом месте.
Как объяснено в оригинальном посте, это может быть не лучшим решением, но пока оно работает, и альтернативные предложения там не сработали.
Итак, попробуйте это:
Откройте файл /Applications/MAMP/Library/bin/envvars и прокомментируйте следующие строки, как показано ниже:
#DYLD_LIBRARY_PATH="/Applications/MAMP/Library/lib:$DYLD_LIBRARY_PATH"
#export DYLD_LIBRARY_PATH
затем перезапустите Apache
Это может испортить другие настройки MAMP, но я пока могу с этим смириться, так как мне нужно, чтобы это работало локально на моем Mac для тестирования, прежде чем я загружу все это на работающий сервер Linux.
Надеюсь это поможет.