登录
首页 >  文章 >  php教程

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

来源:dev.to

时间:2024-11-22 10:19:07 483浏览 收藏

文章不知道大家是否熟悉?今天我将给大家介绍《如何在 PHP CodeIgniter 中生成 Pdf sing *dompdf*》,这篇文章主要会讲到等等知识点,如果你在看完本篇文章后,有更好的建议或者发现哪里有问题,希望大家都能积极评论指出,谢谢!希望我们能一起加油进步!

如何在 PHP CodeIgniter 中生成 Pdf 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*》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:dev.to 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>