imag / files-bundle
Symfony 2 的文件包
v3.0.3
2018-12-10 08:40 UTC
Requires
- php: >=5.3.3
- knplabs/knp-snappy-bundle: ^1.5
- symfony/symfony: >2.0
- zendframework/zendpdf: 2.*
README
此包可以创建/管理PDF文件。可以从HTML页面创建PDF,并将多个PDF文件附加到文档中,并压缩最终文档。它使用KnpSnappyBundle从HTML创建PDF,并使用ZendPdf附加PDF文件。
安装
- 下载FilesBundle
- 启用包
- 配置KnpSnappyBundle
如何获取包
注意
dev-master版本与2.x版本不兼容。
Composer
在项目根目录修改composer.json
// {root}/composer.json { [...], "require": { [...], "imag/files-bundle": "dev-master" } }
启用包
<?php // app/AppKernel.php public function registerBundles() { $bundles = array( // ... new IMAG\FilesBundle\IMAGFilesBundle(), ); }
配置KnpSnappyBundle
请阅读官方KnpSnappyBundle文档 https://github.com/KnpLabs/KnpSnappyBundle
用法
从HTML创建PDF
<?php $pdf = $this->get('imag_files.pdf') ->setTemplate("foo.html.twig", array('includeVar', $includeVar)) ->setPdfPrefix('foo-file') // Like : 'foo-file-uniqId().pdf' ->setPath('/home/foo/tmp') // Default sys_get_temp_dir() ->addParameter('name', $value) ->htmlToPdf() ;
将PDF文件附加到最终文档
<?php $pdf = $this->get('imag_files.pdf') ->setPdfPath($finalPdf) ->appendFiles(array($file1, $files2)) ;
将文件添加到压缩归档中
<?php $zip = $this->get('imag_files.zip') ->add($pdf) ;
示例
Twig模板
<!DOCTYPE html> <html> <head> <meta charset='utf-8'> {% include('NSFooBundle:Pdf/css:' ~ includeVar) %} </head> <body> <h1>{{ data.title }}</h1> <h2>{{ data.body }}</h2> </body> </html>