core23/dompdf-bundle

This bundle provides a wrapper for using dompdf inside symfony.

Installs: 57 726

Dependents: 0

Suggesters: 0

Stars: 14

Watchers: 1

Forks: 5

Open Issues: 2

Type:symfony-bundle

2.5.0 2018-12-30 23:11 UTC

README

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Build Status Scrutinizer Code Quality Code Climate Coverage Status

This bundle provides a wrapper for using dompdf inside symfony.

Installation

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

composer require core23/dompdf-bundle

Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in config/bundles.php file of your project:

// config/bundles.php

return [
    // ...
    Core23\DompdfBundle\Core23DompdfBundle => ['all' => true],
];

Usage

Whenever you need to turn a html page into a PDF just use this anywhere in your controller:

// Set some html and get the service
$html = '<h1>Sample Title</h1><p>Lorem Ipsum</p>';
$dompdf = $this->get('dompdf');

// Get a StreamResponse for your controller to return the pdf to the browser
$response = $dompdf->getStreamResponse($html, "document.pdf");
$response->send();

// Get binary content of the pdf document
$dompdf->getPdf($html);

If you use Twig to create the content, make sure to use renderView() instead of render(). Otherwise you might get the following HTTP header printed inside your PDF:

HTTP/1.0 200 OK Cache-Control: no-cache

$html = $this->renderView('my_pdf.html.twig', array(
    // ...
));
$dompdf->getStreamResponse($html, 'document.pdf');

Configure the Bundle

# config/packages/core23_dompdf.yml

core23_dompdf:
    defaults:
        dpi: 150
        defaultPaperSize: A4
        ...

Events

The dompdf wrapper dispatches events to convenient get the inner dompdf instance when creating the pdf.

  • dompdf.output is dispatched in getPdf
  • dompdf.stream is dispatched in streamHtml

See Symfony event dispatcher documentation for more info.

License

This bundle is under the MIT license.