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);
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