Параметры кэширования Wkhtmltopdf в очередях заданий Laravel, вызывающие проблемы с конфигурациейPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Параметры кэширования Wkhtmltopdf в очередях заданий Laravel, вызывающие проблемы с конфигурацией

Сообщение Anonymous »

Я использую wkhtmltopdf в своем приложении Laravel для создания PDF-файлов. У меня есть две разные функции: одна для печати бюджетов, а другая для печати счетов. Они выполняются как очереди заданий. Вот код каждой функции:
Код бюджетной печати:

Код: Выделить всё

$pdf = WKPDF::loadHtml($pdf_html);

$pdf->setPaper('a4');
$pdf->setOption('disable-smart-shrinking', true);
$pdf->setOption('margin-top', 0);
$pdf->setOption('margin-right', 0);
$pdf->setOption('margin-bottom', 0);
$pdf->setOption('margin-left', 0);
$pdf->setOption('encoding', "UTF-8");
$pdf->setOption('orientation', 'landscape');
$pdf->setOption('load-error-handling', "ignore");
$pdf->setOption('enable-local-file-access', true);

$pdf->save(($upload_path) . '/' . $file_name);
Код печати счетов:

Код: Выделить всё

$pdf = WKPDF::setOptions(['dpi' => 100, 'enable-local-file-access' => true, 'load-error-handling' => "ignore", 'encoding' => "UTF-8",])
->setPaper('a4', 'portrait')
->loadHTML($pdf_html)
->save($file_upload_path . '/' . $pdf_file_name);
Проблема:
Когда я создаю бюджетный PDF-файл, он устанавливает поля равными 0, как указано в настройке. Однако эта конфигурация, похоже, сохраняется и влияет на процесс печати банкнот, в котором используются другие настройки полей и ориентации.
Эта проблема решается, когда я перезапускаю работника очереди вручную, но я хочу избежать перезапуск работника каждый раз. Похоже, что wkhtmltopdf кэширует или сохраняет глобальные настройки, вызывая конфликты между заданиями.
Что я пробовал:Я проверил, что каждое задание инициализирует WKPDF независимо, но проблема не устранена.
Перезапуск рабочего процесса временно устраняет проблему, но это не идеальное решение.
Функция setOptions() в коде печати счета похоже, не отменяет кэшированные параметры из кода бюджетной печати.
Что мне нужно:
Как я могу гарантировать, что каждое задание выполняется с свою собственную конфигурацию wkhtmltopdf, на которую не влияют предыдущие задания? Есть ли способ сбросить или изолировать конфигурации wkhtmltopdf в очередях заданий Laravel?

Подробнее здесь: https://stackoverflow.com/questions/793 ... ion-issues
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»