composer Установка php wkhtmltopdf на локальный сервер

Эй, ребята, у меня возникли проблемы с установкой wkhtmltopdf и php wkhtmltopdf. Сначала мне нужно поместить это на мой локальный сервер, но позже его нужно будет установить на веб-сервере. Сначала я установил wkhtmltopdf в папку моего проекта на веб-сайте, затем я установил php wkhtmltopdf1 через композитора, который я никогда не использовал раньше. Так что я не совсем уверен, что установил его правильно, но это кажется простым, и я не думаю, что это обязательно проблема. Когда я запускаю тестовый скрипт php, я получаю следующее сообщение об ошибке:

Предупреждение: proc_open (): Ошибка CreateProcess, код ошибки — 2 в C: \ xampp \ htdocs \ delete \ vendor \ mikehaertl \ php-shellcommand \ src \ Command.php в строке 313
Не удалось запустить команду cd «wkhtmltopdf \ bin» && wkhtmltopdf.exe «C: \ Users \ Robert \ AppData \ Local \ Temp \ tmpE437.tmp.html» «C: \ Users \ Robert \ AppData \ Local \ Temp \ tmpE438.tmp.pdf»

Вот мой тестовый код:

 /**
* Register Composer Autloader
*/
define('VENDOR_DIR', __DIR__ . '\vendor' . DIRECTORY_SEPARATOR);

if (!is_file(VENDOR_DIR . 'autoload.php')) {
throw new \RuntimeException(
'[Error] Bootstrap: Could not find "vendor/autoload.php".' . PHP_EOL .
'Did you forget to run "composer install --dev"?' . PHP_EOL
);
}

require VENDOR_DIR . 'autoload.php';

/**
* Use library
*/

use mikehaertl\wkhtmlto\Pdf;$pdf = new Pdf(array(
'binary' => 'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe',
'ignoreWarnings' => true,
'commandOptions' => array(
'procEnv' => array(
// Check the output of 'locale' on your system to find supported languages
'LANG' => 'en_US.utf-8',
),
'escapeArgs' => false,
'procOptions' => array(
// This will bypass the cmd.exe which seems to be recommended on Windows
'bypass_shell' => true,
// Also worth a try if you get unexplainable errors
'suppress_errors' => true,
),
),
));

$pdf->addPage('<html>
<head>
</head>
<body>

<div id="print-area">
<div id="header">
This is an example header.
</div>
<div id="content">
<h1>Demo</h1>
<p>This is example content</p>
</div>
<div id="footer">
This is an example footer.
</div>
</div>

</body>
</html>');

if (!$pdf->saveAs('page.pdf')) {
echo $pdf->getError();
}

Кто-нибудь знает, в чем может быть проблема? Мне нужно выполнить wkhtmltopdf из локального сервера, потому что он должен работать в Интернете. Я нашел другую полезную тему переполнения стека, на которую я буду ссылаться2, Я прошел все шаги, но не смог выполнить его должным образом. Любая помощь приветствуется! 🙂

php wkhtmltopdf
переполнение стека — установка php wkhtmltopdf

0

Решение

Удалить .exe из двоичного пути команды

добавлять ‘useExec’ => true вариант

Проверьте этот код:

include __DIR__ . '/../vendor/autoload.php';

use mikehaertl\wkhtmlto\Pdf;

$pdf = new Pdf(array(
'binary' => 'C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf',
'ignoreWarnings' => true,
'commandOptions' => array(
'useExec' => true,
'procEnv' => array(
'LANG' => 'en_US.utf-8',
),
'escapeArgs' => false,
'procOptions' => array(
'bypass_shell' => true,
'suppress_errors' => true,
),
),
));

$pdf->addPage('<html><body><h1>test</h1></body></html>');

if (!$pdf->saveAs('page.pdf')) {
echo $pdf->getError();
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]