antowastrong / tcpdi
TCPDI是一个用于与TCPDF一起使用的PHP类,用于导入PDF文件
1.0.4
2021-04-06 06:54 UTC
Requires
- php: >=5.3.0
- tecnickcom/tcpdf: 6.2.*
This package is not auto-updated.
Last update: 2024-10-02 23:26:12 UTC
README
支持处理PDF批注的TCPDI,已准备好使用Composer。
TCPDF的PDF导入器,基于FPDI。需要pauln/tcpdi_parser和包含在仓库中的FPDF_TPL。
安装
在composer.json中链接包,例如:
{ "require": { "antowastrong/tcpdi": "dev-master" } }
使用方法
使用方法基本上与FPDI相同,只是导入TCPDI而不是FPDI。它还有一个"setSourceData()"函数,可以接受原始PDF数据,用于文件不在磁盘上或无法由TCPDI读取的情况。
require_once __DIR__ . '/../vendor/autoload.php'; use AntowaStrong\TCPDI\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); }
从版本1.1开始,TCPDI还包括处理PDF批注的附加功能。由于批注是相对于出血框而不是裁剪框定位的,因此您需要确保导入完整的出血框;还引入了一个新函数来设置页面格式(包括裁剪框在内的各种框)来自导入的页面,以便导入的页面与原始文档更匹配。以下示例演示了这一点
require_once __DIR__ . '/../vendor/autoload.php'; use AntowaStrong\TCPDI\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->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版本1.7及以下。