kalpvaig/laravel-pdf-merger

Laravel 的一个包,可以将多个 PDF 文件合并为一个。

dev-master 2023-05-23 05:47 UTC

This package is auto-updated.

Last update: 2024-09-23 08:35:41 UTC


README

受其他包启发的 Laravel PDF 合并器,为个人使用而创建。在 Laravel 5.6 上进行了测试。

优点

  • 也支持 1.4 版本以上的 PDF
  • 支持 PHP 7

安装

 $ composer require kalpvaig/laravel-pdf-merger

配置

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

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

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

在合并版本高于 1.4 的 PDF 或 PDF 字符串时,过程中会创建一个临时 PDF 并存储在 storage/app/public/tmp 目录中,因此您可能需要事先创建它。此外,请注意,此包要求服务器上安装 Ghostscript 才能正确处理 1.5+ 版本的 PDF。请参阅 安装指南

Ubuntu 服务器的必需包

- `sudo apt install ghostscript`
// ghostscript should be installed on your machine

用法

您可以通过指定 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');

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

可用的输出选项包括

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

示例用法

$merger = new PDFMerger(new Filesystem());

$merger->addPathToPDF(base_path('/vendor/kalpvaig/laravel-pdf-merger/examples/one.pdf'), [2], 'P');
$merger->addPDFString(file_get_contents(base_path('/vendor/kalpvaig/laravel-pdf-merger/examples/two.pdf')), 'all', 'L');

// Or You can use A for detecting automatic orientation
$merger->addPDFString(file_get_contents(base_path('/vendor/kalpvaig/laravel-pdf-merger/examples/three.pdf')), 'all', 'A');


$merger->merge();
$merger->save(base_path('/public/pdfs/merged.pdf'));

作者

致谢

许可证

MIT 许可证 (MIT)

版权所有 (c) 2017 Shashwat(前维护者 - GrofGraf)

在此特此授予任何人免费获得本软件及其相关文档文件(“软件”)副本的许可,以不受限制地处理该软件,包括但不限于使用、复制、修改、合并、发布、分发、转授许可和/或销售软件副本的许可,并允许向获得软件的人提供软件,前提是遵守以下条件

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

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定目的和不受侵权的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论该责任是基于合同、侵权或其他原因,无论该责任是否源于、源自或与该软件或其使用或其他方式相关。