Laravel Dompdf Set Different font-family Example




Laravel Dompdf Set Different font-family Example

In tis example I will explain you to Dompdf Set Different font-family Example in laravel/php.When generating a PDF with Dompdf then it ignores fonts that are not available in its internally – Helvetica, Times-Roman, Courier, Zapf-Dingbats, Symbol.

Require to load the fonts for use in PDF creation which is not existing in Dompdf internal fonts.

In this tutorial, I am creating PDF of MySQL database table records and set its font-family using Dompdf.

Step 1: Download Dompdf

Download Dompdf latest version from here.

Copy and extract it in your project directory.

Step 2 :Table structure

Create users table and add some records.

CREATE TABLE `users` (


`username` varchar(100) NOT NULL,

`name` varchar(100) NOT NULL,

`email` varchar(100) NOT NULL


Step 3: Configuration

Create a config.php for the database connection.


$host = "localhost"; /* Host name */

$user = "root"; /* User */

$password = ""; /* Password */

$dbname = "tutorial"; /* Database name */

$con = mysqli_connect($host, $user, $password,$dbname);

// Check connection

if (!$con) {

die("Connection failed: " . mysqli_connect_error());


Step 4: Copy fonts

Create a new fonts folder at the project root.

Copy your fonts which you want to use in your pdf to the fonts folder. I have copied OpenSans-Regular.ttf and OpenSans-Bold.ttf to the folder.

Step 5 :Create PDF and set font-family

In this step create Create a new pdf.php file.

Load Fonts and Use it

Create $html variable to store data in HTML format for pdf generation.

Load fonts using @font-face CSS rule.

In the example, I am loading OpenSans-Regular and OpenSans-Bold fonts.

Pass the file path in src.

Now, use these fonts in the selectors.

I used 'OpenSans-Bold' in

header columns and 'OpenSans-Regular' in
body columns.

Add data and create PDF

Fetch all records from the users table and create new rows.

Create an object of Dompdf and pass $html in loadHtml() method.

Completed Code

include "config.php";

$html = "";

$html .= "<table border='1' width='100%' style='border-collapse: collapse;'>











$usersData = mysqli_query($con,"select * from users");

$sno = 1;

while($row = mysqli_fetch_assoc($usersData)){

$html .= "<tr>







$html .= "</tbody></table>";

$filename = "newpdffile";

// include autoloader

require_once 'dompdf/';

// reference the Dompdf namespace

use Dompdf\Dompdf;

// instantiate and use the dompdf class

$dompdf = new Dompdf();


// (Optional) Setup the paper size and orientation

$dompdf->setPaper('A4', 'landscape');

// Render the HTML as PDF


// Output the generated PDF to Browser


It will help you..

#Laravel 7



#Laravel 6