razvan171514/pdf-gen

用于生成PDF的Laravel扩展包。

1.0.0 2020-04-30 12:20 UTC

README

用于生成PDF的Laravel扩展包

在您的 composer.json 中添加此包并更新 composer。这将下载包以及以下库

  • mpdf/mpdf
  • erusev/parsedown
  • dompdf/dompdf
$ composer require razvan171514/pdf-gen

安装

Laravel 7.x

config/app.php 文件中,可以添加一个别名,以便在导入外观时使用。

...
'aliases' => [
    ...
    'Pdf' => razvan\PdfGen\Pdf::class,
    ...
],
...

发布配置

默认配置设置在 config/pdf.php 中。将此文件复制到您的配置目录以修改值。您可以使用以下命令发布配置

$ php artisan vendor:publish --provider="razvan\PdfGen\PdfServiceProvider"

配置文件包含此包设置选项的选项,例如驱动配置和特定驱动配置(例如dompdf)。

return [
    /** mpdf , dompdf*/
    'driver' => 'dompdf',
    'dompdf_config' => [
        'page' => 'A4',
        /** landscape, portrait */
        'orientation' => 'portrait',
    ],
    /** path to template directoy */
    'templates_path' => __DIR__ . '/../resources/views/',
    /** path to output directory */
    'output_path' => __DIR__ . '/../resources/views/pdfs/',
];

这里还配置了模板目录的路径以及生成的PDF将存储的路径。而不是默认的硬编码路径,可以使用 base_path 助手

...
'templates_path' => base_path('resources/views'),
'output_path' => base_path('resources/views/pdfs'),
...

注意: 输出文件夹必须存在,否则将抛出异常

用法

整个包的重载工作由 razvan\PdfGen\Pdf::class 完成,它解析 config/pdf.php 文件中的配置并返回所需的PDF文件。

Pdf::generate('file_name.html', [
    'name' => 'oputput_file_name.pdf',
    'mode' => 'F',
]);

razvan\PdfGen\Pdf::generate() 方法接受两个参数

  1. 模板文件(支持的类型有html、markdown、view)。
  2. 包含两个元素的数组:名称和模式。名称键包含输出文件名,模式键包含将要执行的操作。

注意: 第二个参数是可选的,如果不存在,则名称键默认为 file.pdf,模式键默认为 F

模式

  • F 用于在配置中指定的路径的项目文件夹中保存PDF文件。
  • D 用于下载PDF文件。

注意: 对于dompdf驱动程序,只有 D 模式不可用

示例

...
use razvan\PdfGen\Pdf;
...
// html template
Pdf::generate('file_name.html', ['name' => 'some_other_name.pdf']);
// markdown template
Pdf::generate('file_name.md', ['mode' => 'D']);
// view
Pdf::generate(view('blade_view'));
// view with data
Pdf::generate(view('blade_view', compact('data')), [
    'name' => 'cool_name.pdf',
    'mode' => 'D',
]);

注意: 如果在 config/app.php 文件中添加了别名,则可以仅使用 use Pdf; 更改导入语句

注意: 生成方法接受的第二个参数可以通过两个键之一传递(另一个将使用其默认值)

许可证

razvan171514/pdf-gen 是开源软件,使用 MIT许可证 授权。