{"id":25924,"date":"2024-11-24T12:52:06","date_gmt":"2024-11-24T04:52:06","guid":{"rendered":"https:\/\/fwq.ai\/blog\/25924\/"},"modified":"2024-11-24T12:52:06","modified_gmt":"2024-11-24T04:52:06","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-php-codeigniter-%e4%b8%ad%e7%94%9f%e6%88%90-pdf-sing-dompdf","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/25924\/","title":{"rendered":"\u5982\u4f55\u5728 PHP CodeIgniter \u4e2d\u751f\u6210 Pdf sing *dompdf*"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/img.php.cn\/upload\/article\/001\/246\/273\/173072721021524.jpg\" class=\"aligncenter\" title=\"\u5982\u4f55\u5728 PHP CodeIgniter \u4e2d\u751f\u6210 Pdf sing *dompdf*\u63d2\u56fe\" alt=\"\u5982\u4f55\u5728 PHP CodeIgniter \u4e2d\u751f\u6210 Pdf sing *dompdf*\u63d2\u56fe\" \/><\/p>\n<p>\u7b2c 1 \u6b65\uff1a\u521b\u5efa\u6570\u636e\u5e93\u8868<br \/> \u5728  \u6570\u636e\u5e93\u4e2d\u521b\u5efa\u7528\u6237\u8868\uff1a<\/p>\n<pre>create table users (\n    id int auto_increment primary key,\n    name varchar(50) not null,\n    surname varchar(50) not null,\n    email varchar(100) not null unique,\n    university varchar(100),\n    created_at timestamp default current_timestamp\n);\n<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7b2c 2 \u6b65\uff1a\u521b\u5efa\u7528\u6237\u6a21\u578b<br \/> \u5728\u60a8\u7684 codeigniter \u9879\u76ee\u4e2d\uff0c\u5728 app\/models\/:<br \/> \u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a usermodel.php \u7684\u6a21\u578b <\/p>\n<pre>&lt;?php\n\nnamespace appmodels;\n\nuse codeignitermodel;\n\nclass usermodel extends model\n{\n    protected $table = 'users';\n    protected $primarykey = 'id';\n\n    protected $allowedfields = ['name', 'surname', 'email', 'university'];\n    protected $usetimestamps = true;\n    protected $createdfield = 'created_at';\n}\n<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7b2c 3 \u6b65\uff1a\u5b89\u88c5 dompdf<br \/> \u5728\u9879\u76ee\u76ee\u5f55\u4e2d\u8fd0\u884c\u4ee5\u4e0b\u547d\u4ee4\u6765\u5b89\u88c5 dompdf\uff1a<\/p>\n<pre>composer require dompdf\/dompdf\n<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7b2c 4 \u6b65\uff1a\u521b\u5efa pdf \u751f\u6210\u63a7\u5236\u5668<br \/> \u5728 app\/controllers\/:<br \/> \u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a pdfcontroller.php \u7684\u63a7\u5236\u5668 <\/p>\n<pre>&lt;?php\n\nnamespace appcontrollers;\nuse appmodelsusermodel;\nuse dompdfdompdf;\nuse dompdfoptions;\n\nclass pdfcontroller extends basecontroller\n{\n\n    public function generateuserlistpdf(){\n        $usermodel = new usermodel();\n\n        \/\/ retrieve all users from the database\n        $users = $usermodel-&gt;findall();\n        $options = new options();\n        $options-&gt;set('isremoteenable',true);\n\n        $dompdf = new dompdf($options);\n\n        $html = view('user_list_pdf',['users' =&gt; $users]);\n\n        $dompdf-&gt;loadhtml($html);\n\n        $dompdf-&gt;render();\n\n        $filename = 'user_list_'.date('ymdhis').'pdf';\n\n        $dompdf-&gt;stream($filename,['attachment'=&gt;false]);\n    }\n}\n<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7b2c 5 \u6b65\uff1a\u4e3a pdf \u521b\u5efa html \u89c6\u56fe<br \/> \u5728 app\/views\/ \u4e2d\uff0c\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a user_list_pdf.php \u7684\u65b0\u6587\u4ef6\uff0c\u5176\u4e2d\u5305\u542b\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<pre>&lt;!doctype html&gt;\n&lt;html&gt;\n&lt;head&gt;\n    &lt;style&gt;\n        table {\n            border-collapse: collapse;\n            width: 100%;\n        }\n        th, td {\n            border: 1px solid black;\n            padding: 8px;\n        }\n        th {\n            background-color: lightgray;\n        }\n    &lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;list of users&lt;\/h1&gt;\n    &lt;table&gt;\n        &lt;tr&gt;\n            &lt;th&gt;no&lt;\/th&gt;\n            &lt;th&gt;name and surname&lt;\/th&gt;\n            &lt;th&gt;email&lt;\/th&gt;\n            &lt;th&gt;university&lt;\/th&gt;\n            &lt;th&gt;created date&lt;\/th&gt;\n        &lt;\/tr&gt;\n        &lt;?php foreach ($users as $index =&gt; $user) : ?&gt;\n            &lt;tr&gt;\n                &lt;td&gt;&lt;?= $index + 1; ?&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;?= esc($user['name']); ?&gt; &lt;?= esc($user['surname']); ?&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;?= esc($user['email']); ?&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;?= esc($user['university']); ?&gt;&lt;\/td&gt;\n                &lt;td&gt;&lt;?= esc($user['created_at']); ?&gt;&lt;\/td&gt;\n            &lt;\/tr&gt;\n        &lt;?php endforeach; ?&gt;\n    &lt;\/table&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;\n<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7b2c 6 \u6b65\uff1a\u5b9a\u4e49\u8def\u7ebf<br \/> \u5728app\/config\/routes.php\u4e2d\uff0c\u6dfb\u52a0\u8bbf\u95eepdf\u751f\u6210\u529f\u80fd\u7684\u8def\u7531\uff1a<\/p>\n<pre>$routes-&gt;get('generate-user-list-pdf', 'PdfController::generateUserListPdf');\n<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u7b2c 7 \u6b65\uff1a\u6d4b\u8bd5\u8bbe\u7f6e<br \/> \u5728\u6d4f\u89c8\u5668\u4e2d\u8bbf\u95ee http:\/\/yourdomn.com\/generate-user-list-pdf\u3002\u8fd9\u5e94\u8be5\uff1a<\/p>\n<p>\u4ece\u6570\u636e\u5e93\u4e2d\u68c0\u7d22\u6240\u6709\u7528\u6237\u3002<br \/> \u4f7f\u7528\u7528\u6237\u6570\u636e\u6e32\u67d3 user_list_pdf \u89c6\u56fe\u3002<br \/> \u4f7f\u7528\u7528\u6237\u5217\u8868\u751f\u6210 pdf \u5e76\u5c06\u5176\u663e\u793a\u5728\u6d4f\u89c8\u5668\u4e2d\u3002<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5982\u4f55\u5728 PHP CodeIgniter \u4e2d\u751f\u6210 Pdf sing *dompdf*\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u7b2c 1 \u6b65\uff1a\u521b\u5efa\u6570\u636e\u5e93\u8868 \u5728 \u6570\u636e\u5e93\u4e2d\u521b\u5efa\u7528\u6237\u8868\uff1a 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 ); \u767b\u5f55\u540e\u590d\u5236 \u7b2c 2 \u6b65\uff1a\u521b\u5efa\u7528\u6237\u6a21\u578b \u5728\u60a8\u7684 codeigniter \u9879\u76ee\u4e2d\uff0c\u5728 app\/models\/: \u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a usermodel.php \u7684\u6a21\u578b &lt;?php namespace appmodels; use codeignitermodel; class usermodel extends model { [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-25924","post","type-post","status-publish","format-standard","hentry","category-16"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/25924","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=25924"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/25924\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=25924"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=25924"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=25924"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}