[SonataAdminExtraExportBundle][sonata-admin-extra-export-bundle] is a PHP (5.4+) extension for Sonata Admin. By default Sonata Admin has json, xml, csv and xls export formats.
The SonataAdminExtraExportBundle provides a simple integration for your Symfony project with Sonata Admin and adds support of:
- pdf (requires KnpSnappyBundle)
- jpg (requires KnpSnappyBundle)
With composer, add:
{
"require": {
"knplabs/knp-snappy-bundle": "dev-master",
"whyte624/sonata-admin-extra-export-bundle": "dev-master"
}
}
Then enable it in your kernel:
// app/AppKernel.php
public function registerBundles()
{
$bundles = array(
//...
new Whyte624\SonataAdminExtraExportBundle\Whyte624SonataAdminExtraExportBundle(),
new Knp\Bundle\SnappyBundle\KnpSnappyBundle(),
//...
Configure KnpSnappyBundle.
[SonataAdminExtraExportBundle][sonata-admin-extra-export-bundle] requires you to add traits with export formats to Admin class and extension of export method to CRUDController class.
Add trait to Admin class:
//src/Acme/AcmeBundle/Admin/MyAdmin.php
use Sonata\AdminBundle\Admin\Admin;
use Whyte624\SonataAdminExtraExportBundle\Admin\AdminExtraExportTrait;
class MyAdmin extends Admin
{
//...
use AdminExtraExportTrait;
//...
Add trait to CRUDController class
//src/Acme/AcmeBundle/Controller/MyCRUDController.php
use Sonata\AdminBundle\Controller\CRUDController;
use Whyte624\SonataAdminExtraExportBundle\Controller\CRUDControllerExtraExportTrait;
class MyCRUDController extends CRUDController
{
//...
use CRUDControllerExtraExportTrait;
//...
This will add extra export formats to your admin.
You can easily add your companies logo to PDF export, by overriding Whyte624SonataAdminExtraExportBundle::html_layout.html.twig. Just make sure, that paths for images and css that you are using are absolute.
Override getPdfOptions class in your CRUDController class to change orientation to landscape.