本文檔涉及 FPDI 2。
FPDI 是 PHP 類別的集合,可協助開發人員從現有 PDF 文件中讀取頁面並將其用作 FPDF 中的模板,FPDF 由 Olivier Plathey 開發。除了 FPDF 的副本之外,FPDI 不需要任何特殊的 PHP 擴充功能。
FPDI 也可以用作 TCPDF 或 tFPDF 的擴充。
由於 FPDI 可以與 FPDF、TCPDF 或 tFPDF 一起使用,因此我們沒有在主composer.json 檔案中新增固定依賴項。您需要自行將依賴項新增至您選擇的 PDF 生成庫。
若要將 FPDI 與 FPDF 結合使用,請在 Composer.json 檔案中包含以下內容:
{"require": {"setasign/fpdf": "1.8.*","setasign/fpdi": "^2.5"} }
如果你想使用 TCPDF,你必須將你的composer.json 更新為:
{"require": {"tecnickcom/tcpdf": "6.6.*","setasign/fpdi": "^2.5"} }
如果你想使用 tFPDF,你必須將你的composer.json更新為:
{"require": {"setasign/tfpdf": "1.33.*","setasign/fpdi": "^2.3"} }
如果您不使用 Composer,只需在 /src 資料夾中新增 autoload.php 即可:
require_once('src/autoload.php');
如果您實作了 PSR-4 自動載入器,只需如下註冊 src 路徑:
$loader = new ExamplePsr4AutoloaderClass;$loader->register();$loader->addNamespace('setasignFpdi', 'path/to/src/');
版本 2 是從頭開始完全重寫 FPDI,其中包含:
命名空間程式碼
乾淨且最新的程式碼庫和風格
PSR-4 相容自動加載
效能提升高達 100%
更少的記憶體消耗
本機支援從字串或串流資源讀取 PDF
支援文件頭前包含「無效」資料的文檔
優化頁面樹解析
個別異常的使用
多種測試類型(單元測試、功能測試和視覺測試)
我們試圖保持主要方法和邏輯工作流程與版本 1 相同,但請注意,更新到版本 2 時應考慮一些不相容的變更:
您需要使用src/autoload.php
檔案而不是classes/FPDI.php
載入程式碼。
類別和特徵現在已命名: setasignFpdi
不再支援以斜線開頭的頁面邊界,例如/MediaBox
。刪除斜杠或使用常數PdfReaderPageBoundaries
。
useTemplate()
或getTemplateSize()
方法的參數 $x、$y、$width 和 $height 現在具有更符合邏輯的正確預設值。現在,傳遞0
作為寬度或高度將導致InvalidArgumentException
。
getTemplateSize()
的傳回值已變更為具有更多按鍵和可重用性的陣列:使用width
代替w
,使用height
代替h
。
如果您想將FPDI 與 TCPDF 一起使用,您需要重構程式碼以使用TcpdfFpdi
類別(自 2.1 起;之前是TcpdfFpdi
)而不是FPDI
。
一個簡單的範例,匯入單一頁面並將其放置到新建立的頁面上:
AddPage();// 設定來源檔案$pdf->setSourceFile("Fantastic-Speaker.pdf");// 匯入頁面1$tplId = $pdf ->importPage(1);//使用導入的頁面並將其放置在點10,10,寬度為100毫米$pdf->useTemplate($tplId, 10, 10, 100);$pdf->輸出() ;
此處提供完整的最終用戶文件和 API 參考。