在 PHP 中建立 PDF 是一項非常有用的技能,可以幫助網站開發人員產生各種類型的動態 PDF 文件,例如發票、報告、憑證等。透過使用 PHP 中的程式庫和擴展,開發人員可以輕鬆地將資料轉換為 PDF 格式,並在網站上提供給使用者進行下載或列印。本文將介紹如何在 PHP 中使用常見的函式庫和擴充功能來建立 PDF 文件,以及一些實用的技巧和注意事項。
mpdf
函式庫建立 PDF我們可以使用外部函式庫mpdf
在 PHP 中建立 PDF。我們可以從資料庫中檢索數據,將它們儲存在 PDF 中,然後下載 PDF。使用這個庫,我們可以從html文件建立 PDF。 HTML 文件應以 UTF-8 編碼。我們可以從資料庫中以 HTML 格式檢索要新增到 PDF 的資料。我們可以透過命令composer require mpdf/mpd
從專案目錄下載它以使用庫。該指令將在專案目錄中安裝mpdf
庫。將建立一個vendor
文件,我們需要使用require()
函數來包含位於vendor
資料夾內的文件autoload.php
。我們必須確保安裝庫的目錄應該有寫入權限。
我們將從Mpdf()
建構函數建立一個對象,並使用WriteHTML()
和output()
等方法來建立 PDF。我們可以在不同的模式下輸出 PDF。我們可以在output()
方法的第二個參數中指定模式。不同的模式由D
、I
、F
和S
選項表示。選項D
將在腳本執行後強制下載 PDF。腳本運行後,選項I
將在瀏覽器中顯示 PDF。同時,選項F
將下載 PDF 保存在相對於 PHP 檔案的資料夾中。最後,只有當將output()
方法指派給變數時,選項F
才會在瀏覽器中輸出 pdf。
例如,我們有一個名為phprow
的資料庫,其中包含一個名為Persons
的表。表Persons
包含以下資料。
+----------+----------+-----------+ | PersonID | Name | Address | +----------+----------+-----------+ | 22 | Harry M| England | | 32 | Paul P | France| +----------+----------+-----------+
首先,使用require()
函數來包含vender/autoload.php
檔案。然後,建立並建立資料庫連接,執行sql查詢以從資料庫中選擇數據,並在$html
變數中建立一個表格。使用.
運算子將$html
變數與表格的主體連接起來。建立一個表頭為ID
、Name
和Address
的表。然後透過從Persons
表中檢索上述資料來填入該表。
範例程式碼:
require('vendor/autoload.php'); $con=Mysqli_connect('localhost','root','','phprow'); $res=mysqli_query($con,"select * from Persons"); if(mysqli_num_rows($res)>0){ $html=''; $html.='ID Name Address '; while($row=mysqli_fetch_assoc($res)){ $html.=''.$row['PersonID'].' '.$row['Name'].' '.$row['Address'].' '; } $html.='
'; }
在上面的範例中,我們將資料庫中的資料儲存在變數$html
中。我們使用了.
運算子連接所有表格元素。因此,我們準備好將 HTML 文件寫入 PDF。
接下來,建立一個名為$mpdf
的變數。使用new
關鍵字將Mpdf()
建構函數的物件指派給變數。使用$html
變數作為物件的參數呼叫WriteHTML()
函數。然後建立另一個變數$file
來儲存 PDF。將files/
與time()
函數連接起來,並再次將其與.pdf
連接起來以建立檔案名稱。將其儲存在$file
變數中。最後,使用$file
作為第一個參數和選項I
作為第二個參數呼叫output()
函數。
因此,我們從資料庫中檢索資料並使用這些資料建立了 PDF。下面的範例在files
資料夾中建立了一個以目前時間為名稱且副檔名為.pdf
的檔案。腳本運行後,PDF 將顯示在瀏覽器中。我們可以從瀏覽器下載 PDF。
範例程式碼:
$mpdf=new \Mpdf\Mpdf(); $mpdf->WriteHTML($html); $file='files/'.time().'.pdf'; $mpdf->output($file,'I');
dompdf
函式庫建立 PDFdompdf
函式庫也是在 PHP 中建立和下載 PDF 的選項。它讓我們將 HTML 載入到 PDF。這個庫與mpdf
庫非常相似;只是方法不同。我們將使用loadHtml()
、render()
和stream()
等方法。我們需要使用指令composer require dompdf/dompdf
將庫下載到我們的工作目錄。它將像第一種方法一樣建立vendor
資料夾以及composer.JSON
和composer.lock
檔案。
例如,要求vendor/autoload.php
作为程序中代码的第一行。然后编写use
关键字以将Dompdf
类导入为use Dompdf/Dompdf
。我们可以使用与上述方法相同的 HTML 表来加载 PDF。
require 'vendor/autoload.php'; use Dompdf\Dompdf;
将 HTML 存储在变量$html
中后,创建另一个变量$dompdf
以创建类Dompdf
的对象。然后使用$html
作为参数调用loadHtml()
方法。接下来,调用render()
函数,然后使用$dompdf
对象调用stream()
函数。
下面的示例将使用第一种方法中的表格创建 PDF。render()
方法将 HTML 呈现为 PDF 文件,而stream()
方法将呈现的 HTML 输出到浏览器。因此,我们可以使用 PHP 中的dompdf
库创建 PDF。
示例代码:
$dompdf = new Dompdf(); $dompdf->loadHtml($html); $dompdf->render(); $dompdf->stream();
以上是在 PHP 中建立 PDF的詳細內容。更多資訊請關注PHP中文網其他相關文章!