discustecnologia/pdf-report-bundle
Composer 安装命令:
composer require discustecnologia/pdf-report-bundle
包简介
Symfony Bundle. Wrapper of wkhtmltopdf that uses twig templating to generate pdf files.
README 文档
README
Symfony Bundle. Wrapper of wkhtmltopdf that uses twig templating to generate pdf files.
Dependencies
You need of wkhtmltopdf installed in your system.
Instalation
You need of the wkhtmltopdf installed in your OS.
Require the bundle with composer:
composer require discustecnologia/pdf-report-bundle
Enable the bundle in the kernel:
public function registerBundles() { $bundles = [ // ... new DiscusTecnologia\PdfReportBundle\DiscusTecnologiaPdfReportBundle(), // ... ]; ... }
How to use
In controllers instead of use:
return $this->render(...);
You should use:
$pdfReport = $this->get('discus-tecnologia.pdf-report'); $pdfReport->setHeader('default/header.twig'); $pdfReport->setFooter('default/footer.twig'); $pdfReport->setMargins(20, 20, 20, 20); $pdfReport->addPages('default/testReport.twig', []); return $pdfReport->generate();
Example of twig report based on records which shows 4 records per page:
{% for i in ((pdfReportPageNumber -1) * 4)..(((pdfReportPageNumber * 4)-1) < (obj|length - 1) ? ((pdfReportPageNumber * 4)-1) : obj|length-1) %}
<div>{{ obj[i] }}</div>
{% endfor %}
Example Symfony Controller
namespace AppBundle\Controller; use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use DiscusTecnologia\PdfReportBundle\Service\PdfReport; class DefaultController extends Controller { /** * @Route("/", name="homepage") */ public function indexAction(Request $request) { $pdfReport = $this->get('discus-tecnologia.pdf-report'); $pdfReport->setSavePDF("/var/tmp/pdfreport.pdf"); $pdfReport->setHeader('default/header.twig'); $pdfReport->setFooter('default/footer.twig'); $pdfReport->setMargins(20, 20, 20, 20); //Default size is A4. You can use A0, A1, A2, A3, A4, A5 or pass custom size array as [width, height] $pdfReport->setPageSize(PdfReport::A3); $pdfReport->setGrayscale(true); $pdfReport->setOrientationLandscape(); $pdfReport->setTotalPages(2); $pdfReport->setHeaderHeight(40); $pdfReport->setFooterHeight(40); $pdfReport->setCss("#footer p { font-size: 10px; text-align: center; background: #ccc; } #content { width: 168mm; /*border: 1px #000000 solid;*/ } p { /*border: 1px #FF0000 solid;*/ max-width: 168mm; text-indent: 30px; margin-bottom: 15px; line-height: 20px; font-size: 14px; text-align: justify; }"); $pdfReport->addPages('default/testeRel.twig', ['obj' => ['a', 'b', 'c', 'd', 'e', 'f', 'g'] ]); return $pdfReport->generate(); //return $pdfReport->renderHTML(); //use for debug } }
Licence
This bundle is under the MIT license. See the complete license in the bundle.
Credits
Author: Rodrigo Ramos
Discus Tecnologia
统计信息
- 总下载量: 18
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 1
- 点击次数: 2
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-05-18