kadudutra/libmergepdf

用于合并多个PDF的库

4.0.5 2020-06-15 20:22 UTC

This package is auto-updated.

Last update: 2024-09-16 05:38:21 UTC


README

Packagist Version Build Status Quality Score

用于合并多个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