{"id":894,"date":"2025-06-12T02:11:53","date_gmt":"2025-06-11T18:11:53","guid":{"rendered":"https:\/\/www.zhaozhao123.cn\/php\/php-application-manual\/laravel\/894.html"},"modified":"2025-06-12T02:11:53","modified_gmt":"2025-06-11T18:11:53","slug":"%e5%a6%82%e4%bd%95%e5%9c%a8-laravel-%e4%b8%ad%e8%bf%94%e5%9b%9e-pdf-%e6%96%87%e4%bb%b6","status":"publish","type":"my1js","link":"https:\/\/www.zhaozhao123.cn\/php\/my1js\/894.html","title":{"rendered":"\u5982\u4f55\u5728 Laravel \u4e2d\u8fd4\u56de PDF \u6587\u4ef6"},"content":{"rendered":"<div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--1\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/dyA-1-400x300.jpg\" alt=\"Bug&#32534;&#35793;&#29422;\" class=\"wp-image-1842\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">Bug&#32534;&#35793;&#29422;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#22312; Laravel &#20013;&#29983;&#25104;&#21644;&#36820;&#22238; PDF &#25991;&#20214;&#36890;&#24120;&#28041;&#21450;&#20351;&#29992;&#19968;&#20123;&#24211;&#26469;&#22788;&#29702; PDF &#21019;&#24314;&#36807;&#31243;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#22522;&#26412;&#30340;&#27493;&#39588;&#25351;&#21335;&#65292;&#21253;&#25324;&#20351;&#29992; <code>dompdf<\/code> &#24211;&#26469;&#21019;&#24314; PDF &#25991;&#20214;&#12290;<\/p>\n<h3>1. &#23433;&#35013; DomPDF<\/h3>\n<p>&#39318;&#20808;&#65292;&#20320;&#38656;&#35201;&#23433;&#35013; <code>dompdf<\/code> &#24211;&#12290;&#20320;&#21487;&#20197;&#36890;&#36807; Composer &#26469;&#23436;&#25104;&#36825;&#20010;&#20219;&#21153;&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require barryvdh\/laravel-dompdf<\/code><\/pre>\n<h3>2. &#37197;&#32622; DomPDF<\/h3>\n<p>&#23433;&#35013;&#23436;&#25104;&#21518;&#65292;&#20320;&#38656;&#35201;&#37197;&#32622; DomPDF&#12290;&#22312; <code>config\/app.php<\/code> &#25991;&#20214;&#20013;&#25214;&#21040; <code>providers<\/code> &#25968;&#32452;&#65292;&#24182;&#28155;&#21152; <code>BarryvdhDomPDFServiceProvider::class<\/code>&#65306;<\/p>\n<pre><code class=\"language-php\">'providers' =&gt; [\n    \/\/ &#20854;&#20182;&#26381;&#21153;&#25552;&#20379;&#32773;...\n\n    BarryvdhDomPDFServiceProvider::class,\n],<\/code><\/pre>\n<p>&#25509;&#19979;&#26469;&#65292;&#22312; <code>config\/dompdf.php<\/code> &#25991;&#20214;&#20013;&#36827;&#34892;&#37197;&#32622;&#65292;&#20363;&#22914;&#35774;&#32622;&#36335;&#24452;&#31561;&#65306;<\/p>\n<pre><code class=\"language-php\">'dompdf' =&gt; [\n    'path' =&gt; storage_path('app\/public\/pdf'),\n],<\/code><\/pre>\n<h3>3. &#21019;&#24314; PDF &#25991;&#20214;<\/h3>\n<p>&#29616;&#22312;&#65292;&#20320;&#21487;&#20197;&#21019;&#24314;&#19968;&#20010;&#25511;&#21046;&#22120;&#26041;&#27861;&#26469;&#29983;&#25104; PDF &#25991;&#20214;&#12290;&#20197;&#19979;&#26159;&#19968;&#20010;&#31034;&#20363;&#65306;<\/p>\n<pre><code class=\"language-php\">use BarryvdhDomPDFFacade as PDF;\n\npublic function generatePdf()\n{\n    $data = [\n        'title' =&gt; 'Sample PDF',\n        'content' =&gt; 'This is a sample content for the PDF.',\n    ];\n\n    $html = view('pdf.template', $data)-&gt;render();\n\n    return PDF::load($html, 'letter')-&gt;download('sample.pdf');\n}<\/code><\/pre>\n<p>&#22312;&#36825;&#20010;&#31034;&#20363;&#20013;&#65292;&#25105;&#20204;&#20351;&#29992;&#20102; Blade &#27169;&#26495;&#24341;&#25806;&#26469;&#28210;&#26579; HTML &#20869;&#23481;&#65292;&#24182;&#23558;&#20854;&#21152;&#36733;&#21040; <code>dompdf<\/code> &#20013;&#29983;&#25104; PDF &#25991;&#20214;&#12290;<\/p>\n<h3>4. &#21019;&#24314;&#27169;&#26495;&#25991;&#20214;<\/h3>\n<p>&#22312; <code>resources\/views<\/code> &#30446;&#24405;&#19979;&#21019;&#24314;&#19968;&#20010;&#21517;&#20026; <code>pdf\/template.blade.php<\/code> &#30340;&#25991;&#20214;&#65306;<\/p>\n<pre><code class=\"language-blade\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;{{ $title }}&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;{{ $title }}&lt;\/h1&gt;\n    &lt;p&gt;{{ $content }}&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<h3>5. &#36335;&#30001;&#37197;&#32622;<\/h3>\n<p>&#26368;&#21518;&#65292;&#30830;&#20445;&#20320;&#22312;&#36335;&#30001;&#25991;&#20214;&#20013;&#23450;&#20041;&#20102;&#19968;&#20010;&#36335;&#30001;&#26469;&#35775;&#38382;&#36825;&#20010;&#25511;&#21046;&#22120;&#26041;&#27861;&#65306;<\/p>\n<pre><code class=\"language-php\">Route::get('\/generate-pdf', [YourController::class, 'generatePdf']);<\/code><\/pre>\n<h3>&#31034;&#20363;&#20195;&#30721;<\/h3>\n<p>&#23436;&#25972;&#30340;&#31034;&#20363;&#20195;&#30721;&#22914;&#19979;&#65306;<\/p>\n<pre><code class=\"language-php\">\/\/ routes\/web.php\nuse AppHttpControllersYourController;\nuse IlluminateSupportFacadesRoute;\n\nRoute::get('\/generate-pdf', [YourController::class, 'generatePdf']);\n\n\/\/ app\/Http\/Controllers\/YourController.php\nnamespace AppHttpControllers;\n\nuse BarryvdhDomPDFFacade as PDF;\nuse IlluminateHttpRequest;\n\nclass YourController extends Controller\n{\n    public function generatePdf()\n    {\n        $data = [\n            'title' =&gt; 'Sample PDF',\n            'content' =&gt; 'This is a sample content for the PDF.',\n        ];\n\n        $html = view('pdf.template', $data)-&gt;render();\n\n        return PDF::load($html, 'letter')-&gt;download('sample.pdf');\n    }\n}\n\n\/\/ resources\/views\/pdf\/template.blade.php\n&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n    &lt;meta charset=\"UTF-8\"&gt;\n    &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n    &lt;title&gt;{{ $title }}&lt;\/title&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n    &lt;h1&gt;{{ $title }}&lt;\/h1&gt;\n    &lt;p&gt;{{ $content }}&lt;\/p&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/code><\/pre>\n<p>&#36825;&#26679;&#65292;&#24403;&#20320;&#35775;&#38382; <code>\/generate-pdf<\/code> &#36335;&#30001;&#26102;&#65292;Laravel &#23558;&#20250;&#29983;&#25104;&#24182;&#19979;&#36733;&#19968;&#20010;&#21517;&#20026; <code>sample.pdf<\/code> &#30340; PDF &#25991;&#20214;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--2\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/zp-400x300.jpg\" alt=\"&#40657;&#26495;Bug&#35762;&#24072;\" class=\"wp-image-1849\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#40657;&#26495;Bug&#35762;&#24072;<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<body><h2>&#20171;&#32461;<\/h2><p>&#22312;Web&#24212;&#29992;&#31243;&#24207;&#20013;&#29983;&#25104;&#21644;&#36820;&#22238;PDF&#25991;&#20214;&#26159;&#19968;&#31181;&#24120;&#35265;&#30340;&#38656;&#27714;&#12290;Laravel&#20316;&#20026;&#24378;&#22823;&#30340;PHP&#26694;&#26550;&#65292;&#25552;&#20379;&#20102;&#26080;&#32541;&#21019;&#24314;&#21644;&#20132;&#20184;PDF&#30340;&#26041;&#27861;&#12290;&#22312;&#36825;&#31687;&#25945;&#31243;&#20013;&#65292;&#25105;&#20204;&#23558;&#35814;&#32454;&#20171;&#32461;&#22312;Laravel&#24212;&#29992;&#31243;&#24207;&#20013;&#29983;&#25104;&#21644;&#36820;&#22238;PDF&#25991;&#20214;&#30340;&#19981;&#21516;&#26041;&#27861;&#65292;&#21253;&#25324;&#20195;&#30721;&#31034;&#20363;&#21644;&#35299;&#37322;&#12290;<\/p><h2>&#35774;&#32622;&#29615;&#22659;<\/h2><p>&#22312;&#24320;&#22987;&#29983;&#25104;PDF&#20043;&#21069;&#65292;&#35831;&#30830;&#20445;&#24744;&#24050;&#32463;&#26377;&#19968;&#20010;Laravel&#39033;&#30446;&#36816;&#34892;&#36215;&#26469;&#12290;&#24744;&#36824;&#38656;&#35201;&#23433;&#35013;&#19968;&#20010;&#20801;&#35768;&#24744;&#22788;&#29702;PDF&#30340;&#21253;&#65307;&#19968;&#20010;&#27969;&#34892;&#30340;&#36873;&#25321;&#26159;<code>barryvdh\/laravel-dompdf<\/code>&#20026;&#20102;&#23433;&#35013;&#23427;&#65292;&#35831;&#36816;&#34892;&#20197;&#19979;&#21629;&#20196;&#65306;<\/p><pre><code>composer require barryvdh\/laravel-dompdf<\/code><\/pre><p>&#23433;&#35013;&#21518;&#65292;&#35831;&#27880;&#20876;&#25552;&#20379;&#21830;&#12290;<code>config\/app.php<\/code>&#65306;<\/p><pre><code>'providers' =&gt; [\n    \/\/ ...\n    BarryvdhDomPDFServiceProvider::class,\n],\n'aliases' =&gt; [\n    \/\/ ...\n    'PDF' =&gt; BarryvdhDomPDFFacade::class,\n],<\/code><\/pre><h2>&#22522;&#26412;PDF&#29983;&#25104;<\/h2><p>&#35753;&#25105;&#20204;&#20808;&#29983;&#25104;&#19968;&#20010;&#31616;&#21333;&#30340;PDF&#12290;&#20320;&#21487;&#20197;&#20687;&#36825;&#26679;&#21019;&#24314;&#19968;&#20010;&#36335;&#30001;&#21644;&#23545;&#24212;&#30340;&#25511;&#21046;&#22120;&#26041;&#27861;&#65306;<\/p><pre><code>Route::get('\/pdf', '[email protected]');<\/code><\/pre><p>&#22312;&#20320;&#30340;&#25511;&#21046;&#22120;&#20013;&#65306;<\/p><pre><code>use PDF;\n\nclass PdfController extends Controller\n{\n    public function show()\n    {\n        $pdf = PDF::loadView('pdfs.simple');\n        return $pdf-&gt;download('simple.pdf');\n    }\n}<\/code><\/pre><p>&#21019;&#24314;&#19968;&#20010;&#35270;&#22270;&#25991;&#20214;&#12290;<code>resources\/views\/pdfs\/simple.blade.php<\/code>&#21253;&#21547;HTML&#30340;&#20869;&#23481;&#65292;&#23558;&#20250;&#34987;&#36716;&#25442;&#20026;PDF&#26684;&#24335;&#65306;<\/p><pre><code>&lt;h1&gt;Hello, World!&lt;\/h1&gt;<\/code><\/pre><h2>&#39640;&#32423;PDF&#33258;&#23450;&#20041;<\/h2><p>&#22312;&#23454;&#38469;&#24212;&#29992;&#20013;&#65292;&#24744;&#21487;&#33021;&#24076;&#26395;&#33258;&#23450;&#20041;PDF&#20197;&#21253;&#21547;&#21160;&#24577;&#25968;&#25454;&#12289;&#34920;&#22836;&#12289;&#39029;&#33050;&#25110;&#29978;&#33267;CSS&#26679;&#24335;&#12290;&#35753;&#25105;&#20204;&#25506;&#35752;&#22914;&#20309;&#23454;&#29616;&#36825;&#19968;&#28857;&#12290;<\/p><h3>&#20256;&#36882;&#25968;&#25454;&#21040;PDF<\/h3><p>&#23558;&#25968;&#25454;&#25968;&#32452;&#20256;&#20837;&#35270;&#22270;&#65306;<\/p><pre><code>$data = ['message' =&gt; 'Hello World'];\n$pdf = PDF::loadView('pdfs.custom', $data);\nreturn $pdf-&gt;download('custom.pdf');<\/code><\/pre><p>&#22312;&#24744;&#30340;&#35266;&#28857;&#30475;&#26469;&#65311;<code>pdfs\/custom.blade.php<\/code>&#24403;&#28982;&#65292;&#20320;&#21487;&#20197;&#36825;&#26679;&#26174;&#31034;&#36825;&#20123;&#25968;&#25454;&#65306;<\/p><pre><code>&le;h1&gt;{{ $message }}&lt;\/h1&gt;<\/code><\/pre><h3>&#32654;&#21270;PDF&#25991;&#20214;<\/h3><p>Laravel DomPDF &#21253;&#20801;&#35768;&#24744;&#20351;&#29992; CSS &#26679;&#24335;&#21270;&#24744;&#30340; PDF&#65306;<\/p><pre><code>&lt;style&gt;\n    body {\n        font-family: 'DejaVu Sans', sans-serif;\n    }\n    h1 {\n        color: #4A90E2;\n    }\n&lt;\/style&gt;\n&lt;h1&gt;{{ $message }}&lt;\/h1&gt;<\/code><\/pre><h2>&#22788;&#29702;&#22823;&#22411;PDF&#25991;&#20214;<\/h2><p>&#22914;&#26524;&#20320;&#22788;&#29702;&#30340;&#26159;&#22823;&#22411;&#25991;&#26723;&#65292;&#21487;&#33021;&#38656;&#35201;&#23558;PDF&#27969;&#24335;&#20256;&#36755;&#32473;&#29992;&#25143;&#32780;&#19981;&#26159;&#24378;&#21046;&#19979;&#36733;&#65306;<\/p><pre><code>return $pdf-&gt;stream('large.pdf');<\/code><\/pre><p>&#35813;PDF&#25991;&#20214;&#20250;&#20869;&#23884;&#26174;&#31034;&#65292;&#21487;&#20197;&#22312;&#27983;&#35272;&#22120;&#20013;&#26597;&#30475;&#12290;<\/p><h2>&#20351;&#29992;&#20013;&#38388;&#20214;&#12290;<\/h2><p>&#20026;&#20102;&#33719;&#24471;&#26356;&#20339;&#30340;&#25511;&#21046;&#26435;&#65292;&#27604;&#22914;&#22312;&#35775;&#38382;PDF&#25991;&#20214;&#20043;&#21069;&#38656;&#35201;&#29992;&#25143;&#36523;&#20221;&#39564;&#35777;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Laravel&#20013;&#38388;&#20214;&#12290;&#20197;&#19979;&#26159;&#23454;&#29616;&#26041;&#27861;&#65306;<\/p><pre><code>Route::get('\/protected-pdf', '[email protected]')-&gt;middleware('auth');<\/code><\/pre><p>&#36825;&#30830;&#20445;&#21482;&#26377;&#32463;&#36807;&#36523;&#20221;&#39564;&#35777;&#30340;&#29992;&#25143;&#25165;&#33021;&#35775;&#38382;&#27492;&#36335;&#30001;&#12290;<\/p><h2>&#22312;&#26381;&#21153;&#22120;&#19978;&#20445;&#23384;PDF&#25991;&#20214;&#12290;<\/h2><p>&#26377;&#26102;&#65292;&#24744;&#21487;&#33021;&#24076;&#26395;&#23558;PDF&#20445;&#23384;&#21040;&#26381;&#21153;&#22120;&#19978;&#65306;<\/p><pre><code>$pdf-&gt;save(storage_path('app\/public\/pdf_name.pdf'));\nreturn response()-&gt;download(storage_path('app\/public\/pdf_name.pdf'));<\/code><\/pre><p>&#36825;&#23558;&#20250;&#20445;&#23384;PDF&#21040;&#23384;&#20648;&#65292;&#28982;&#21518;&#36820;&#22238;&#32473;&#29992;&#25143;&#12290;<\/p><h2>&#20445;&#25252;&#24744;&#30340;PDF&#25991;&#20214;<\/h2><p>&#24744;&#21487;&#20197;&#20026;PDF&#25991;&#20214;&#35774;&#32622;&#23494;&#30721;&#21644;&#26435;&#38480;&#36827;&#34892;&#21152;&#23494;&#65306;<\/p><pre><code>$pdf = PDF::loadView('myPdfView');\n$pdf-&gt;setEncryption('password');\nreturn $pdf-&gt;download('secured.pdf');<\/code><\/pre><p>&#36825;&#23558;&#20250;&#23545;PDF&#36827;&#34892;&#21152;&#23494;&#65292;&#20351;&#29992;&#25351;&#23450;&#30340;&#23494;&#30721;&#12290;<\/p><h2>&#27491;&#22312;&#27979;&#35797;PDF&#29983;&#25104;&#12290;<\/h2><p>&#20026;&#20102;&#30830;&#20445;PDF&#29983;&#25104;&#30340;&#23436;&#32654;&#26080;&#32570;&#65292;&#24744;&#24517;&#39035;&#32534;&#20889;&#27979;&#35797;&#12290;&#24744;&#21487;&#20197;&#20351;&#29992;Laravel&#20869;&#32622;&#30340;&#27979;&#35797;&#21151;&#33021;&#26469;&#21457;&#20986;&#35831;&#27714;&#24182;&#26029;&#35328;&#21709;&#24212;&#20026;PDF&#65306;<\/p><pre><code>$this-&gt;get('\/pdf')-&gt;assertStatus(200)-&gt;assertHeader('Content-Type', 'application\/pdf');<\/code><\/pre><h2>&#32467;&#35770;&#12290;<\/h2><p>&#36825;&#20010;&#25945;&#31243;&#28085;&#30422;&#20102;&#29983;&#25104;&#21644;&#36820;&#22238;PDF&#25991;&#20214;&#30340;&#22522;&#26412;&#36873;&#39033;&#20197;&#21450;&#26356;&#39640;&#32423;&#30340;&#36873;&#39033;&#65292;&#36890;&#36807;&#28155;&#21152;&#20687;&#36825;&#26679;&#30340;&#21253;&#12290;<code>barryvdh\/laravel-dompdf<\/code>&#24403;&#28982;&#65292;&#24744;&#22686;&#24378;&#20102;Laravel&#29983;&#25104;&#28385;&#36275;&#24212;&#29992;&#31243;&#24207;&#38656;&#27714;&#30340;&#33258;&#23450;&#20041;PDF&#25991;&#20214;&#30340;&#33021;&#21147;&#65292;&#36825;&#21487;&#20197;&#25552;&#39640;&#29992;&#25143;&#30340;&#25968;&#25454;&#21576;&#29616;&#21644;&#25991;&#26723;&#36136;&#37327;&#12290;<\/p><\/body>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div><div class=\"wp-block-columns p-0 border is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-columns px-4 py-3 border-bottom has-background is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\" style=\"background:linear-gradient(243deg,rgb(238,238,238) 0%,rgba(58,166,242,0.15) 100%)\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<div class=\"wp-block-group is-nowrap is-layout-flex wp-container-core-group-is-layout-6c531013 wp-block-group-is-layout-flex\">\r\n<figure class=\"wp-block-image size-thumbnail is-resized is-style-rounded is-style-rounded--3\"><img decoding=\"async\" src=\"https:\/\/www.zhaozhao123.cn\/myitems\/images\/sites16\/2025\/06\/xygcfznnzczhsdmwydzhsmzzzmddnq-400x300.jpg\" alt=\"&#38271;&#24037;&#30721;&#22900;1523\" class=\"wp-image-2906\" style=\"object-fit:cover;width:30px;height:30px\"><\/figure>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading my-0\" style=\"font-size:clamp(0.875rem, 0.875rem + ((1vw - 0.2rem) * 0.175), 1rem);\">&#38271;&#24037;&#30721;&#22900;1523<\/h2>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n\r\n\r\n\r\n<div class=\"wp-block-columns px-xl-5 px-4 py-xl-4 py-3 is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\r\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\r\n<p>&#35201;&#22312;Laravel&#20013;&#29983;&#25104;PDF&#25991;&#20214;&#65292;&#20320;&#21487;&#20197;&#20351;&#29992;Laravel&#30340;&#20869;&#32622;&#21151;&#33021;&#25110;&#32773;&#31532;&#19977;&#26041;&#24211;&#22914;Fpdf&#12290;&#36825;&#37324;&#25105;&#23558;&#20171;&#32461;&#20004;&#31181;&#26041;&#27861;&#65306;&#19968;&#31181;&#26159;&#36890;&#36807;Laravel&#33258;&#24102;&#30340;PDF&#29983;&#25104;&#22120;&#65292;&#21478;&#19968;&#31181;&#26159;&#20351;&#29992;Fpdf&#24211;&#12290;<\/p>\n<h3>&#26041;&#27861;&#19968;&#65306;&#20351;&#29992;Laravel&#33258;&#24102;&#30340;PDF&#29983;&#25104;&#22120;<\/h3>\n<p>&#39318;&#20808;&#30830;&#20445;&#20320;&#24050;&#32463;&#23433;&#35013;&#20102;Laravel&#21450;&#20854;&#22522;&#26412;&#20381;&#36182;&#39033;&#12290;&#28982;&#21518;&#25353;&#29031;&#20197;&#19979;&#27493;&#39588;&#25805;&#20316;&#65306;<\/p>\n<ol>\n<li>\n<p>&#23433;&#35013;<code>dompdf<\/code>&#65306;<\/p>\n<pre><code class=\"language-bash\">composer require dompdf\/dompdf<\/code><\/pre>\n<\/li>\n<li>\n<p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;PDF&#35831;&#27714;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse DompdfDompdf;\nuse AppModelsUser;\n\nclass PdfController extends Controller\n{\n   public function generatePdf(Request $request)\n   {\n       \/\/ &#20174;&#25968;&#25454;&#24211;&#26597;&#35810;&#29992;&#25143;&#25968;&#25454;\n       $users = User::all();\n\n       \/\/ &#21019;&#24314;DOMPDF&#23545;&#35937;\n       $dompdf = new Dompdf();\n       $dompdf-&gt;loadHtml('&lt;h1&gt;Welcome to Laravel!&lt;\/h1&gt;');\n\n       \/\/ &#28155;&#21152;&#29992;&#25143;&#30340;&#21015;&#34920;&#21040;HTML&#23383;&#31526;&#20018;\n       foreach ($users as $user) {\n           $dompdf-&gt;addPage();\n           $dompdf-&gt;setPaper('A4', 'landscape');\n           $dompdf-&gt;render();\n           $path = $dompdf-&gt;output();\n           return response()-&gt;file($path);\n       }\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>&#22312;&#25511;&#21046;&#22120;&#30340;<code>routes\/web.php<\/code>&#25991;&#20214;&#20013;&#27880;&#20876;&#36825;&#20010;&#25511;&#21046;&#22120;&#12290;<\/p>\n<pre><code class=\"language-php\">Route::get('\/generate-pdf', [PdfController::class, 'generatePdf'])-&gt;name('generate_pdf');<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#29616;&#22312;&#65292;&#24403;&#20320;&#35775;&#38382;<code>\/generate-pdf<\/code>&#26102;&#65292;&#23427;&#20250;&#19979;&#36733;&#19968;&#20010;&#21253;&#21547;&#25152;&#26377;&#29992;&#25143;&#20449;&#24687;&#30340;PDF&#25991;&#20214;&#12290;<\/p>\n<h3>&#26041;&#27861;&#20108;&#65306;&#20351;&#29992;Fpdf&#24211;<\/h3>\n<p>&#22914;&#26524;&#20320;&#38656;&#35201;&#26356;&#39640;&#32423;&#30340;&#21151;&#33021;&#65288;&#20363;&#22914;&#39029;&#38754;&#24067;&#23616;&#12289;&#33258;&#23450;&#20041;&#23383;&#20307;&#31561;&#65289;&#65292;&#21487;&#20197;&#32771;&#34385;&#20351;&#29992;Fpdf&#24211;&#12290;&#36825;&#26159;&#19968;&#20010;&#20813;&#36153;&#24320;&#28304;&#30340;PDF&#29983;&#25104;&#24211;&#65292;&#25903;&#25345;&#22810;&#31181;&#35821;&#35328;&#21644;&#26684;&#24335;&#12290;<\/p>\n<ol>\n<li>\n<p>&#23433;&#35013;Fpdf:<\/p>\n<pre><code class=\"language-bash\">composer require fpdf\/fpdf<\/code><\/pre>\n<\/li>\n<li>\n<p>&#21019;&#24314;&#19968;&#20010;&#26032;&#30340;&#25511;&#21046;&#22120;&#26469;&#22788;&#29702;PDF&#35831;&#27714;&#12290;<\/p>\n<pre><code class=\"language-php\">&lt;?php\nnamespace AppHttpControllers;\n\nuse IlluminateHttpRequest;\nuse Fpdf;\n\nclass PdfController extends Controller\n{\n   public function generatePdf(Request $request)\n   {\n       \/\/ &#20174;&#25968;&#25454;&#24211;&#26597;&#35810;&#29992;&#25143;&#25968;&#25454;\n       $users = User::all();\n\n       \/\/ &#21019;&#24314;FPDF&#23454;&#20363;\n       $pdf = new FPDF();\n\n       \/\/ &#35774;&#32622;&#25991;&#26723;&#26631;&#39064;\n       $pdf-&gt;AddPage();\n       $pdf-&gt;SetFont('Arial', 'B', 20); \/\/ &#23383;&#20307;&#22823;&#23567;&#20026;20&#65292;&#21152;&#31895;\n       $pdf-&gt;Cell(0, 10, 'Welcome to Laravel!', 0, 1);\n\n       \/\/ &#28155;&#21152;&#29992;&#25143;&#30340;&#21015;&#34920;&#21040;PDF\n       $i = 1; \/\/ &#21021;&#22987;&#32034;&#24341;&#20026;1\n       foreach ($users as $user) {\n           $pdf-&gt;Cell(65, 10, $i++, '', 1); \/\/ &#21333;&#20803;&#26684;&#23485;&#24230;&#20026;65&#65292;&#24038;&#23545;&#40784;&#65292;&#23621;&#20013;\n           $pdf-&gt;Ln(10); \/\/ &#25442;&#34892;\n           $pdf-&gt;Cell(0, 10, $user-&gt;email, 0, 1); \/\/ &#24038;&#23545;&#40784;&#65292;&#26080;&#22635;&#20805;&#65292;&#22402;&#30452;&#23621;&#20013;\n           $pdf-&gt;Ln(10); \/\/ &#25442;&#34892;\n           $pdf-&gt;Cell(0, 10, $user-&gt;username, 0, 1); \/\/ &#24038;&#23545;&#40784;&#65292;&#26080;&#22635;&#20805;&#65292;&#22402;&#30452;&#23621;&#20013;\n           $pdf-&gt;Ln(10); \/\/ &#25442;&#34892;\n           $pdf-&gt;Cell(0, 10, $user-&gt;password, 0, 1); \/\/ &#24038;&#23545;&#40784;&#65292;&#26080;&#22635;&#20805;&#65292;&#22402;&#30452;&#23621;&#20013;\n           $pdf-&gt;Ln(10); \/\/ &#25442;&#34892;\n           $pdf-&gt;Cell(0, 10, $user-&gt;created_at, 0, 1); \/\/ &#24038;&#23545;&#40784;&#65292;&#26080;&#22635;&#20805;&#65292;&#22402;&#30452;&#23621;&#20013;\n           $pdf-&gt;Ln(10); \/\/ &#25442;&#34892;\n           $pdf-&gt;Cell(0, 10, $user-&gt;updated_at, 0, 1); \/\/ &#24038;&#23545;&#40784;&#65292;&#26080;&#22635;&#20805;&#65292;&#22402;&#30452;&#23621;&#20013;\n           $pdf-&gt;Ln(10); \/\/ &#25442;&#34892;\n       }\n\n       \/\/ &#36820;&#22238;PDF&#25991;&#20214;\n       return response()-&gt;stream(function () use ($pdf) {\n           $pdf-&gt;Output('', 'S'); \/\/ &#36755;&#20986;&#24403;&#21069;&#24037;&#20316;&#34920;&#65292;&#20445;&#23384;&#20026;S&#26684;&#24335;\n       });\n   }\n}<\/code><\/pre>\n<\/li>\n<li>\n<p>&#22312;&#25511;&#21046;&#22120;&#30340;<code>routes\/web.php<\/code>&#25991;&#20214;&#20013;&#27880;&#20876;&#36825;&#20010;&#25511;&#21046;&#22120;&#12290;<\/p>\n<pre><code class=\"language-php\">Route::get('\/generate-pdf', [PdfController::class, 'generatePdf'])-&gt;name('generate_pdf');<\/code><\/pre>\n<\/li>\n<\/ol>\n<p>&#29616;&#22312;&#65292;&#24403;&#20320;&#35775;&#38382;<code>\/generate-pdf<\/code>&#26102;&#65292;&#23427;&#20250;&#19979;&#36733;&#19968;&#20010;&#21253;&#21547;&#25152;&#26377;&#29992;&#25143;&#20449;&#24687;&#30340;PDF&#25991;&#20214;&#12290;<\/p>\n<p>&#36825;&#20004;&#31181;&#26041;&#27861;&#37117;&#21487;&#20197;&#24110;&#21161;&#20320;&#22312;Laravel&#39033;&#30446;&#20013;&#21019;&#24314;PDF&#25991;&#20214;&#12290;&#26681;&#25454;&#20320;&#30340;&#38656;&#27714;&#36873;&#25321;&#21512;&#36866;&#30340;&#26041;&#27861;&#12290;<\/p>\r\n<\/div>\r\n<\/div>\r\n<\/div>\r\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Bug&#32534;&#35793;&#29422; &#22312; Laravel &#20013;&#29983;&#25104;&#21644;&#36820;&#22238; PDF &#25991;&#20214;&#36890;&#24120;&#28041;&#21450;&#20351;&#038;#2999..<\/p>\n","protected":false},"author":1,"featured_media":0,"menu_order":0,"template":"","meta":{"_acf_changed":false},"tags":[],"my1js2nav":[44],"tuisongtax":[],"class_list":["post-894","my1js","type-my1js","status-publish","hentry","my1js2nav-laravel"],"acf":{"qian_art_seotitle":"","qian_art_seotitle_source":{"label":"SEO\u6807\u9898","type":"text","formatted_value":""},"qian_art_seokws":"","qian_art_seokws_source":{"label":"SEO\u5173\u952e\u8bcd","type":"text","formatted_value":""},"qian_art_stzhong":"","qian_art_stzhong_source":{"label":"\u4e2d | \u77ed\u6807\u9898","type":"text","formatted_value":""}},"_links":{"self":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js\/894","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js"}],"about":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/types\/my1js"}],"author":[{"embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/users\/1"}],"wp:attachment":[{"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/media?parent=894"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tags?post=894"},{"taxonomy":"my1js2nav","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/my1js2nav?post=894"},{"taxonomy":"tuisongtax","embeddable":true,"href":"https:\/\/www.zhaozhao123.cn\/php\/wp-json\/wp\/v2\/tuisongtax?post=894"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}