Heim  >  Artikel  >  Backend-Entwicklung  >  So generieren Sie PDFs in PHP CodeIgniter sing *dompdf*

So generieren Sie PDFs in PHP CodeIgniter sing *dompdf*

Barbara Streisand
Barbara StreisandOriginal
2024-11-05 21:17:02735Durchsuche

How to Generate Pdf in PHP CodeIgniter sing *dompdf*

Schritt 1: Erstellen Sie die Datenbanktabelle
Erstellen Sie eine Benutzertabelle in Ihrer MySQL-Datenbank:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    surname VARCHAR(50) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    university VARCHAR(100),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

Schritt 2: Erstellen Sie das Benutzermodell
Erstellen Sie in Ihrem CodeIgniter-Projekt ein Modell mit dem Namen UserModel.php in app/Models/:

<?php

namespace App\Models;

use CodeIgniter\Model;

class UserModel extends Model
{
    protected $table = 'users';
    protected $primaryKey = 'id';

    protected $allowedFields = ['name', 'surname', 'email', 'university'];
    protected $useTimestamps = true;
    protected $createdField = 'created_at';
}

Schritt 3: DOMPDF installieren
Führen Sie den folgenden Befehl in Ihrem Projektverzeichnis aus, um DOMPDF zu installieren:

composer require dompdf/dompdf

Schritt 4: Erstellen Sie den PDF Generation Controller
Erstellen Sie einen Controller mit dem Namen PdfController.php in app/Controllers/:

<?php

namespace App\Controllers;
use App\Models\UserModel;
use Dompdf\Dompdf;
use Dompdf\Options;

class PdfController extends BaseController
{

    public function generateUserListPdf(){
        $userModel = new UserModel();

        // Retrieve all users from the database
        $users = $userModel->findAll();
        $options = new Options();
        $options->set('isRemoteEnable',true);

        $dompdf = new Dompdf($options);

        $html = view('user_list_pdf',['users' => $users]);

        $dompdf->loadHtml($html);

        $dompdf->render();

        $filename = 'user_list_'.date('YmdHis').'pdf';

        $dompdf->stream($filename,['Attachment'=>false]);
    }
}

Schritt 5: Erstellen Sie die HTML-Ansicht für das PDF
Erstellen Sie in app/Views/ eine neue Datei mit dem Namen user_list_pdf.php mit folgendem Inhalt:

<!DOCTYPE html>
<html>
<head>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid black;
            padding: 8px;
        }
        th {
            background-color: lightgray;
        }
    </style>
</head>
<body>
    <h1>List of Users</h1>
    <table>
        <tr>
            <th>No</th>
            <th>Name and Surname</th>
            <th>Email</th>
            <th>University</th>
            <th>Created Date</th>
        </tr>
        <?php foreach ($users as $index => $user) : ?>
            <tr>
                <td><?= $index + 1; ?></td>
                <td><?= esc($user['name']); ?> <?= esc($user['surname']); ?></td>
                <td><?= esc($user['email']); ?></td>
                <td><?= esc($user['university']); ?></td>
                <td><?= esc($user['created_at']); ?></td>
            </tr>
        <?php endforeach; ?>
    </table>
</body>
</html>

Schritt 6: Definieren Sie die Route
Fügen Sie in app/Config/Routes.php eine Route hinzu, um auf die PDF-Generierungsfunktion zuzugreifen:

$routes->get('generate-user-list-pdf', 'PdfController::generateUserListPdf');

Schritt 7: Testen Sie das Setup
Besuchen Sie http://yourdomain.com/generate-user-list-pdf in Ihrem Browser. Dies sollte:

Alle Benutzer aus der Datenbank abrufen.
Rendern Sie die Ansicht „user_list_pdf“ mit Benutzerdaten.
Erzeugen Sie ein PDF mit der Benutzerliste und zeigen Sie es im Browser an.

Das obige ist der detaillierte Inhalt vonSo generieren Sie PDFs in PHP CodeIgniter sing *dompdf*. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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