QR-код mPDF не отображается в PDF с использованием библиотеки mpdf/qrcodePhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 QR-код mPDF не отображается в PDF с использованием библиотеки mpdf/qrcode

Сообщение Anonymous »

Я использую mPDF вместе с библиотекой mpdf/qrcode для создания QR-кодов и встраивания их в PDF-документы. Эти PDF-файлы создаются на основе данных, извлеченных из файлов XLS с помощью PHPSpreadsheet. Весь процесс чтения файлов XLS и создания PDF-файлов работает правильно, за исключением отображения QR-кода. Несмотря на создание изображения, которое выглядит действительным QR-кодом, оно не отображается в окончательном PDF-файле. PDF-файл создается без ошибок, о которых сообщает mPDF, но область, где должен быть QR-код, отображается пустой.
Я попробовал два основных метода вставки изображения QR-кода в PDF-файл:
  • Прямое кодирование Base64: я генерирую изображение QR-кода в формате PNG с использованием mpdf/qrcode, затем кодирую его в Base64 и использую данные URI: image/ png;base64,.... внутри функции mPDF->Image().

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

use Mpdf\QrCode\QrCode;
use Mpdf\Output;

$qrCode = new QrCode($pdfUrl);
$output = new Output\Png();
$qrCodeImage = $output->output($qrCode, 300);
$mpdf->Image('data:image/png;base64,' . base64_encode($qrCodeImage), 10, 10, 40, 40);
  • Использование временного файла: я сохраняю сгенерированное изображение QR-кода во временный файл с помощью tempnam() и file_put_contents(), а затем используйте путь к файлу с помощью mPDF->Image(). После создания PDF-файла я удаляю временный файл.

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

use Mpdf\QrCode\QrCode;
use Mpdf\Output;

$qrCode = new QrCode($pdfUrl);
$output = new Output\Png();
$qrCodeImage = $output->output($qrCode, 300);

$tempFile = tempnam(sys_get_temp_dir(), 'qr');
file_put_contents($tempFile, $qrCodeImage);
$mpdf->Image($tempFile, 10, 10, 40, 40);
unlink($tempFile);
В обоих случаях PDF-файл создается правильно, но QR-код не отображается. Я проверил, что переменная $pdfUrl содержит правильный URL-адрес. Я использую mPDF версии 8.2.1, mpdf/qrcode версии 1.2 и PHPSpreadsheet версии 3.7, работающие на PHP 8.3.14. Данные для создания PDF-файлов правильно извлекаются из файлов XLS с помощью PHPSpreadsheet, а остальная часть содержимого PDF генерируется без проблем.
Я также пробовал настроить параметры положения и размера в mPDF. ->Image(), но это не решило проблему. Расширения GD и mbstring включены

Подробнее здесь: https://stackoverflow.com/questions/793 ... de-library
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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