DEV Community

José Antonio Fernández
José Antonio Fernández

Posted on

How use dompdf to generate a simple invoice pdf?

Invoice formato with PHPAt this moment to understand the basis in composer I have decided to create a simple pdf generator with Dompdf package.

This package is awesome and simple, to create a pdf invoice solution for download or create an automatic invoice delivery system.

The idea for monetization:
A create simple auth token system with API_KEY and token to receive JSON data for generating pdf in a simple PHP hosting.
Free hosting for testing this:

Free PHP Hosting

Ok, the code:

Step 1:

run this, for a run this you need to install composer
composer require dompdf/dompdf

The Dompdf documentation: :
Dompdf Documentation

Step 2:

Load vendor.autoload.php package

require 'vendor/autoload.php'; 
Enter fullscreen mode Exit fullscreen mode

Step 3:

Use the main class to create functionalities

// Cargar paquete para usar el modulo de Dompdf use Dompdf\Dompdf; use Dompdf\Options; 
Enter fullscreen mode Exit fullscreen mode

Create an instance of the class Dompdf

$dompdf = new Dompdf(); 
Enter fullscreen mode Exit fullscreen mode

Enable remote origins (for download image)

If not enable this, the image not render in the pdf file and break the template format preset

$options = new Options(); $options->set('isRemoteEnabled', true); $dompdf = new Dompdf($options); 
Enter fullscreen mode Exit fullscreen mode

Step 4:

Create an HTML template, with a text string

$htmlTemplate = ' <style> //all styles for the custom template </style> <html> <head> <htmlcontent> ....... </html> '; 
Enter fullscreen mode Exit fullscreen mode

To pass dynamic vars using this format into the string

'.$contenidoDinamico.' 
Enter fullscreen mode Exit fullscreen mode

For creating bucle with PHP array using the other var to generate a string with Concat operator (htmlinfo.= 'bucleGetInfo') or array method to push data

Step 5:

Load HTML with loadHtml method of the class instance previously named

$dompdf->loadHtml($content); 
Enter fullscreen mode Exit fullscreen mode

Step 6:

Set a size for the page with the setPaper Method

$dompdf->setPaper('A4','landscape'); 
Enter fullscreen mode Exit fullscreen mode

Step 7:

Server compiled and fusion HTML with a PDF format to create a pdf image:

$dompdf->render(); 
Enter fullscreen mode Exit fullscreen mode

Step 8:

Write this information of saving in temporal server memory for sending a file to the client request

$dompdf->stream($fileName); 
Enter fullscreen mode Exit fullscreen mode

Link al repo

Siguemente en las redes como @syntaxter

[deleted user] image

[Deleted User]

Top comments (0)