MPDF-QR-Code wird bei Verwendung der mpdf/qrcode-Bibliothek nicht in PDF angezeigtPhp

PHP-Programmierer chatten hier
Guest
 MPDF-QR-Code wird bei Verwendung der mpdf/qrcode-Bibliothek nicht in PDF angezeigt

Post by Guest »

Ich verwende mPDF zusammen mit der mpdf/qrcode-Bibliothek, um QR-Codes zu generieren und sie in PDF-Dokumente einzubetten. Diese PDFs werden aus Daten generiert, die mit PHPSpreadsheet aus XLS-Dateien extrahiert wurden. Der gesamte Prozess des Einlesens der XLS-Dateien und der Generierung der PDFs funktioniert korrekt, mit Ausnahme der Anzeige des QR-Codes. Obwohl ein scheinbar gültiges QR-Code-Bild erstellt wurde, wird es nicht im endgültigen PDF angezeigt. Das PDF wird generiert, ohne dass von mPDF Fehler gemeldet werden, aber der Bereich, in dem sich der QR-Code befinden sollte, erscheint leer.
Ich habe zwei Hauptmethoden ausprobiert, um das QR-Code-Bild in das PDF einzufügen:
  • Direkte Base64-Kodierung: Ich erzeuge das QR-Code-Bild als PNG mit mpdf/qrcode, kodiere es dann in Base64 und verwende den URI data:image/ png;base64,.... innerhalb der mPDF->Image()-Funktion.

Code: Select all

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);
  • Verwenden einer temporären Datei: Ich speichere das generierte QR-Code-Bild mit tempnam() und file_put_contents() in einer temporären Datei und dann Verwenden Sie den Dateipfad mit mPDF->Image(). Nachdem ich das PDF erstellt habe, lösche ich die temporäre Datei.

Code: Select all

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);
In beiden Fällen wird das PDF korrekt generiert, der QR-Code erscheint jedoch nicht. Ich habe überprüft, dass die Variable $pdfUrl die richtige URL enthält. Ich verwende mPDF Version 8.2.1, mpdf/qrcode Version 1.2 und PHPSpreadsheet Version 3.7, ausgeführt unter PHP 8.3.14. Die Daten zum Generieren der PDFs werden mit PHPSpreadsheet korrekt aus XLS-Dateien extrahiert, und der Rest des PDF-Inhalts wird ohne Probleme generiert.
Ich habe auch versucht, die Positions- und Größenparameter in mPDF anzupassen ->Image(), aber das hat das Problem nicht gelöst. GD- und MBstring-Erweiterungen sind aktiviert

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post