Skip to content

๐Ÿ“œ This bundle provides a wrapper for using dompdf inside symfony.

License

Notifications You must be signed in to change notification settings

core23/NucleosDompdfBundle

ย 
ย 

Repository files navigation

NucleosDompdfBundle

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Continuous Integration Code Coverage Type 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::class => ['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.

About

๐Ÿ“œ This bundle provides a wrapper for using dompdf inside symfony.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%