dmitrivereshchagin / yii-snappy
基于 Snappy 的基本包装,实现为 Yii 组件
v1.0.0
2016-03-09 10:23 UTC
Requires
- php: >=5.3.0
- knplabs/knp-snappy: 0.4.*
This package is not auto-updated.
Last update: 2024-09-14 18:26:02 UTC
README
这是一个基于 Snappy 的基本包装,实现为 Yii 应用组件。Snappy 是一个 PHP 库,使用 wkhtmltopdf 和 wkhtmltoimage 将 HTML 渲染为 PDF 和各种图像格式。
安装
使用 Composer 安装应该是直接的
% composer require dmitrivereshchagin/yii-snappy
要在您的应用程序中注册组件,请在配置 components
部分添加类似以下内容
'pdf' => array( 'class' => 'dmitrivereshchagin\\yii\\snappy\\PdfComponent', 'binary' => '/usr/local/bin/wkhtmltopdf', 'options' => array('orientation' => 'landscape'), 'tempdir' => basename(__DIR__).'/runtime/pdf', ), 'image' => array( 'class' => 'dmitrivereshchagin\\yii\\snappy\\ImageComponent', 'binary' => '/usr/local/bin/wkhtmltoimage', 'tempdir' => basename(__DIR__).'/runtime/image', ),
指定二进制文件路径是强制性的。可选地,您可以配置默认的命令行参数,这些参数可以在以后覆盖或调整。还可以使用 snappyTempdir
应用程序参数为两个组件设置临时目录。
用法
使用 Yii::app()->pdf
和 Yii::app()->image
生成 PDF 文档和图像。这些组件提供了对 \Knp\Snappy\GeneratorInterface
声明的方法的访问。
以下是一些示例。
从 URL 生成图像
Yii::app()->image->generate('http://example.com', '/path/to/image.jpg');
从 URL 生成 PDF 文档
Yii::app()->pdf->generate('http://example.com', '/path/to/document.pdf');
从多个 URL 生成 PDF 文档
Yii::app()->pdf->generate( array('http://example.com', 'http://example.org'), '/path/to/document.pdf' );
从视图生成 PDF 文档
Yii::app()->pdf->generateFromHtml( $this->render('view', array('name' => $value), $return = true), '/path/to/document.pdf' );
从控制器生成作为响应的 PDF 文档
$html = $this->render('view', array('name' => $value), $return = true); Yii::app()->request->sendFile( 'document.pdf', Yii::app()->pdf->getOutputFromHtml($html) );
在内部包含相对 URL 的 PDF 文档
$url = Yii::app()->createAbsoluteUrl('controller/action'); Yii::app()->request->sendFile( 'document.pdf', Yii::app()->pdf->getOutput($url) );
致谢
此代码使用 Snappy 库。Snappy 最初由 KnpLabs 团队开发。