cobweb-is/laravel-snappy

适用于Laravel 4的Snappy PDF/图片

v0.2.0 2015-02-05 08:33 UTC

README

对于Laravel 5,请检查0.2/master分支

本包是Snappy的ServiceProvider:https://github.com/KnpLabs/snappy.

您需要安装wkhtmltopdf/wkhtmltoimage。您可以从http://wkhtmltopdf.org/downloads.html下载wkhtmltopdf。请参阅https://github.com/KnpLabs/snappy#wkhtmltopdf-binary-as-composer-dependencies了解如何使用composer进行安装。请注意,某些依赖项(例如libXrender)可能不在您的系统上,可能需要手动安装。安装后,首先检查wkhtmltopdf是否可以通过命令行/shell正确运行。

本包提供了$app['snappy.pdf']和$app['snappy.image']。您必须在配置文件中设置二进制位置。首先发布配置文件

php artisan config:publish cobweb-is/laravel-snappy

然后修改已发布的配置文件中的"binary"行(发布后应位于:app/config/packages/cobweb-is/laravel-snappy/config.php)。

例如,当通过composer加载时,该行应如下所示

'binary' => base_path('vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64'),

除了Snappy类之外,它还提供了一个包装器,类似于https://github.com/barryvdh/laravel-dompdf

在您的composer.json中要求此包,并更新composer。

"cobweb-is/laravel-snappy": "0.1.x"

更新composer后,将ServiceProvider添加到app/config/app.php中的providers数组

'Barryvdh\Snappy\ServiceProvider',

您可以选择使用外观来缩短代码。将以下内容添加到您的facades

'PDF' => 'Barryvdh\Snappy\Facades\SnappyPdf',
'Image' => 'Barryvdh\Snappy\Facades\SnappyImage',

您可以创建一个新的Snappy PDF/Image实例,并加载一个HTML字符串、文件或视图名称。您可以将它保存到文件中,或者作为流(在浏览器中显示)或下载。

使用App容器

$snappy = App::make('snappy.pdf');
//To file
$snappy->generateFromHtml('<h1>Bill</h1><p>You owe me money, dude.</p>', '/tmp/bill-123.pdf');
$snappy->generate('http://www.github.com', '/tmp/github.pdf'));
//Or output:
return new Response(
    $snappy->getOutputFromHtml($html),
    200,
    array(
        'Content-Type'          => 'application/pdf',
        'Content-Disposition'   => 'attachment; filename="file.pdf"'
    )
);

使用包装器

$pdf = App::make('snappy.pdf.wrapper');
$pdf->loadHTML('<h1>Test</h1>');
return $pdf->stream();

或使用外观

$pdf = PDF::loadView('pdf.invoice', $data);
return $pdf->download('invoice.pdf');

您可以将方法链接起来

return PDF::loadFile('http://www.github.com')->stream('github.pdf');

您可以更改方向和纸张大小

PDF::loadHTML($html)->setPaper('a4')->setOrientation('landscape')->setOption('margin-bottom', 0)->save('myfile.pdf')

如果您需要字符串形式的输出,可以使用output()函数获取渲染的PDF,然后您可以自行保存/输出。

您可以将配置文件发布以更改一些设置(默认纸张等)。

php artisan config:publish cobweb-is/laravel-snappy

有关更多信息/设置,请参阅wkhtmltopdf手册

许可证

本Laravel Snappy包装器为开源软件,许可协议为MIT许可证