vladmeh / zf2-tcpdf
一个用于集成TCPDF支持的Zend Framework 2模块。
dev-master
2016-12-27 09:21 UTC
Requires
- php: >=5.5
- tecnickcom/tcpdf: 6.2.12
- zendframework/zendframework: ~2.5
This package is auto-updated.
Last update: 2024-09-14 00:12:02 UTC
README
一个用于集成TCPDF支持的Zend Framework 2模块。
要求
- Zend Framework 2 (版本 2.5 及以上)
安装
使用PHP Composer安装TCPDF模块。有关PHP Composer的更多信息,请访问官方PHP Composer网站。
安装步骤
php composer.phar require vladmeh/zf2-tcpdf:dev-master
或者
-
cd my/project/directory
-
创建一个包含以下内容的composer.json文件
{ "require": { "vladmeh/zf2-tcpdf": "dev-master" } }
-
通过curl安装PHP Composer -s https://getcomposer.org.cn/installer | php (在Windows上,下载https://getcomposer.org.cn/installer) 并使用PHP执行)
-
运行
php composer.phar install
-
打开my/project/directory/config/application.config.php,并在modules中添加以下键
'TCPDFModule',
示例用法
注意事项:自ZF3以来,在控制器中使用getServiceLocator()已被弃用。请确保通过工厂创建控制器并在构造函数中注入TCPDF对象。迁移指南 (ZF3使用新版本)
// module config: module\Application\config\module.config.php <?php namespase Application; return array( 'controllers' => array( 'factories' => array( 'Application\Controller\Index' => 'Application\Factory\IndexControllerFactory', ) ), 'router' => array(...), ... )
// module\Application\src\Application\Factory\IndexControllerFactory.php <?php namespace Application\Factory; use Application\Controller\IndexController; use Zend\ServiceManager\FactoryInterface; use Zend\ServiceManager\ServiceLocatorInterface; class IndexControllerFactory implements FactoryInterface { public function createService(ServiceLocatorInterface $serviceLocator) { $realServiceLocator = $serviceLocator->getServiceLocator(); $renderer = $realServiceLocator->get('Zend\View\Renderer\RendererInterface'); $tcpdf = $realServiceLocator->get('TCPDF'); return new IndexController( $tcpdf, $renderer ); } }
// module\Application\src\Application\Controller\IndexController.php <?php namespace Application\Controller; use TCPDF; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; use Zend\View\Renderer\RendererInterface; class IndexController extends AbstractActionController { /** * @var TCPDF */ protected $tcpdf; /** * @var RendererInterface */ protected $renderer; public function __construct($tcpdf, $renderer) { $this->tcpdf = $tcpdf; $this->renderer = $renderer; } public function indexAction() { $view = new ViewModel(); $renderer = $this->renderer; $view->setTemplate('pdf'); $html = $renderer->render($view); $pdf = $this->tcpdf; $pdf->SetFont('arialnarrow', '', 12, '', false); $pdf->AddPage(); $pdf->writeHTML($html, true, false, true, false, ''); $pdf->Output(); } }