propa/ tcpdi
TCPDI 是一个用于将 PDF 导入并与 TCPDF 一起使用的 PHP 类
v1.3.5
2024-03-25 15:38 UTC
Requires
- php: >=5.3.0
- tecnickcom/tcpdf: ^6.3
README
Composer 即时可用 TCPDI.
TCPDF 的 PDF 导入器,基于 FPDI。需要 pauln/tcpdi_parser 和 FPDF_TPL,这些文件已包含在仓库中。
安装
在 composer.json 中链接包,例如:
composer require propa/tcpdi
使用方法
使用方法基本上与 FPDI 相同,只是导入 TCPDI 而非 FPDI。它还有一个 "setSourceData()" 函数,该函数接受原始 PDF 数据,适用于文件不在磁盘上或无法被 TCPDI 读取的情况。
// Create new PDF document. $pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // Add a page from a PDF by file path. $pdf->AddPage(); $pdf->setSourceFile('/path/to/file-to-import.pdf'); $idx = $pdf->importPage(1); $pdf->useTemplate($idx); $pdfdata = file_get_contents('/path/to/other-file.pdf'); // Simulate only having raw data available. $pagecount = $pdf->setSourceData($pdfdata); for ($i = 1; $i <= $pagecount; $i++) { $tplidx = $pdf->importPage($i); $pdf->AddPage(); $pdf->useTemplate($tplidx); } // Create new PDF document. $pdf = new TCPDI(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); // Add a page from a PDF by file path. $pdf->setSourceFile('/path/to/file-to-import.pdf'); // Import the bleed box (default is crop box) for page 1. $tplidx = $pdf->importPage(1, '/BleedBox'); $size = $pdf->getTemplatesize($tplidx); $orientation = ($size['w'] > $size['h']) ? 'L' : 'P'; $pdf->AddPage($orientation); // Set page boxes from imported page 1. $pdf->setPageFormatFromTemplatePage(1, $orientation); // Import the content for page 1. $pdf->useTemplate($tplidx); // Import the annotations for page 1. $pdf->importAnnotations(1);
TCPDI_PARSER
与 TCPDI 一起使用的解析器,基于 TCPDF_PARSER。支持 PDF 版本 up to v1.7。