如何在 PHP CodeIgniter 中產生 Pdf sing *dompdf*

Barbara Streisand
發布: 2024-11-05 21:17:02
原創
800 人瀏覽過

How to Generate Pdf in PHP CodeIgniter sing *dompdf*

第 1 步:建立資料庫表
在 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
);
登入後複製

第 2 步:建立使用者模型
在您的 CodeIgniter 專案中,在 app/Models/:
中建立一個名為 UserModel.php 的模型

<?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';
}
登入後複製

第 3 步:安裝 DOMPDF
在專案目錄中執行以下命令來安裝 DOMPDF:

composer require dompdf/dompdf
登入後複製

第 4 步:建立 PDF 產生控制器
在 app/Controllers/:
中建立一個名為 PdfController.php 的控制器

<?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]);
    }
}
登入後複製

第 5 步:為 PDF 建立 HTML 視圖
在 app/Views/ 中,建立一個名為 user_list_pdf.php 的新文件,其中包含以下內容:

<!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>
登入後複製

第 6 步:定義路線
在app/Config/Routes.php中,新增存取PDF產生功能的路由:

$routes->get('generate-user-list-pdf', 'PdfController::generateUserListPdf');
登入後複製

第 7 步:測試設定
在瀏覽器中造訪 http://yourdomain.com/generate-user-list-pdf。這應該:

從資料庫檢索所有使用者。
使用使用者資料渲染 user_list_pdf 視圖。
使用使用者清單產生 PDF 並將其顯示在瀏覽器中。

以上是如何在 PHP CodeIgniter 中產生 Pdf sing *dompdf*的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板