Я использую этот пакет
https://github.com/barryvdh/laravel-snappy
Вот код каждой функции:
Код бюджетной печати:
Код: Выделить всё
$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
Мобильная версия