jorrenh / laravel-pdf-merger
用于将多个PDF合并成一个的Laravel包。
Requires
- illuminate/filesystem: >=5.5
- illuminate/support: >=5.5
- setasign/fpdf: 1.8.*
- setasign/fpdi: ^2.0
README
受其他包启发的Laravel PDF合并器,为个人使用创建,已在Laravel 5.6上测试。
优势
- 也支持1.4以上版本的PDF
- 支持PHP 7
- 添加了
temp
文件夹和gs
二进制文件的配置
安装
$ composer require jorrenh/laravel-pdf-merger
配置
请对位于config/app.php
的主配置文件进行以下更改
'providers' => [ ... JorrenH\LaravelPDFMerger\Providers\PDFMergerServiceProvider::class ], 'aliases' => [ ... 'PDFMerger' => JorrenH\LaravelPDFMerger\Facades\PDFMergerFacade::class ]
在合并1.4以上版本的PDF或PDF字符串时,将在过程中创建一个临时PDF,并存储在配置的
temp
目录中,如果不存在,则会创建。此外,请注意,此包需要服务器上安装并配置Ghostscript,以便与1.5+版本的PDF正常工作。安装指南
注意:Windows用户应配置gswinXXc.exe二进制文件,这是程序的命令行版本。
使用方法
要获取PDF合并器实例,可以使用注册的外观或直接使用PDFMergerFacade
。
$merger = PDFMerger::init();
您可以通过指定PDF文件的文件路径使用addPDF
方法添加要合并的PDF,或使用addString
方法将PDF文件作为字符串添加。两种方法的第二个参数是选定页面的数组('all'
表示所有页面)和第三个参数是PDF的方向(P
ortrait或L
andscape)。两种方法的第二个和第三个参数都是可选的,默认分别为'all'
和'P'
。
$merger->addPDF('/path/to/pdf', 'all', 'P'); $merger->addString(file_get_contents('path/to/pdf'), ['1', '2'], 'L')
您可以使用setFileName
方法设置合并后的PDF名称。
$merger->setFileName('merger.pdf');
添加完PDF页面后,使用merge
或duplexMerge
方法合并它们,并使用合并PDF的输出选项之一。两种方法之间的区别在于,duplexMerge
在每次合并的PDF后添加空白页,如果页数是奇数,则启用双面打印。
可用的输出选项包括
inline()
download()
string()
save('path/to/merged.pdf')
$merger->merge(); $merger->inline(); /* output option */
示例用法
$merger = \PDFMerger::init(); $merger->addPDF(base_path('/vendor/jorrenh/laravel-pdf-merger/examples/one.pdf'), [2], 'P'); $merger->addString(file_get_contents(base_path('/vendor/jorrenh/laravel-pdf-merger/examples/two.pdf')), 'all', 'L'); $merger->merge(); $merger->save(base_path('/public/pdfs/merged.pdf'));
配置
以下列出了此包的默认配置。如果您想更改任何默认值,可以将默认配置发布到您的Laravel安装。
$ php artisan vendor:publish --provider="JorrenH\LaravelPDFMerger\Providers\PDFMergerServiceProvider"
// Default configuration 'temp' => storage_path('app/temp/'), 'compatibility' => [ 'enabled' => true, 'binary' => env('GS_BINARY', '/usr/local/bin/gs'), ]
作者
致谢
- Webklex LaravelPDFMerger
许可
MIT许可(MIT)
版权所有(c)2017 GrofGraf
特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供方提供软件的人这样做,但受以下条件的约束:
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论这些责任是由于合同行为、侵权或其他方式引起的,无论这些责任源于、产生于或与软件的使用或其他使用相关。