PHP laravel實現(xiàn)導(dǎo)出PDF功能
一、laravel-tcpdf
導(dǎo)出PDF文件Laravel框架為我們集成了一個插件tcpdf。
下載地址:
https://github.com/elibyy/tcpdf-laravel
然后使用composer進行安裝就可以了。
具體安裝過程,請查看文末補充內(nèi)容
使用的時候記得use 一下 命名空間。
但是這里有一個問題,使用這個插件導(dǎo)出文件無法使用中文,且我還沒有找到解決辦法,因此,這個laravel的tcpdf插件我就沒有使用。
二、tcpdf
tcpdf官方網(wǎng)站:
我下載了完整版的TCPDF
下載地址:https://github.com/tecnickcom/TCPDF.git
我們將下載的包放在框架根目錄下的app/Extend/tcpdf中。
調(diào)用代碼:
require_once("../app/Extend/tcpdf/tcpdf.php"); $pdf = new TCPDF(); // 設(shè)置文檔信息 $pdf->SetCreator('懶人開發(fā)網(wǎng)'); $pdf->SetAuthor('懶人開發(fā)網(wǎng)'); $pdf->SetTitle('TCPDF示例'); $pdf->SetSubject('TCPDF示例'); $pdf->SetKeywords('TCPDF, PDF, PHP'); // 設(shè)置頁眉和頁腳信息 $pdf->SetHeaderData('tcpdf_logo.jpg', 30, 'LanRenKaiFA.com', '學(xué)會偷懶,并懶出效率!', [0, 64, 255], [0, 64, 128]); $pdf->setFooterData([0, 64, 0], [0, 64, 128]); // 設(shè)置頁眉和頁腳字體 $pdf->setHeaderFont(['stsongstdlight', '', '10']); $pdf->setFooterFont(['helvetica', '', '8']); // 設(shè)置默認等寬字體 $pdf->SetDefaultMonospacedFont('courier'); // 設(shè)置間距 $pdf->SetMargins(15, 15, 15);//頁面間隔 $pdf->SetHeaderMargin(5);//頁眉top間隔 $pdf->SetFooterMargin(10);//頁腳bottom間隔 // 設(shè)置分頁 $pdf->SetAutoPageBreak(true, 25); // set default font subsetting mode $pdf->setFontSubsetting(true); //設(shè)置字體 stsongstdlight支持中文 $pdf->SetFont('stsongstdlight', '', 14); //第一頁 $pdf->AddPage(); $pdf->writeHTML('<div style="text-align: center"><h1>第一頁內(nèi)容</h1></div>'); $pdf->writeHTML('<p>我是第一行內(nèi)容</p>'); $pdf->writeHTML('<p style="color: red">我是第二行內(nèi)容</p>'); $pdf->writeHTML('<p>我是第三行內(nèi)容</p>'); $pdf->Ln(5);//換行符 $pdf->writeHTML('<p><a rel="external nofollow" title="">懶人開發(fā)網(wǎng)</a></p>'); //第二頁 $pdf->AddPage(); $pdf->writeHTML('<h1>第二頁內(nèi)容</h1>'); //輸出PDF $pdf->Output('t.pdf', 'I');//I輸出、D下載
三、TCPDF解決保存中文文件名的方法
這部分是百度過來的,網(wǎng)上挺多關(guān)于這個的文章的,內(nèi)容基本一致。
1:找到output函數(shù),注釋以下代碼(在7560行左右):
if ($dest[0] != 'F') { $name = preg_replace('/[s]+/', '_', $name); $name = preg_replace('/[^a-zA-Z0-9_.-]/', '', $name); }
2:搜索下面這行代碼
header('Content-Disposition: attachment; filename="'.basename($name).'"');
替換成:
header('Content-Disposition: attachment; filename="'.$name.'"');
以上大概就是tcpdf的基本使用。
補充
laravel5.8引入第三方類庫的方法詳解
有需求需要使用PHPMailer發(fā)送郵件。
那么首先需要引入PHPMailer這個第三方的類庫。我是這樣做的:
1:在app目錄下新建Extend目錄。如下圖所示:
將PHPMailer放入Extend目錄下。如下圖所示
2:修改項目根目錄下的composer.json文件
"autoload": { "psr-4": { "App\\": "app/" }, "classmap": [ "database/seeds", "database/factories", "app/Extend/PHPMailer/src" ] },
添加你第三方類庫的位置到autoload中
3:執(zhí)行composer命令,在網(wǎng)站根目錄下:
composer dump-autoload
4:調(diào)用:
(1):使用命名空間
use PHPMailer\src\PHPMailer;
(2):調(diào)用
//實例化PHPMailer核心類 $mail = new PHPMailer();
如果報錯,就在實例化前邊加一個轉(zhuǎn)義符\
至此,laravel引入第三方類庫成功。
到此這篇關(guān)于PHP laravel實現(xiàn)導(dǎo)出PDF功能的文章就介紹到這了,更多相關(guān)PHP laravel導(dǎo)出PDF內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP實現(xiàn)導(dǎo)入大量CSV數(shù)據(jù)的示例代碼
這篇文章主要為大家詳細介紹了PHP如何實現(xiàn)導(dǎo)入大量CSV數(shù)據(jù)功能,文中的示例代碼講解詳細,對我們學(xué)習(xí)PHP有一定幫助,需要的可以參考一下2022-07-07ThinkPHP使用PHPExcel實現(xiàn)Excel數(shù)據(jù)導(dǎo)入導(dǎo)出完整實例
這篇文章主要介紹了ThinkPHP使用PHPExcel實現(xiàn)Excel數(shù)據(jù)導(dǎo)入導(dǎo)出,非常實用的功能,需要的朋友可以參考下2014-07-07PHP中使用DOMDocument來處理HTML、XML文檔的示例
這篇文章主要介紹了PHP中使用DOMDocument來處理HTML、XML文檔的示例,幫助大家更好的理解和學(xué)習(xí)使用php語言,感興趣的朋友可以了解下2021-04-04用php或asp創(chuàng)建網(wǎng)頁桌面快捷方式的代碼
上傳到網(wǎng)站,shortcut.php 就會有提示下載一個名為 張楚網(wǎng)站.urll文件,保存在本地就是一個快捷方式!2010-03-03Wordpress 相冊插件 NextGEN-Gallery 添加目錄將中文轉(zhuǎn)為拼音的解決辦法
NextGEN Gallery是Wordpress中著名的相冊插件,遺憾的是不支持中文等unicode字符,本文將介紹如何將目錄轉(zhuǎn)換為拼音(添加圖集時)。2010-12-12UCenter中的一個可逆加密函數(shù)authcode函數(shù)代碼
瀏覽UCenter源代碼的時候發(fā)現(xiàn)這個函數(shù),剛好有需要,就記錄一下。2010-07-07