yii2tech/html2pdf

此包已被弃用且不再维护。未建议替代包。

提供HTML到PDF和PHP到PDF转换的支持

资助包维护!
klimov-paul
Patreon

安装量: 407 233

依赖项: 1

建议者: 0

安全: 0

星标: 72

关注者: 9

分支: 20

开放问题: 0

类型:yii2-extension

1.0.7 2019-10-17 11:02 UTC

This package is auto-updated.

Last update: 2022-01-10 10:43:45 UTC


README

12951949

为Yii2提供的HTML到PDF转换扩展


此扩展提供对HTML到PDF和PHP到PDF转换的基本支持。

有关许可证信息,请参阅LICENSE文件。

Latest Stable Version Total Downloads Build Status

安装

安装此扩展的首选方式是通过composer

运行

php composer.phar require --prefer-dist yii2tech/html2pdf

或添加

"yii2tech/html2pdf": "*"

到您的composer.json文件的require部分。

注意:您必须单独安装用于实际HTML到PDF转换的软件,具体取决于您想使用的特定转换器。

使用

此扩展提供对HTML到PDF和PHP到PDF转换的支持。它允许从HTML和通过渲染PHP模板来组合PDF文件。

扩展功能汇总到\yii2tech\html2pdf\Manager应用程序组件中。应用程序配置示例

<?php

return [
    'components' => [
        'html2pdf' => [
            'class' => 'yii2tech\html2pdf\Manager',
            'viewPath' => '@app/views/pdf',
            'converter' => 'wkhtmltopdf',
        ],
    ],
    ...
];

对于简单的转换,您可以使用\yii2tech\html2pdf\Manager::convert()\yii2tech\html2pdf\Manager::convertFile()方法

<?php

$html = <<<HTML
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
</head>
<body>
<p>Simple Content</p>
</body>
</html>
HTML;

// create PDF file from HTML content :
Yii::$app->html2pdf
    ->convert($html)
    ->saveAs('/path/to/output.pdf');

// convert HTML file to PDF file :
Yii::$app->html2pdf
    ->convertFile('/path/to/source.html')
    ->saveAs('/path/to/output.pdf');

实际的转换结果取决于使用的特定转换器。您可以使用\yii2tech\html2pdf\Manager::$converter属性进行转换器设置。

提供几个内置的转换器

注意!大多数提供的转换器需要安装额外的软件,这并不是此扩展默认提供的。您将不得不手动安装它,一旦您决定要使用哪个转换器。请参阅特定转换器类以获取更多详细信息。

您可以通过convert()convertFile()方法的第二个参数指定转换选项

<?php

Yii::$app->html2pdf
    ->convertFile('/path/to/source.html', ['pageSize' => 'A4'])
    ->saveAs('/path/to/output.pdf');

您可以在 \yii2tech\html2pdf\Manager 级别设置默认转换选项

<?php

return [
    'components' => [
        'html2pdf' => [
            'class' => 'yii2tech\html2pdf\Manager',
            'viewPath' => '@app/pdf',
            'converter' => [
                'class' => 'yii2tech\html2pdf\converters\Wkhtmltopdf',
                'defaultOptions' => [
                    'pageSize' => 'A4'
                ],
            ]
        ],
    ],
    ...
];

注意:可用的实际转换选项列表取决于要使用的特定转换器。

模板使用

您可以创建通过渲染PHP模板(视图文件)来生成PDF文件,这些文件会生成HTML输出。这些文件被视为常规视图文件,允许传递参数和布局包装。用于此目的的方法是 \yii2tech\html2pdf\Manager::render()

<?php

Yii::$app->html2pdf
    ->render('invoice', ['user' => Yii::$app->user->identity])
    ->saveAs('/path/to/output.pdf');

您可以为模板使用共享布局,这可以通过 \yii2tech\html2pdf\Manager::$layout 来设置。

在每次渲染时,视图都在 \yii2tech\html2pdf\Template 对象的上下文中工作,可以用来在视图文件内部调整布局或PDF转换选项

<?php
/* @var $this \yii\web\View */
/* @var $context \yii2tech\html2pdf\Template */
/* @var $user \app\models\User */
$context = $this->context;

$context->layout = 'layouts/payment'; // use specific layout for this template

// specify particular PDF conversion for this template:
$context->pdfOptions = [
    'pageSize' => 'A4',
    // ...
];
?>
<h1>Invoice</h1>
<p>For: <?= $user->name ?></p>
...