kadudutra / libmergepdf
用于合并多个PDF的库
4.0.5
2020-06-15 20:22 UTC
Requires
- php: ^7.1
- kadudutra/fpdi: ^2.3.5
- tecnickcom/tcpdf: ^6.2.22
Requires (Dev)
- phpunit/phpunit: ^7
- smalot/pdfparser: ~0.13
Conflicts
README
用于合并多个PDF的PHP库。
安装
composer require kadudutra/libmergepdf
用法
将 bar.pdf 的前10页添加到 foo.pdf
use kadudutra\libmergepdf\Merger; use kadudutra\libmergepdf\Pages; $merger = new Merger; $merger->addFile('foo.pdf'); $merger->addFile('bar.pdf', new Pages('1-10')); $createdPdf = $merger->merge();
从迭代器批量添加文件
use kadudutra\libmergepdf\Merger; $merger = new Merger; $merger->addIterator(['A.pdf', 'B.pdf']); $createdPdf = $merger->merge();
合并1.5版本及更高版本的PDF
默认的 FPDI
驱动无法处理1.5版本或更高版本的压缩PDF。可以通过使用稍微更实验性的 TCPDI
驱动来绕过此限制。
use kadudutra\libmergepdf\Merger; use kadudutra\libmergepdf\Driver\TcpdiDriver; $merger = new Merger(new TcpdiDriver);
使用不可变合并器
可以通过直接使用 driver
来实现不可变。
use kadudutra\libmergepdf\Driver\Fpdi2Driver; use kadudutra\libmergepdf\Source\FileSource; use kadudutra\libmergepdf\Pages; $merger = new Fpdi2Driver; $createdPdf = $merger->merge( new FileSource('foo.pdf'), new FileSource('bar.pdf', new Pages('1-10')) );
已知问题
- 在合并时,页面内容流之外的链接和其他内容将被删除。这是由于FPDI的限制,且当前策略无法解决。更多信息请参阅 FPDI。