Wie generiere ich PDFs in Laravel?
Verwenden Sie zum Generieren von PDF Barryvdh/Laravel-Dompdf. 1. Installieren Sie den Komponisten für Barryvdh/Laravel-Dompdf; 2. Optional veröffentlichen Konfiguration PHP Artisan Anbieter: Publish -Provider = "Barryvdh \ dompdf \ serviceProvider"; 3. Erstellen Sie eine Blattvorlage wie invoice.blade.php; 4. Verwenden Sie PDF :: LoadView ('pdf.invoice', compact ('Rechnung') im Controller, um es zu generieren; 5. Rufen Sie Download () zum Herunterladen oder Stream () zur Vorschau an. Sie können Optionen wie Papierrichtung, Ränder usw. festlegen; Beachten Sie, dass DompDF CSS nur begrenzt unterstützt und empfohlen wird, Laravel-Snappy mit WKHTMLTOPDF für komplexe Layouts zu verwenden.
Das Generieren von PDFs in Laravel ist eine häufige Voraussetzung für das Erstellen von Rechnungen, Berichten oder herunterladbaren Dokumenten. Der beliebteste und zuverlässigste Weg, dies zu tun, besteht darin, die Barryvdh/Laravel-Dompdf- oder Spipu/HTML2PDF -Pakete zu verwenden. Im Folgenden finden Sie die Schritte mit Dompdf , die weit verbreitet und mit Laravel gut integriert sind.

✅ barryvdh/laravel-dompdf
installieren und einrichten
Dieses Paket wickelt die Dompdf -Bibliothek ein und erleichtert das Erstellen von PDFs aus HTML -Ansichten in Laravel.
1. Installieren Sie über Komponisten
Der Komponist benötigt Barryvdh/Laravel-Dompdf
Hinweis: Stellen Sie für Laravel 9 sicher, dass Sie eine kompatible Version verwenden. Verwenden Sie
barryvdh/laravel-dompdf:^2.0
für Laravel 9.
2. (Optional) Veröffentlichen Sie die Konfiguration
PHP Artisan Vendor: Publish -Provider = "Barryvdh \ dompdf \ serviceProvider"
Dadurch wird eine Konfigurationsdatei unter config/dompdf.php
erstellt, in der Sie Einstellungen wie Standardpapiergröße, Schriftverzeichnis usw. anpassen können.
? Erstellen Sie ein PDF aus einer Klingenansicht
Sie können jede Blattvorlage in ein PDF umwandeln.

1. Erstellen Sie eine Klingenansicht
Zum Beispiel: resources/views/pdf/invoice.blade.php
<! DocType html> <html> <kopf> <title> Rechnung </title> <Styles> Körper {Schriftfamilie: Arial, sans-serif; } .Header {text-align: center; Randboden: 20px; } Tabelle {Breite: 100%; Grenzkollapse: Zusammenbruch; } th, td {Border: 1px solid #ccc; Polsterung: 8px; Text-Align: links; } .Total {Schriftgewicht: BOLD; } </style> </head> <body> <div class = "Header"> <h2> Rechnung #{{$ in Rechnung-> ID}} </h2> <p> Datum: {{$ in Rechnung-> Datum}} </p> </div> <tabelle> <kopf> <tr> <Th> Beschreibung </th> <Th> Menge </th> <Th> Preis </th> </tr> </head> <tbody> @foreach ($ in Rechnung-> Artikel als $ item) <tr> <td> {{$ item-> name}} </td> <td> {{$ item-> quantity}} </td> <td> $ {{$ item-> Preis}} </td> </tr> @endforach </tbody> </table> <p class = "Gesamt"> Gesamt: $ {{$ in Rechnung-> Gesamt}} </p> </body> </html>
2. Generieren Sie PDF im Controller
Verwenden Sie Barryvdh \ dompdf \ facade \ pdf; Öffentliche Funktion GeneratePDF ($ ID) { $ invoice = incrice :: mit ('item')-> findorfail ($ id); $ pdf = pdf :: loadView ('pdf.invoice', compact ('in Rechnung')); $ pdf-> download ('invoice_'. $ id. '.pdf'); }
Verwenden Sie
stream()
zur Vorschau im Browser:return $ pdf-> stream ('invoice.pdf');
? Zusätzliche Optionen
Sie können die PDF -Ausgabe anpassen:
$ pdf = pdf :: loadView ('pdf.invoice', $ data) -> Setpaper ('A4', 'Landschaft') -> setoption ('margin_bottom', 20); return $ pdf-> download ('report.pdf');
Häufige Optionen:
-
setPaper('a4', 'portrait')
oder'landscape'
-
setOption('dpi', 150)
-
setOption('defaultFont', 'sans-serif')
⚠️ Einschränkungen von Dompdf
Dompdf hat zwar einfach zu bedienen, hat einige Einschränkungen:
- Begrenzte CSS -Unterstützung (keine Flexbox, komplexe Layouts können brechen)
- Langsamer für große Dokumente
- Schriftarten müssen möglicherweise sorgfältig eingebettet werden
Für fortgeschrittenere PDFs sollten Sie sich in Betracht ziehen:
- Spipu/HTML2PDF (Better CSS -Unterstützung basiert auf TCPDF)
- WKHTMLTOPDF über
laravel-snappy
(verwendet Webkit, am besten für komplexe Layouts)
✅ Alternative: Verwenden Sie laravel-snappy
(WKHTMLTOPDF)
Installieren:
Der Komponist benötigt Barryvdh/Laravel-Snappy
Konfiguration veröffentlichen:
PHP Artisan Vendor: Publish -Provider = "Barryvdh \ Snappy \ serviceProvider"
Dann verwenden Sie:
Verwenden Sie Barryvdh \ Snappy \ facades \ snappypdf; Snappypdf :: LoadView ('pdf.invoice', $ data) -> download ('invoice.pdf');
Erfordert
wkhtmltopdf
auf dem Server.
Zusammenfassung
PDFs in Laravel zu generieren:
- ✅ Verwenden Sie Barryvdh/Laravel-Dompdf für einfache, schnelle PDFs von Blade Views
- ✅ Entwerfen Sie Ihr Layout in einer Blattvorlage
- ✅ Verwenden Sie
Pdf::loadView()
unddownload()
oderstream()
- ⚠️ Achten Sie auf CSS -Einschränkungen
- ? Betrachten Sie für komplexe Layouts Laravel-Snappy mit
wkhtmltopdf
Grundsätzlich ist es unkompliziert, sobald sich eingerichtet hat. Schreiben Sie einfach HTML und Laravel Dompdf macht den Rest.
Das obige ist der detaillierte Inhalt vonWie generiere ich PDFs in Laravel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

LaravelusesmonologtologMessagesViathelogfacade, withefaultLogStoredInstorage/logs/laravel.log.configurechannelsinconfig/logging.phptocontroloutput; thedefaultStackchannelaggatesMulthandleSlerslikesingle: WARNSLIKSLE:

InstalllaravelsanctumviaComposerandpublishitsFiles, thenrunmigrations.2.addthehasapitokenStHeTotheumodel..Definelogin, logout, andusereRroutesinapi.php, ussingtum'uth: santummiddleware

InstallpestViaCompoSerandInitializeInlarAvelTosetuptesting.2.CreateAreAturETestInTests/FeatureToValidesuser-Ausstattungsinteraktionen wie 简洁 Syntax 简洁 Syntax.

Toimplementful-textSearchInlaravel, FirstAddAfull-TextIndexinThemigRationusing $ table-> fulltext (['title', 'content']); dann verwendete wherefulText (['title', 'content'], $ query) InqueriesFicientssearching ;kapsulatelogicinamodelScopeScoperScrosscrosreuability und -Artrossibilnba

AcountrycanaccessallpostsThroughussersesusingHasManyThrough.Fexample, With Countries, Benutzer und PoststablesLinkedByforegnkeys, thecountryModeldefinesahasManyThroughrelationSiptopostviouser, EntringingIntirectdatarethriehrung-to-Manyrelatio

ToimplementapiauthenticationWithlaravelsanktum, youEeedtoSetuptoken-basierte authentifizierungsthatallowsspas, MobileApps und THERRT-PARTYSVICESTOSELEY Accessyourapi.SanktumProvidesalightweigroachByissuingapitokenthatcan

Der Laravel Resource Controller verarbeitet CRUD -Operationen schnell durch Rastful Routing, verwendet den Befehl Artisan, um Controller zu generieren und Ressourcenrouten zu registrieren, und kann alle Standardrouten in einer einzelnen Codezeile erstellen, die die Einschränkung von Aktionen unterstützt, die Middleware -Marke hinzufügt und die Benennung von Middleware -Benutzern und Maschinenverkehrsmodell -Bindung automatisch analysieren, die Entwicklung der Entwicklungswirkungsstrukturen verbessert und die Codestruktur speichern.

Verwenden Sie die Funktion "Redirect () Helfer, um die Umleitung im Laravel-Controller zu realisieren, wie z. Es wird empfohlen, benannte Routen zu verwenden, um die Wartbarkeit zu verbessern.
