Maison > développement back-end > tutoriel php > Comment générer un PDF en PHP CodeIgniter chanter *dompdf*

Comment générer un PDF en PHP CodeIgniter chanter *dompdf*

Barbara Streisand
Libérer: 2024-11-05 21:17:02
original
899 Les gens l'ont consulté

How to Generate Pdf in PHP CodeIgniter sing *dompdf*

Étape 1 : Créer la table de base de données
Créez une table d'utilisateurs dans votre base de données MySQL :

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
);
Copier après la connexion

Étape 2 : Créer le modèle utilisateur
Dans votre projet CodeIgniter, créez un modèle nommé UserModel.php dans 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';
}
Copier après la connexion

Étape 3 : Installer DOMPDF
Exécutez la commande suivante dans le répertoire de votre projet pour installer DOMPDF :

composer require dompdf/dompdf
Copier après la connexion

Étape 4 : Créer le contrôleur de génération PDF
Créez un contrôleur nommé PdfController.php dans 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]);
    }
}
Copier après la connexion

Étape 5 : Créer la vue HTML pour le PDF
Dans app/Views/, créez un nouveau fichier nommé user_list_pdf.php avec le contenu suivant :

<!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>
Copier après la connexion

Étape 6 : Définir l'itinéraire
Dans app/Config/Routes.php, ajoutez un itinéraire pour accéder à la fonction de génération PDF :

$routes->get('generate-user-list-pdf', 'PdfController::generateUserListPdf');
Copier après la connexion

Étape 7 : tester la configuration
Visitez http://yourdomain.com/generate-user-list-pdf dans votre navigateur. Cela devrait :

Récupérez tous les utilisateurs de la base de données.
Rendre la vue user_list_pdf avec les données utilisateur.
Générez un PDF avec la liste des utilisateurs et affichez-le dans le navigateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal