IIS выводит результат «Ошибка QFontEngineWin» при запуске процесса wkhtmltopdf из PHP - PullRequest
1 голос
/ 11 июля 2019

Мой сервер IIS при запуске скрипта php приводит к выводу QFontEngine failure.

В основном у меня есть веб-приложение laravel, которое генерирует pdf из html, которое использует что-то подобное за кулисами

<?php 

use Symfony\Component\Process\Exception\ProcessFailedException;
use Symfony\Component\Process\Process;
require __DIR__ . '/vendor/autoload.php';


$process = Process::fromShellCommandline('wkhtmltopdf --lowquality "C:\WINDOWS\TEMP\test.html" "C:\WINDOWS\TEMP\test.pdf"', null, null);
$process->run();

// executes after the command finishes
if (!$process->isSuccessful()) {
    throw new ProcessFailedException($process);
}

echo $process->getOutput();

Если запустить следующий скрипт через веб-сервер IIS, вывод этой команды будетследующим образом:

Loading pages (1/6)
[> ] 0%
[======> ] 10%
[==============================> ] 50%
QFontEngine::loadEngine: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
QFontEngineWin: GetTextMetrics failed ()
[============================================================] 100%
Counting pages (2/6) 
[============================================================] Object 1 of 1
Resolving links (4/6) 
[============================================================] Object 1 of 1
Loading headers and footers (5/6) 
Printing pages (6/6)
[> ] Preparing
[============================================================] Page 1 of 1
Done 

Если я запускаю этот скрипт внутри терминала следующим образом: php index.php нет ошибок, таких как сбой QFontEngine и задание выполнено успешно.

Я проверил эту проблему " Ошибка запуска 32-битного исполняемого файла в 64-битной Windows", но моя служба шрифтов работает, поэтому я даже не знаю, где еще искать разрешение?

Заранее спасибо.

1 Ответ

0 голосов
/ 11 июля 2019

Я знаю из дистрибутивов Linux, что wkHtmlToPdf имеет две скомпилированные формы: одна, которая работает без графического терминала («безголовый»), и другая, которая не работает. Я могу предположить, что у вас есть тот, который не работает без графического терминала, и что среда IIS запускает wkhtmltopdf в режиме без окон (то есть без графического терминала). Вы пробовали двоичные файлы на https://wkhtmltopdf.org/downloads.html? Отсутствующие метрики соответствуют отсутствию контекста отображения для получения метрик.

...