kvr001/yii2-mpdf

A Yii2 包装组件,用于生成从 UTF-8 编码的 HTML 生成的 PDF 文件。

资助包维护!
Open Collective

安装: 108

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 0

分支: 150

语言:CSS

类型:yii2-extension

V1.100.1 2021-04-08 06:47 UTC

This package is auto-updated.

Last update: 2024-09-06 20:45:44 UTC


README

Krajee Logo
yii2-mpdf Donate

Stable Version Unstable Version License Total Downloads Monthly Downloads Daily Downloads

yii2-mpdf 扩展是一个针对 mPDF 库的 Yii2 包装组件,具有增强功能。mPDF 库提供从 UTF-8 编码的 HTML 生成 PDF 文件的能力。该库基于 FPDF 和 HTML2FPDF,并进行了多项增强。库中的关键特性是能够从 HTML 内容动态生成 PDF 文件,处理不同的语言。有关库的更详细信息和理解,请参阅文档手册上游 mPDF 网站。yii2-mpdf 扩展提供了一种简单的方法来集成和使用 mPDF 库,并在您的 Yii 应用程序中提供一些微妙的增强。此版本提供的关键特性包括

  • 在您的 yii 应用程序配置中全局设置 pdf 组件。
  • 使用简单的数组配置轻松设置 mPDF 属性或调用 mPDF 方法。
  • 增强扩展,可以设置您自己的自定义 CSS 文件以渲染格式化的 HTML 内容。
  • 扩展内置了修改后的 bootstrap.css(v3.3.0,针对 mPDF 进行修改)版本,默认应用。这将允许您轻松地从 bootstrap 标记 HTML 生成 PDF 内容。
  • 提供将内联 CSS 预先附加到您自己的 CSS 文件上的简单方法。
  • 提供易于使用的面向对象方法来渲染复杂的 PDF。
  • 通过使用具有最少配置的 render 方法,像任何 Yii 小部件一样轻松使用扩展。
  • 该扩展使用 mPDF 库的最新开发版本(v6.0beta)。它使用 packagist 上的 composer 存储库 kartik-v/mpdf 作为此最新版本的源。mPDF 6.0 可以利用 OpenType 布局表来显示复杂的脚本。此版本(v6.0)包含覆盖几乎所有可想象的脚本/语言的字体(开源)。包括对阿拉伯语或印度语脚本的支持(以及高棉语、老挝语、缅甸语等)。它还预计将改善泰语、越南语和希伯来语的显示。它还包括中文、日文和韩文等额外字体。
  • 内置与 yii2-grid 扩展的集成,允许您将网格导出为 PDF,甚至生成高级 PDF 报告。

演示

阅读扩展的详细文档和用法

安装

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

注意:请检查此扩展的composer.json,了解此扩展的需求和依赖项。阅读有关为您的应用程序的 composer.json 设置 minimum-stability 设置的网络提示/维基

运行以下命令之一:

$ php composer.phar require kartik-v/yii2-mpdf "dev-master"

或添加以下内容到您的 composer.json 文件的 require 部分:

"kartik-v/yii2-mpdf": "dev-master"

to the require section of your composer.json file.

使用方法

类似于小部件的使用

该组件可以像任何小部件一样直接使用,以将您的HTML内容渲染为PDF。例如,您可以在控制器操作中简单调用该组件,如下所示

use kartik\mpdf\Pdf;

public function actionReport() {
    // get your HTML raw content without any layouts or scripts
    $content = $this->renderPartial('_reportView');
    
    // setup kartik\mpdf\Pdf component
    $pdf = new Pdf([
        // set to use core fonts only
        'mode' => Pdf::MODE_CORE, 
        // A4 paper format
        'format' => Pdf::FORMAT_A4, 
        // portrait orientation
        'orientation' => Pdf::ORIENT_PORTRAIT, 
        // stream to browser inline
        'destination' => Pdf::DEST_BROWSER, 
        // your html content input
        'content' => $content,  
        // format content from your own css file if needed or use the
        // enhanced bootstrap css built by Krajee for mPDF formatting 
        'cssFile' => '@vendor/kartik-v/yii2-mpdf/src/assets/kv-mpdf-bootstrap.min.css',
        // any css to be embedded if required
        'cssInline' => '.kv-heading-1{font-size:18px}', 
         // set mPDF properties on the fly
        'options' => ['title' => 'Krajee Report Title'],
         // call mPDF methods on the fly
        'methods' => [ 
            'SetHeader'=>['Krajee Report Header'], 
            'SetFooter'=>['{PAGENO}'],
        ]
    ]);
    
    // return the pdf output as per the destination setting
    return $pdf->render(); 
}

全局组件

您还可以将小部件设置为全局组件,以便在您的应用程序中跨默认预设使用。例如,在您的Yii应用程序配置文件的组件部分设置以下内容

use kartik\mpdf\Pdf;
// ...
'components' => [
    // setup Krajee Pdf component
    'pdf' => [
        'class' => Pdf::classname(),
        'format' => Pdf::FORMAT_A4,
        'orientation' => Pdf::ORIENT_PORTRAIT,
        'destination' => Pdf::DEST_BROWSER,
        // refer settings section for all configuration options
    ]
]

设置组件后,您可以在应用程序中轻松引用它

$pdf = Yii::$app->pdf;
$pdf->content = $htmlContent;
return $pdf->render();

有关其他用法和详细信息,请参阅详细的文档

贡献者

代码贡献者

该项目的存在归功于所有贡献者。[贡献].

财务贡献者

成为财务贡献者,帮助我们维持社区。[贡献]

个人

组织

使用您的组织支持此项目。您的标志将显示在此处,并带有指向您网站的链接。[贡献]

许可证

yii2-mpdf在BSD-3-Clause许可证下发布。有关详细信息,请参阅捆绑的LICENSE.md