jorrenh/laravel-pdf-merger

用于将多个PDF合并成一个的Laravel包。

v2.0.2 2020-12-25 17:38 UTC

This package is auto-updated.

Last update: 2024-09-26 02:00:54 UTC


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的方向(Portrait或Landscape)。两种方法的第二个和第三个参数都是可选的,默认分别为'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页面后,使用mergeduplexMerge方法合并它们,并使用合并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'),
]

作者

  • GrofGraf(将Webklex的LaravelPDFMerger进行适配)
  • JorrenH(添加配置)

致谢

许可

MIT许可(MIT)

版权所有(c)2017 GrofGraf

特此授予任何获得此软件及其相关文档文件(“软件”)副本的任何人免费使用软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供方提供软件的人这样做,但受以下条件的约束:

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于对适销性、适用于特定目的和非侵权的保证。在任何情况下,作者或版权持有人不对任何索赔、损害或其他责任负责,无论这些责任是由于合同行为、侵权或其他方式引起的,无论这些责任源于、产生于或与软件的使用或其他使用相关。