溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP laravel如何實現(xiàn)導出PDF功能

發(fā)布時間:2022-11-03 10:59:57 來源:億速云 閱讀:367 作者:iii 欄目:編程語言

今天小編給大家分享一下PHP laravel如何實現(xiàn)導出PDF功能的相關知識點,內(nèi)容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、laravel-tcpdf

導出PDF文件Laravel框架為我們集成了一個插件tcpdf。

然后使用composer進行安裝就可以了。

使用的時候記得use 一下 命名空間。

但是這里有一個問題,使用這個插件導出文件無法使用中文,且我還沒有找到解決辦法,因此,這個laravel的tcpdf插件我就沒有使用。

二、tcpdf

我們將下載的包放在框架根目錄下的app/Extend/tcpdf中。

調(diào)用代碼:

        require_once("../app/Extend/tcpdf/tcpdf.php");
$pdf = new TCPDF();
        // 設置文檔信息
        $pdf->SetCreator('懶人開發(fā)網(wǎng)');
        $pdf->SetAuthor('懶人開發(fā)網(wǎng)');
        $pdf->SetTitle('TCPDF示例');
        $pdf->SetSubject('TCPDF示例');
        $pdf->SetKeywords('TCPDF, PDF, PHP');
 
        // 設置頁眉和頁腳信息
        $pdf->SetHeaderData('tcpdf_logo.jpg', 30, 'LanRenKaiFA.com', '學會偷懶,并懶出效率!', [0, 64, 255], [0, 64, 128]);
        $pdf->setFooterData([0, 64, 0], [0, 64, 128]);
 
        // 設置頁眉和頁腳字體
        $pdf->setHeaderFont(['stsongstdlight', '', '10']);
        $pdf->setFooterFont(['helvetica', '', '8']);
 
        // 設置默認等寬字體
        $pdf->SetDefaultMonospacedFont('courier');
 
        // 設置間距
        $pdf->SetMargins(15, 15, 15);//頁面間隔
        $pdf->SetHeaderMargin(5);//頁眉top間隔
        $pdf->SetFooterMargin(10);//頁腳bottom間隔
 
        // 設置分頁
        $pdf->SetAutoPageBreak(true, 25);
 
        // set default font subsetting mode
        $pdf->setFontSubsetting(true);
 
        //設置字體 stsongstdlight支持中文
        $pdf->SetFont('stsongstdlight', '', 14);
 
        //第一頁
        $pdf->AddPage();
        $pdf->writeHTML('<p style="text-align: center"><h2>第一頁內(nèi)容</h2></p>');
        $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 href="http://www.lanrenkaifa.com/" rel="external nofollow"  title="">懶人開發(fā)網(wǎng)</a></p>');
 
        //第二頁
        $pdf->AddPage();
        $pdf->writeHTML('<h2>第二頁內(nèi)容</h2>');
 
        //輸出PDF
        $pdf->Output('t.pdf', 'I');//I輸出、D下載

三、TCPDF解決保存中文文件名的方法。

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目錄。如下圖所示:

PHP laravel如何實現(xiàn)導出PDF功能

將PHPMailer放入Extend目錄下。如下圖所示

PHP laravel如何實現(xiàn)導出PDF功能

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)義符\

以上就是“PHP laravel如何實現(xiàn)導出PDF功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI