core23/dompdf-bundle

This package is abandoned and no longer maintained. The author suggests using the nucleos/dompdf-bundle package instead.

This bundle provides a wrapper for using dompdf inside symfony.

Installs: 112 832

Dependents: 0

Suggesters: 0

Security: 0

Stars: 22

Watchers: 2

Forks: 7

Open Issues: 0

Type:symfony-bundle

3.0.0 2020-06-26 16:05 UTC

README

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Continuous Integration Code Coverage

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 nucleos/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 [
    // ...
    Nucleos\DompdfBundle\NucleosDompdfBundle => ['all' => true],
];

Usage

Whenever you need to turn a html page into a PDF use dependency injection for your service:

final class MyService
{
    public function __construct(DompdfFactoryInterface $factory)
    {
        $this->factory = $factory;
    }

    public function render()
    {
        // ...
        $this->factory->create();
        // ...
    }
}

final class MyOtherService
{
    public function __construct(DompdfWrapperInterface $wrapper)
    {
        $this->wrapper = $wrapper;
    }

    public function stream()
    {
        // ...
        $html = '<h1>Sample Title</h1><p>Lorem Ipsum</p>';

        $response = $this->wrapper->getStreamResponse($html, "document.pdf");
        $response->send();
        // ...
    }

    public function binaryContent()
    {
        // ...
        return $this->wrapper->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(
    // ...
));
$this->wrapper->getStreamResponse($html, 'document.pdf');

Configure the Bundle

# config/packages/nucleos_dompdf.yml

nucleos_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.