akemys / laravel-pdf-merger
一个用于将多个PDF合并成一个的Laravel包。
Requires
- illuminate/support: >=5.5
- setasign/fpdi-fpdf: >=2.0
This package is auto-updated.
Last update: 2024-09-15 20:28:02 UTC
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
目录中,因此您可能需要事先创建它。
用法
您可以通过指定PDF的文件路径使用addPathToPDF
方法添加要合并的PDF,或通过addPDFString
方法将PDF文件作为字符串添加。两种方法的第二个参数是所选页面的数组('all'
为所有页面),第三个参数是PDF的方向(纵向或横向)。
$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的输出选项之一。两种方法之间的区别在于,如果合并后的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
特此授予任何获得此软件及其相关文档副本(以下简称“软件”)的人免费权利,不受限制地使用软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向软件提供者提供软件的人这样做,但受以下条件约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、特定用途适用性和非侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是基于合同、侵权或其他原因,无论是否因软件或其使用或其他方式而产生。