So fügen Sie in Laravel einer PDF-Datei eine digitale Signatur hinzu

Eine digitale Signatur ist ein mathematisches Schema zur Überprüfung der Authentizität und Integrität einer digitalen Nachricht oder eines digitalen Dokuments. Eine gültige digitale Signatur einer Nachricht gibt dem Empfänger die Gewissheit, dass die Nachricht von einem bekannten Absender gesendet wurde und dass die Nachricht seit der Signatur nicht verändert wurde.

In diesem Tutorial erfahren Sie, wie Sie mithilfe der DomPDF TCPDF-Bibliothek in Laravel 10-Apps eine digitale Signatur zu PDF hinzufügen. Um in Laravel 10 eine digitale Signatur zu PDF hinzuzufügen, befolgen Sie diese Schritte.

Inhaltsverzeichnis

  • Schritt 1: Erstellen Sie ein neues Laravel-Projekt
  • Schritt 2: Abhängigkeiten installieren
  • Schritt 3: Laravel DomPDF konfigurieren
  • Schritt 4: TCPDF für digitale Signaturen einrichten
  • Schritt 5: Erstellen Sie einen Controller
  • Schritt 6: Erstellen Sie eine Route
  • Schritt 7: Generieren Sie ein PDF mit digitaler Signatur

Schritt 1: Erstellen Sie ein neues Laravel-Projekt

Öffnen Sie zunächst Ihr cmd oder Terminal und führen Sie den folgenden Befehl aus, um die neue Laravel 10-App auf dem Server zu installieren und einzurichten:

composer create-project --prefer-dist laravel/laravel digital-signature-pdf
cd digital-signature-pdf

Schritt 2: Abhängigkeiten installieren

Führen Sie als Nächstes die folgenden Befehle aus, um laravel-dompdf für die PDF-Generierung und tcpdf für digitale Signaturen zu installieren:

composer require barryvdh/laravel-dompdf
composer require tecnickcom/tcpdf

Schritt 3: Laravel DomPDF konfigurieren

Sobald Sie laravel-dompdf in Ihrem Laravel-Projekt installiert haben. Jetzt müssen Sie dompdf mit Laravel-Apps konfigurieren.

Öffnen Sie also die Datei config/app.php und fügen Sie die folgende Zeile zum Array providers hinzu:

Barryvdh\DomPDF\ServiceProvider::class,

Fügen Sie als Nächstes die folgende Zeile zum Array aliases in derselben Datei hinzu:

'PDF' => Barryvdh\DomPDF\Facade::class,

Schritt 4: TCPDF für digitale Signaturen einrichten

Als nächstes müssen Sie TCPDF für digitale Signaturen konfigurieren. Erstellen Sie im Stammverzeichnis Ihres Laravel-Projekts eine neue Datei mit dem Namen tcpdf_signature_config.php und folgendem Inhalt:

<?php
return [
    'signature_title' => 'Digital Signature',
    'signature_title_page' => 'Digital Signature - Page %s',
    'signature_font_size' => 8,
    'signature_image_width' => 25,
    'signature_image_height' => 25,
    'signature_file' => '', // Path to your signature image file
    'signature_coordinates' => [
        'x' => 10,
        'y' => 10,
    ],
];

Wichtiger Hinweis: – Ersetzen Sie 'signature_file' durch den tatsächlichen Pfad zu Ihrer Signaturbilddatei.

Schritt 5: Erstellen Sie einen Controller

Öffnen Sie als Nächstes erneut Ihr cmd und führen Sie darin den folgenden Befehl aus, um einen neuen Controller für die PDF-Generierung und digitale Signaturen zu erstellen:

php artisan make:controller PDFSignatureController

Sobald Sie die Controller-Klasse erstellt haben. Als nächstes müssen Sie die Datei PDFSignatureController.php im Verzeichnis app/Http/Controllers mit dem folgenden Code bearbeiten:

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use PDF;

class PDFSignatureController extends Controller
{
    public function generatePDFWithSignature()
    {
        // Load TCPDF configuration
        $config = config('tcpdf_signature_config');

        // Create a new TCPDF instance
        $pdf = new \TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false);

        // Set document properties
        $pdf->SetCreator(config('app.name'));
        $pdf->SetAuthor('Your Name');
        $pdf->SetTitle('Sample PDF with Digital Signature');
        $pdf->SetSubject('Digital Signature Example');
        $pdf->SetKeywords('laravel, pdf, digital signature');

        // Set header and footer fonts
        $pdf->setHeaderFont(Array(PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN));
        $pdf->setFooterFont(Array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA));

        // Set default monospaced font
        $pdf->SetDefaultMonospacedFont(PDF_FONT_MONOSPACED);

        // Set margins
        $pdf->SetMargins(10, 10, 10);

        // Set auto page breaks
        $pdf->SetAutoPageBreak(TRUE, 10);

        // Set image scale factor
        $pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);

        // Initialize PDF document
        $pdf->AddPage();

        // Output digital signature image
        if (!empty($config['signature_file'])) {
            $signatureX = $config['signature_coordinates']['x'];
            $signatureY = $config['signature_coordinates']['y'];
            $pdf->Image($config['signature_file'], $signatureX, $signatureY, $config['signature_image_width'], $config['signature_image_height']);
        }

        // Output text for digital signature
        $pdf->SetFont('helvetica', '', $config['signature_font_size']);
        $pdf->SetXY(40, 20);
        $pdf->Cell(0, 0, 'Digitally signed by:', 0, 1);
        $pdf->SetXY(40, 25);
        $pdf->Cell(0, 0, 'Your Name', 0, 1);
        $pdf->SetXY(40, 30);
        $pdf->Cell(0, 0, 'Date: ' . date('Y-m-d H:i:s'), 0, 1);

        // Output PDF to the browser
        $pdf->Output('sample.pdf', 'I');
    }
}

Schritt 6: Erstellen Sie eine Route

Fügen Sie in Ihrer routes/web.php-Datei eine Route zu Ihrer neu erstellten Controller-Methode hinzu:

use App\Http\Controllers\PDFSignatureController;

Route::get('/generate-pdf', [PDFSignatureController::class, 'generatePDFWithSignature']);

Schritt 7: Generieren Sie ein PDF mit digitaler Signatur

Jetzt können Sie ein PDF mit einer digitalen Signatur erstellen, indem Sie die folgende URL in Ihrem Browser aufrufen:

http://your-domain/generate-pdf

Sie haben die digitale Signaturfunktion für PDF-Dokumente in Laravel 10 mit TCPDF und Laravel DomPDF erfolgreich implementiert.

1.30 GEEK