ホームページ  >  記事  >  バックエンド開発  >  PHP CodeIgniter で PDF を生成する方法 sing *dompdf*

PHP CodeIgniter で PDF を生成する方法 sing *dompdf*

Barbara Streisand
Barbara Streisandオリジナル
2024-11-05 21:17:02735ブラウズ

How to Generate Pdf in PHP CodeIgniter sing *dompdf*

ステップ 1: データベース テーブルを作成する
MySQL データベースに users テーブルを作成します:

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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。