sgtaziz / laravel-pdf-merger
Laravel 的一个用于将多个 PDF 合并成一个文件的包。
Requires
- illuminate/support: >=5.5
- laravel/helpers: ^1.2
- setasign/fpdi-fpdf: >=2.0
README
受另一个包启发的 Laravel PDF 合并器,为个人使用而创建。已在 Laravel 5.6 上进行测试。
优点
- 也支持 1.4 以上的 PDF 版本
- 支持 PHP 7
安装
$ composer require grofgraf/laravel-pdf-merger
配置
对位于 config/app.php 的主配置文件进行以下更改
'providers' => [ ... GrofGraf\LaravelPDFMerger\Providers\PDFMergerServiceProvider::class ], 'aliases' => [ ... 'PDFMerger' => GrofGraf\LaravelPDFMerger\Facades\PDFMergerFacade::class ]
在合并 1.4 以上版本的 PDF 或 PDF 字符串时,过程中将创建一个临时 PDF 并存储在
storage/tmp目录中,因此您可能需要事先创建它。另外,请注意,此包需要服务器上安装 Ghostscript,才能与 1.5+ 版本的 PDF 正确工作。请参阅 安装指南
用法
您可以通过指定 PDF 的文件路径使用 addPathToPDF 方法添加 PDF 以进行合并,或者通过使用 addPDFString 方法添加 PDF 字符串。两种方法中的第二个参数是所选页面的数组('all' 为所有页面),第三个参数是 PDF 的方向(纵向、横向或自动 [P、L、A])。
$merger->addPathToPDF('/path/to/pdf', 'all', 'P'); $merger->addPDFString(file_get_contents('path/to/pdf'), ['1', '2'], 'L')
您可以使用 setFileName 方法设置合并后的 PDF 名称。
$merger->setFileName('merger.pdf');
最后,使用 merge 或 duplexMerge 方法完成合并过程,并使用合并 PDF 的一个输出选项。两种方法的区别在于,duplexMerge 在每个合并的 PDF 后添加空白页,如果页数为奇数。
可用的输出选项包括
inline()download()string()save('path/to/merged.pdf')
$merger->merge(); $merger->inline();
示例用法
$merger = \PDFMerger::init(); $merger->addPathToPDF(base_path('/vendor/grofgraf/laravel-pdf-merger/examples/one.pdf'), [2], 'P'); $merger->addPDFString(file_get_contents(base_path('/vendor/grofgraf/laravel-pdf-merger/examples/two.pdf')), 'all', 'L'); $merger->merge(); $merger->save(base_path('/public/pdfs/merged.pdf'));
作者
致谢
- Webklex LaravelPDFMerger
许可证
MIT 许可证 (MIT)
版权所有 (c) 2017 GrofGraf
特此授予任何人免费获得本软件及其相关文档文件(“软件”)副本的许可,以无限制地处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本,并允许向软件提供者提供软件的人这样做,前提是遵守以下条件
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、针对特定目的的适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论源于合同、侵权或其他原因,由此软件或其使用或其他交易引起,包括但不限于由此软件或其使用或其他交易引起的任何直接损害。