In der folgenden Tutorial-Kolumne von Laravel erfahren Sie, wie Sie Laravel-snappy zum Exportieren von PDFs verwenden. Ich hoffe, dass es für Freunde hilfreich ist, die es benötigen!
Vorwort
Es gibt viele Artikel zur Verwendung von Laravel-snappy im Forum, aber viele davon konzentrieren sich nur auf die Installation und grundlegende Beispiele. Sie erklären weder die Verwendung tatsächlicher Anwendungen noch beantworten sie einige Fragen und Zweifel. Also, lasst uns das klären und als Protokoll aufbewahren.
Installation
Nehmen Sie Ubuntu als Beispiel
1. Führen Sie die Installation wkhtmltopdf aus:
composer require h4cc/wkhtmltopdf-amd64 0.12.x composer require h4cc/wkhtmltoimage-amd64 0.12.x
Wie der Name schon sagt, werden wkhtmltopdf bzw. wkhtmltoimage installiert.
2. Kopieren Sie wkhtmltopdf in das Verzeichnis des ausführbaren Ubuntu-Befehls
sudo cp vendor/h4cc/wkhtmltoimage-amd64/bin/wkhtmltoimage-amd64 /usr/local/bin/ sudo cp vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 /usr/local/bin/ //并使其可执行: sudo chmod +x /usr/local/bin/wkhtmltoimage-amd64 sudo chmod +x /usr/local/bin/wkhtmltopdf-amd64
3. Fügen Sie ServiceProvider zum Provider-Array in config/app.php hinzu Aliases-Array in config/app.php
composer require barryvdh/laravel-snappy
6. Führen Sie die generierte Konfigurationsdatei aus
Barryvdh\Snappy\ServiceProvider::class
Sie können sehen, dass die Standardkonfigurationsdatei config/snappy.php ist:
'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class, 'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,
Beachten Sie, dass es hier eine Grube gibt, die Standardbinärdatei Konfiguration Für /usr/local/bin/wkhtmltopdf und /usr/local/bin/wkhtmltoimage wird bei der ersten Verwendung eine Fehlermeldung /usr/local/bin/wkhtmltopdf angezeigt. Dies liegt daran, dass unter Linux system, wkhtmltopdf und Die tatsächlichen Pfade und Namen von wkhtmltoimage sind: /usr/local/bin/wkhtmltopdf-amd64 und /usr/local/bin/wkhtmltoimage-amd64.
Daher müssen Sie die Konfigurationsinformationen wie folgt ändern:php artisan vendor:publish --provider="Barryvdh\Snappy\ServiceProvider"
return [ 'pdf' => [ 'enabled' => true, 'binary' => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf'), 'timeout' => false, 'options' => [], 'env' => [], ], 'image' => [ 'enabled' => true, 'binary' => env('WKHTML_IMG_BINARY', '/usr/local/bin/wkhtmltoimage'), 'timeout' => false, 'options' => [], 'env' => [], ], ];
Viele Blogs haben nicht erwähnt, dass in Methode 1 ein solcher Fehler gemeldet wird:
'pdf' => [ ... 'binary' => env('WKHTML_PDF_BINARY', '/usr/local/bin/wkhtmltopdf-amd64'), ... ], 'image' => [ ... 'binary' => env('WKHTML_IMG_BINARY', '/usr/local/bin/wkhtmltoimage-amd64'), ... ],
Ausführen:
//使用方法1 $pdf = \PDF::loadView('welcome', $data); return $pdf->download('welcome.pdf'); //使用方法2 $html = '<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>'; $pdf = \PDF::loadHTML($html); return $pdf->inline();
Reparieren abgeschlossen, exportieren Sie die Begrüßungsseite.
Wenn Sie zum Speichern die Methode save() verwenden, wird die Datei standardmäßig im Ordner /public gespeichert. Wenn der Dateiname derselbe ist, wird beim zweiten Speichern angezeigt, dass die Datei bereits vorhanden ist.
Das obige ist der detaillierte Inhalt vonEin Artikel, der erklärt, wie man PDF mit Laravel-snappy exportiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!