borales/yii-pdf

PHP-PDF库(mPDF,HTML2PDF)的Yii包装器

安装数: 109 091

依赖者: 0

建议者: 0

安全性: 0

星标: 60

关注者: 9

分支: 37

开放性问题: 6

类型:yii-extension

0.4.0 2013-08-21 09:05 UTC

This package is auto-updated.

Last update: 2024-09-18 22:26:01 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License

一个小型的Yii扩展,它包装了一些PHP库(目前是mPDF和HTML2PDF),用于将HTML转换为PDF

资源

  • Yii框架
  • mPDF - 是一个用于从HTML生成PDF文件的PHP类,支持Unicode/UTF-8和CJK
  • HTML2PDF - 是一个使用FPDF的PHP4版本和TCPDF的PHP5版本的PHP类。它可以转换有效的HTML和xHTML为PDF

要求

  • Yii 1.1.9或更高版本
  • mPDF版本5.3(发布于2011-07-21)或更高版本
  • HTML2PDF版本4.03(发布于2011-05-27)或更高版本

官方文档和示例

安装

  • 将扩展下载并解压到目录 protected/extensions/yii-pdf
  • 将库(mPDF 和/或 HTML2PDF)下载并解压到目录 protected/vendors 下的相应目录,或在 params 数组中设置新的 'librarySourcePath' 参数值
  • 数组 'defaultParams' - 这是所选库构造函数的默认参数数组。如果您想更改默认参数,可以在配置文件中设置它们(如下所示)。如果您这样做,您必须保持数组项的顺序!
  • 在您的 protected/config/main.php 文件中,添加以下内容

通过composer安装

  • 将以下行添加到您的 composer.json 文件中 "borales/yii-pdf": "dev-master"
<?php
//...
	'components'=>array(
		//...
		'ePdf' => array(
			'class'			=> 'ext.yii-pdf.EYiiPdf',
			'params'		=> array(
				'mpdf'	   => array(
					'librarySourcePath' => 'application.vendors.mpdf.*',
					'constants'			=> array(
						'_MPDF_TEMP_PATH' => Yii::getPathOfAlias('application.runtime'),
					),
					'class'=>'mpdf', // the literal class filename to be loaded from the vendors folder.
					/*'defaultParams'	  => array( // More info: http://mpdf1.com/manual/index.php?tid=184
						'mode'				=> '', //  This parameter specifies the mode of the new document.
						'format'			=> 'A4', // format A4, A5, ...
						'default_font_size' => 0, // Sets the default document font size in points (pt)
						'default_font'		=> '', // Sets the default font-family for the new document.
						'mgl'				=> 15, // margin_left. Sets the page margins for the new document.
						'mgr'				=> 15, // margin_right
						'mgt'				=> 16, // margin_top
						'mgb'				=> 16, // margin_bottom
						'mgh'				=> 9, // margin_header
						'mgf'				=> 9, // margin_footer
						'orientation'		=> 'P', // landscape or portrait orientation
					)*/
				),
				'HTML2PDF' => array(
					'librarySourcePath' => 'application.vendors.html2pdf.*',
					'classFile'			=> 'html2pdf.class.php', // For adding to Yii::$classMap
					/*'defaultParams'	  => array( // More info: http://wiki.spipu.net/doku.php?id=html2pdf:en:v4:accueil
						'orientation' => 'P', // landscape or portrait orientation
						'format'	  => 'A4', // format A4, A5, ...
						'language'	  => 'en', // language: fr, en, it ...
						'unicode'	  => true, // TRUE means clustering the input text IS unicode (default = true)
						'encoding'	  => 'UTF-8', // charset encoding; Default is UTF-8
						'marges'	  => array(5, 5, 5, 8), // margins by default, in order (left, top, right, bottom)
					)*/
				)
			),
		),
		//...
	)
//...

用法

<?php
...
	public function actionIndex()
	{
		# mPDF
		$mPDF1 = Yii::app()->ePdf->mpdf();

		# You can easily override default constructor's params
		$mPDF1 = Yii::app()->ePdf->mpdf('', 'A5');

		# render (full page)
		$mPDF1->WriteHTML($this->render('index', array(), true));

		# Load a stylesheet
		$stylesheet = file_get_contents(Yii::getPathOfAlias('webroot.css') . '/main.css');
		$mPDF1->WriteHTML($stylesheet, 1);

		# renderPartial (only 'view' of current controller)
		$mPDF1->WriteHTML($this->renderPartial('index', array(), true));

		# Renders image
		$mPDF1->WriteHTML(CHtml::image(Yii::getPathOfAlias('webroot.css') . '/bg.gif' ));

		# Outputs ready PDF
		$mPDF1->Output();

		////////////////////////////////////////////////////////////////////////////////////

		# HTML2PDF has very similar syntax
		$html2pdf = Yii::app()->ePdf->HTML2PDF();
		$html2pdf->WriteHTML($this->renderPartial('index', array(), true));
		$html2pdf->Output();

		////////////////////////////////////////////////////////////////////////////////////

		# Example from HTML2PDF wiki: Send PDF by email
		$content_PDF = $html2pdf->Output('', EYiiPdf::OUTPUT_TO_STRING);
		require_once(dirname(__FILE__).'/pjmail/pjmail.class.php');
		$mail = new PJmail();
		$mail->setAllFrom('webmaster@my_site.net', "My personal site");
		$mail->addrecipient('mail_user@my_site.net');
		$mail->addsubject("Example sending PDF");
		$mail->text = "This is an example of sending a PDF file";
		$mail->addbinattachement("my_document.pdf", $content_PDF);
		$res = $mail->sendmail();
	}
...

许可证

  • mPDF 使用GNU通用公共许可证版本2
  • HTML2PDF 使用GNU库或较小通用公共许可证(LGPL)
  • 此扩展新BSD许可证 下发布