きくせんぱい / yii2-mpdf
一个用于从UTF-8编码的HTML生成PDF文件的mPDF库的Yii2包装组件。
v1.0.1.5
2017-05-09 22:10 UTC
Requires
- kikusempai/mpdf: v6.1.0.1
This package is not auto-updated.
Last update: 2024-09-15 02:52:03 UTC
README
yii2-mpdf 扩展是针对 mPDF库 的一个增强型Yii2包装组件。mPDF库能够从UTF-8编码的HTML中生成PDF文件。该库基于FPDF和HTML2FPDF,增加了许多功能。库中的关键特性是能够从HTML内容动态生成PDF文件,并处理多种语言。请参阅文档手册或上游mpdf网站以获取更多细节和理解。yii2-mpdf扩展提供了一个简单的方法来整合和使用mPDF库,并增加了细微的改进。此版本提供的关键特性包括:
- 在yii应用程序配置中全局设置
pdf
组件。 - 使用简单的数组配置轻松设置mPDF属性或调用mPDF方法。
- 增强扩展,以设置用于渲染格式化HTML内容的自定义CSS文件。
- 内置了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,以获取此扩展的要求和依赖项。阅读此网络技巧/wiki,了解如何设置应用程序的composer.json中的
minimum-stability
设置。
运行以下命令之一:
$ php composer.phar require kartik-v/yii2-mpdf "dev-master"
或添加以下内容到您的composer.json
文件的require
部分。
"kartik-v/yii2-mpdf": "dev-master"
使用
用法
小部件样式用法
该组件可以直接使用,类似于任何小部件来将您的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/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
文件。