votong/laravel-pdf-merger

Laravel的扩展包,用于将多个PDF文件合并成一个。

v0.0.3 2021-10-20 02:49 UTC

This package is not auto-updated.

Last update: 2024-09-18 17:02:04 UTC


README

受其他包启发的Laravel PDF合并器,用于个人用途。已在Laravel 5.6上测试。

优点

  • 也支持版本大于1.4的PDF
  • 支持PHP 7

安装

 $ composer require votong/laravel-pdf-merger

配置

在主配置文件config/app.php中进行以下更改

'providers' => [
   ...
   VoTong\LaravelPDFMerger\Providers\PDFMergerServiceProvider::class
],

'aliases' => [
   ...
   'PDFMerger' => VoTong\LaravelPDFMerger\Facades\PDFMergerFacade::class
]

在合并版本大于1.4或PDF字符串时,会创建一个临时PDF文件,并将其存储在storage/tmp目录中,因此您可能需要事先创建它。另外,注意此包需要服务器上安装Ghostscript才能正确地与PDF版本1.5+一起使用。安装指南

用法

您可以通过指定PDF文件的路径来添加PDF文件以进行合并,使用addPathToPDF方法,或者使用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');

最后,使用mergeduplexMerge方法完成合并过程,并为合并后的PDF选择一个输出选项。两种方法之间的区别在于,如果合并后的PDF页数是奇数,则duplexMerge方法会在每个合并后的PDF后面添加一个空白页。

可用的输出选项有

  • inline()
  • download()
  • string()
  • save('path/to/merged.pdf')
$merger->merge();
$merger->inline();

示例用法

$merger = \PDFMerger::init();
$merger->addPathToPDF(base_path('/vendor/votong/laravel-pdf-merger/examples/one.pdf'), [2], 'P');
$merger->addPDFString(file_get_contents(base_path('/vendor/votong/laravel-pdf-merger/examples/two.pdf')), 'all', 'L');
$merger->merge();
$merger->save(base_path('/public/pdfs/merged.pdf'));

作者

致谢

许可

MIT许可(MIT)

版权所有 © 2017 VoTong

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

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

本软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不侵犯版权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该索赔、损害或其他责任是由于合同、侵权或其他行为而引起的,无论是在软件中、使用软件或在软件的使用或其他交易中产生的。