„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Generieren von PDF-Dokumenten in Laravel

Generieren von PDF-Dokumenten in Laravel

Veröffentlicht am 16.08.2024
Durchsuche:745

Generating PDF documents in Laravel

Laravel und DomPDF: Schritt-für-Schritt-Anleitung zum Generieren von PDF-Dokumenten mit Bildern und CSS

Das Erstellen von PDF-Dokumenten ist eine häufige Anforderung in Webanwendungen, insbesondere zum Erstellen von Rechnungen, Quittungen, Zertifikaten, Tickets und verschiedenen Berichten. In diesem umfassenden Tutorial befassen wir uns mit der Verwendung von Laravel und DomPDF zum Generieren von PDF-Dokumenten mit Bildern und CSS. Wir behandeln Konfigurationsoptionen, Designüberlegungen, Ausgabegröße, Leistung und Datenbankabfragen. Darüber hinaus besprechen wir Tipps und Tricks zum Umgang mit Seitenumbrüchen, zum Laden von Bildern mit Base64 und mehr.

Voraussetzungen

Bevor wir beginnen, stellen Sie sicher, dass Sie Folgendes installiert haben:

  • PHP >=8.2
  • Komponist 2
  • Laravel 10

Einführung

DomPDF ist eine beliebte PHP-Bibliothek, mit der Sie PDF-Dokumente aus HTML-Inhalten generieren können. Es unterstützt CSS-Stil, Bilder und verschiedene Konfigurationsoptionen. Durch die Integration von DomPDF mit Laravel können Sie mithilfe von Blade-Vorlagen und den leistungsstarken Funktionen von Laravel ganz einfach anspruchsvolle PDF-Dokumente erstellen.

Andere beliebte PDF-Bibliotheken sind TCPDF, FPDF und Snappy.

DomPDF wird jedoch aufgrund seiner einfachen Integration und seines robusten Funktionsumfangs häufig verwendet.

In diesem Tutorial gehen wir durch den Prozess der Einrichtung eines Laravel-Projekts, der Konfiguration von DomPDF, der Erstellung eines Controllers für die PDF-Generierung, der Gestaltung einer Blade-Vorlage für den PDF-Inhalt, des Hinzufügens von Routen und der Optimierung der Leistung. Außerdem besprechen wir erweiterte Konfigurationsmöglichkeiten und geben Tipps und Tricks zum Generieren hochwertiger PDF-Dokumente.

Annahmen

In diesem Tutorial wird davon ausgegangen, dass Sie über grundlegende Kenntnisse von Laravel und PHP verfügen. Wenn Sie neu bei Laravel sind, sollten Sie die offizielle Laravel-Dokumentation durchgehen, um sich mit dem Framework vertraut zu machen. Ansonsten können Sie dem Laravel Bootcamp folgen, um mit Laravel zu beginnen.

Schritt 1: Laravel-Projekt einrichten

Erstellen Sie zunächst ein neues Laravel-Projekt, falls Sie noch keines haben, oder verwenden Sie ein vorhandenes Projekt. Natürlich können Sie diesen Schritt überspringen, wenn Sie bereits ein Laravel-Projekt haben.

composer create-project --prefer-dist laravel/laravel pdf-tutorial
cd pdf-tutorial

Als nächstes installieren Sie DomPDF:

composer require barryvdh/laravel-dompdf

Konfigurationsdatei veröffentlichen:

php artisan vendor:publish --provider="Barryvdh\DomPDF\ServiceProvider"

Schritt 2: DomPDF konfigurieren

Öffnen Sie die Datei config/dompdf.php. Die Konfigurationsdatei enthält verschiedene Optionen zum Anpassen der PDF-Ausgabe. Hier können Sie verschiedene Optionen festlegen, darunter das Standardpapierformat, die Ausrichtung, die Schriftart und mehr.

  • Papierformat: Sie können das Standardpapierformat festlegen.
  'default_paper_size' => 'a4',
  • Ausrichtung: Legen Sie die Standardausrichtung fest (Hochformat oder Querformat).
  'orientation' => 'portrait',
  • Schriftart: Sie können die Standardschriftart angeben und benutzerdefinierte Schriftarten hinzufügen.
  'default_font' => 'serif',

Schritt 3: Erstellen eines Controllers

Erstellen Sie einen Controller für die PDF-Generierung:

php artisan make:controller PDFController

Fügen Sie in app/Http/Controllers/PDFController.php den folgenden Code hinzu:

 'Laravel PDF Example',
            'date' => date('m/d/Y'),
        ];

        $pdf = PDF::loadView('myPDF', $data);

        return $pdf->download('document.pdf');
    }
}

Schritt 4: Erstellen einer Blade-Vorlage

Erstellen Sie eine Blade-Vorlage für den PDF-Inhalt:

touch resources/views/myPDF.blade.php

Fügen Sie den folgenden Inhalt zu myPDF.blade.php hinzu:



    Laravel PDF Example

{{ $title }}

Date: {{ $date }}

This is an example of a PDF document generated using Laravel and DomPDF.

Schritt 5: Routen hinzufügen

Routen hinzufügen, um die PDF-Generierung in Routen/web.php zu handhaben:

use App\Http\Controllers\PDFController;

Route::get('generate-pdf', [PDFController::class, 'generatePDF']);

Schritt 6: Bilder hinzufügen

Sie können Bilder zum PDF hinzufügen, indem Sie sie als Base64-codierte Zeichenfolgen einbetten oder URLs verwenden.

Bilder können mithilfe der Base64-Kodierung direkt in die Blade-Vorlage eingebettet werden. Um beispielsweise ein Bild aus public/images einzubetten, gehen Sie folgendermaßen vor:

Logo

Oder direkt von einer URL:

Logo

Schritt 7: Leistung optimieren

Datenbankabfragen

Beim Umgang mit großen Datensätzen (z. B. 1.000 Datensätzen) verwenden Sie Paginierung oder Chunking, um die Speichernutzung zu verwalten:

$data = DB::table('users')->paginate(50);

$pdf = PDF::loadView('myPDF', ['data' => $data]);

Ausgabegröße

Um die Ausgabegröße zu reduzieren, minimieren Sie die Verwendung umfangreicher Bilder und entscheiden Sie sich nach Möglichkeit für Vektorgrafiken. Verwenden Sie außerdem effizientes CSS.

Seitenumbrüche

Stellen Sie sicher, dass der Inhalt für Seitenumbrüche gut strukturiert ist. Verwenden Sie CSS, um Seitenumbrüche zu verarbeiten:

.page-break {
    page-break-after: always;
}

Und in Ihrer Blade-Vorlage:

Schritt 8: Erweiterte Konfiguration

Weitere Informationen zu erweiterten Konfigurationen finden Sie in der DomPDF-Dokumentation. Sie können fast alles anpassen, von den Rändern bis hin zur Art und Weise, wie Schriftarten geladen werden.

Benutzerdefinierte Schriftarten verwenden

Um benutzerdefinierte Schriftarten zu verwenden, fügen Sie diese zunächst Ihrem Projekt hinzu und konfigurieren Sie DomPDF für deren Verwendung:

'custom_font_dir' => base_path('resources/fonts/'),
'custom_font_data' => [
    'custom-font' => [
        'R' => 'CustomFont-Regular.ttf',
        'B' => 'CustomFont-Bold.ttf',
    ]
],

In Ihrer Blade-Vorlage:

Abschluss

Wenn Sie dieser Schritt-für-Schritt-Anleitung folgen, können Sie mit Laravel und DomPDF anspruchsvolle PDF-Dokumente erstellen, komplett mit Bildern und CSS-Stil. In diesem Tutorial wurden wesentliche Konfigurationsoptionen, Designüberlegungen und Leistungsoptimierung behandelt. Sie können diese Grundlage erweitern, um ein robustes Dokumentgenerierungssystem für Ihre Laravel-Anwendung aufzubauen.

Potenzielle Serie und Repository

Dieses Tutorial ist Teil einer Reihe zur PDF-Generierung mit Laravel. Ein vollständiges Repository mit verschiedenen Dokumentvorlagen (Rechnungen, Quittungen, Zertifikate, Tickets usw.) finden Sie hier. Fühlen Sie sich frei, einen Beitrag zu leisten und die Sammlung zu erweitern.

Viel Spaß beim Codieren!

Freigabeerklärung Dieser Artikel ist abgedruckt unter: https://dev.to/alphaolomi/generating-pdf-documents-in-laravel-n07?1 Bei Verstößen wenden Sie sich bitte an [email protected], um ihn zu löschen
Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3