Heim > PHP-Framework > Laravel > Hauptteil

Ein Artikel, der erklärt, wie man PDF mit Laravel-snappy exportiert

藏色散人
Freigeben: 2021-09-01 08:53:23
nach vorne
2972 Leute haben es durchsucht

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
Nach dem Login kopieren

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
Nach dem Login kopieren

3. Fügen Sie ServiceProvider zum Provider-Array in config/app.php hinzu Aliases-Array in config/app.php

composer require barryvdh/laravel-snappy
Nach dem Login kopieren

6. Führen Sie die generierte Konfigurationsdatei aus

Barryvdh\Snappy\ServiceProvider::class
Nach dem Login kopieren

Sie können sehen, dass die Standardkonfigurationsdatei config/snappy.php ist:

'PDF' => Barryvdh\Snappy\Facades\SnappyPdf::class,
'SnappyImage' => Barryvdh\Snappy\Facades\SnappyImage::class,
Nach dem Login kopieren

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"
Nach dem Login kopieren
Ein Artikel, der erklärt, wie man PDF mit Laravel-snappy exportiertMit der Verwendung von

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'     => [],
    ],
];
Nach dem Login kopieren
beginnen

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'),
        ...
    ],
Nach dem Login kopieren

Ausführen:

//使用方法1
$pdf = \PDF::loadView('welcome', $data);
return $pdf->download('welcome.pdf');
//使用方法2
$html = &#39;<html><head><meta charset="utf-8"></head><h1>订单id</h1><h2>12346546</h2></html>&#39;;
$pdf = \PDF::loadHTML($html);
return $pdf->inline();
Nach dem Login kopieren

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!

Verwandte Etiketten:
pdf
Quelle:learnku.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage