· tutorials · 4 min read

How To Convert HTML to PDF with PHP

Master the art of converting HTML to PDF in PHP by exploring the most effective libraries and tools.

Master the art of converting HTML to PDF in PHP by exploring the most effective libraries and tools.

Introduction

Converting HTML to PDF is a frequent requirement for PHP developers, especially when dealing with report generation, invoice creation, or simply rendering user-generated content for offline use. In this article, we explore various PHP libraries that facilitate this conversion, guiding you through a step-by-step approach to select and use the most efficient tool for your project needs.

Dompdf: A PHP Library

Dompdf is a popular PHP library that offers a straightforward way to convert HTML to PDF. It supports CSS styles, which means you can style your HTML as needed before converting it.

Step 1: Install Dompdf

Use Composer to install Dompdf in your project:

Terminal window
composer require dompdf/dompdf

Step 2: Convert HTML to PDF

<?php
require 'vendor/autoload.php';
use Dompdf\Dompdf;
$dompdf = new Dompdf();
$dompdf->loadHtml('<h1>Hello, Dompdf!</h1>');
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();
$dompdf->stream("sample.pdf");
?>

This code initializes Dompdf, loads HTML content, sets the paper size, renders the PDF, and streams it to the browser.

TCPDF: Advanced PDF Generation

For more complex requirements, TCPDF is a powerful library that supports a wide range of PDF features.

Step 1: Install TCPDF

Terminal window
composer require tecnickcom/tcpdf

Step 2: Generate PDF with TCPDF

<?php
require_once('vendor/autoload.php');
$pdf = new TCPDF();
$pdf->AddPage();
$pdf->SetFont('helvetica', '', 12);
$pdf->Write(0, 'Hello, TCPDF!', '', 0, 'L', true, 0, false, false, 0);
$pdf->Output('example.pdf', 'I');
?>

This snippet creates a new PDF, adds a page, sets the font, writes text to the page, and outputs the PDF to the browser.

Comparison Table

FeatureDompdfTCPDF
Ease of UseEasy for basic needsModerate for advanced features
CSS SupportYes, with limitationsExtensive, with CSS and HTML5 support
PerformanceGood for small to medium-sized documentsOptimized for larger documents
CustomizationLimited compared to TCPDFHighly customizable

Both Dompdf and TCPDF offer robust solutions for converting HTML to PDF in PHP. Your choice depends on the complexity of your documents and the level of customization required. For simple projects, Dompdf might be the go-to choice for its ease of use, while TCPDF is better suited for more complex documents that require fine-grained control over the PDF generation process.

A Better Approach: HTML to PDF using Templated

For tasks like generating PDFs from templates or managing generated PDFs, Templated offers a powerful and efficient solution. Templated’s API simplifies the process, eliminating the need for extensive coding or manual template management.

With Templated you can design your PDF template using a drag-and-drop editor and use an API to generate PDFs.
Check the video below to see an example of the editor:

Using Templated with PHP

Step 1: Set Up Templated API

Templated’s API can be easily integrated into your PHP application, allowing you to leverage its capabilities for PDF generation with minimal effort. After logging in you will see your Dashboard where you can manage your templates or create new ones:

How to create a template from the dashboard

Ensure you have an account on Templated and obtain your API key from the dashboard. Use curl or any HTTP client in PHP to make API requests.

Step 2: Generate PDF with Templated

Here’s a PHP example using curl to make a POST request to Templated’s API:

<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.templated.io/v1/render',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => json_encode(array(
"template" => "your-template-id",
"format" => "pdf",
"layers" => array(
"date" => array("text" => "02/10/2024"),
"name" => array("text" => "John Doe"),
"signature" => array("text" => "Dr. Mark Brown"),
"details" => array("text" => "This certificate is awarded to John Doe in recognition of their successful completion of Computer Science Degree on 02/10/2024.")
)
)),
CURLOPT_HTTPHEADER => array(
'Authorization: Bearer API_KEY', // Replace YOUR_API_KEY with your actual API key
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
?>

Replace your-template-id with your template ID and API_KEY with your actual API key from Templated.

Note: For a broader look at PHP libraries for PDF generation, including options beyond HTML conversion, check out our comprehensive guide: Generate PDFs in PHP with 5 Popular Libraries. This guide covers a variety of tools and techniques to meet diverse PDF creation needs in PHP.

Other languages

You you want to learn how to convert HTML to PDF in other languages here are other resources for you to explore:

Conclusion

While PHP offers libraries like Dompdf and TCPDF for HTML to PDF conversion, Templated provides a more streamlined and scalable solution. With Templated, you can focus on your application’s core features, leaving the complexities of PDF generation to a robust and reliable platform.

Automate your images and PDFs with a powerful API

Automate your marketing, social media visuals, banners, PDFs and more with our
 API and no-code integrations

Learn More
Back to Blog

Ready to start generating your images and PDFs?

Sign up to our free trial and try it for yourself

See our latest posts

View all posts »
How To Automate Job Posting Images for LinkedIn

How To Automate Job Posting Images for LinkedIn

Learn how to automate job posting images for LinkedIn using Templated, Google Sheets, and Zapier, saving time while keeping your visuals consistent.

How To Automate Instagram Posts using Google Sheets & Make

How To Automate Instagram Posts using Google Sheets & Make

Learn how to automate your Instagram posts using Templated and Google Sheets, saving time and ensuring a steady flow of engaging content for your audience.

How to Generate Images from Google Sheets with Zapier

How to Generate Images from Google Sheets with Zapier

Learn how to automate image generation using data from Google Sheets and Templated's powerful API with Zapier. This step-by-step guide will help you create a no-code workflow to streamline your visual content creation process.

How to Generate Images from Google Sheets with Make

How to Generate Images from Google Sheets with Make

Learn how to automate image generation using data from Google Sheets and Templated's powerful API with Make (formerly Integromat). This step-by-step guide will help you create a no-code workflow to streamline your visual content creation process.