fabiancernota / yii2-mpdf
zolex/yii2-mpdf 的固定版本,支持选择横竖排版,并兼容 php7.1
Requires
- mpdf/mpdf: dev-master
This package is not auto-updated.
Last update: 2024-09-20 20:11:03 UTC
README
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"
或
"kartik-v/yii2-mpdf": "dev-master"
将以下内容添加到您的 composer.json
文件的 require
部分:
用法
小部件式用法
该组件可以像任何小部件一样直接使用,将您的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
。