PDFBundle
PDF Bundle provides an easy way to create PDF's from your views based siphoc/PdfBundle, (*1)
Installation
Step 1: Download the bundle using Composer
Add frchoPdfBundle to composer., (*2)
{
"require": {
"frcho/pdf-bundle": "dev-master"
}
}
Install the bundle:, (*3)
$ composer.phar update frcho/pdf-bundle
Composer will install the bundle with the required dependencies., (*4)
Step 2: Enable the bundle
In your AppKernel add the following:, (*5)
<?php
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
// ...
new frcho\PdfBundle\SiphocPdfBundle(),
);
}
In your config.yml file:, (*6)
kijhoTechnologies_pdf:
basepath: "%kernel.root_dir%/../web"
binary: "/usr/local/bin/wkhtmltopdf"
options:
'lowquality': false
'enable-javascript': true
'debug-javascript': true
Usage
Download
In your controller, you can download the contents of your controller like this:, (*7)
$pdfGenerator = $this->get('frcho.pdf.generator');
$pdfGenerator->setName('my_pdf.pdf');
return $pdfGenerator->downloadFromView(
'AcmeDemoBundle:Demo:index.html.twig', array(
'name' => $name,
)
);
Inline display
There's also an option to display the contents in the browser. To do so, use the
following example:, (*8)
$pdfGenerator = $this->get('frcho.pdf.generator');
$pdfGenerator->setName('my_pdf.pdf');
return $pdfGenerator->displayForView(
'AcmeDemoBundle:Demo:index.html.twig', array(
'name' => $name,
)
);
Documentation
The main Documentation can be found in Resources/doc/index.html. It is
auto-generated by PHPDocumentor2. The directory itself is excluded through git
because we use the PHPDoc Markdown plugin
to create proper MD files to include in Git., (*9)
If you want to contribute, be sure to update the documentation and run both
PHPDocumentor2 and PHPDoc Markdown.
This way the documentation keeps up to date properly., (*10)
Tests
For tests I've used PHPUnit. Contributions need to be supported with tests., (*11)
License
This bundle is under the MIT License., (*12)
Dependencies
Buzz
For external calls, I've included the Buzz
Bundle from @kriswallsmith., (*13)
Snappy
To create the actual PDF. We're using Snappy.
This has the wkhtmltopdf dependency. Be
sure that you use the latest version (>=0.11.0_rc1)., (*14)
Symfony
Since this is a Symfony bundle, there are some Symfony dependencies., (*15)
Http Foundation
To create a proper response, I've implemented the Symfony 2.1 Http Foundation
component., (*16)
Templating
To render the views automatically, I've added the templating component
to force a proper templating engine., (*17)
HttpKernel
Since version 1.1.2 we've implemented a logger instance. This depends on the
Symfony2 HttpKernel component., (*18)