HTML to Image PHP Examples

This page contains various examples of using the HTML to Image API in PHP. The examples are complete and fully functional. Read more about how to convert HTML to Image in PHP.

Basic examples
Template rendering examples

Basic examples

Convert a web page to a PNG file

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // run the conversion and write the result to a file
    $client->convertUrlToFile("http://www.example.com", "example.png");
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a web page to in-memory PNG

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // run the conversion and store the result into the "image" variable
    $image = $client->convertUrl("http://www.example.com");

    // at this point the "image" variable contains PNG raw data and
    // can be sent in an HTTP response, saved to a file, etc.
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a web page and write the resulting PNG to an output stream

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // create an output stream for the conversion result
    $output_stream = fopen("example.png", "wb");

    // check for a file creation error
    if (!$output_stream)
        throw new \Exception(error_get_last()['message']);

    // run the conversion and write the result into the output stream
    $client->convertUrlToStream("http://www.example.com", $output_stream);

    // close the output stream
    fclose($output_stream);
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a local HTML file to a PNG file

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // run the conversion and write the result to a file
    $client->convertFileToFile("/path/to/MyLayout.html", "MyLayout.png");
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a local HTML file to in-memory PNG

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // run the conversion and store the result into the "image" variable
    $image = $client->convertFile("/path/to/MyLayout.html");

    // at this point the "image" variable contains PNG raw data and
    // can be sent in an HTTP response, saved to a file, etc.
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a local HTML file and write the resulting PNG to an output stream

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // create an output stream for the conversion result
    $output_stream = fopen("MyLayout.png", "wb");

    // check for a file creation error
    if (!$output_stream)
        throw new \Exception(error_get_last()['message']);

    // run the conversion and write the result into the output stream
    $client->convertFileToStream("/path/to/MyLayout.html", $output_stream);

    // close the output stream
    fclose($output_stream);
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a string containing HTML to a PNG file

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // run the conversion and write the result to a file
    $client->convertStringToFile("<html><body><h1>Hello World!</h1></body></html>", "HelloWorld.png");
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a string containing HTML to in-memory PNG

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // run the conversion and store the result into the "image" variable
    $image = $client->convertString("<html><body><h1>Hello World!</h1></body></html>");

    // at this point the "image" variable contains PNG raw data and
    // can be sent in an HTTP response, saved to a file, etc.
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Convert a string containing HTML and write the resulting PNG to an output stream

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");

    // create an output stream for the conversion result
    $output_stream = fopen("HelloWorld.png", "wb");

    // check for a file creation error
    if (!$output_stream)
        throw new \Exception(error_get_last()['message']);

    // run the conversion and write the result into the output stream
    $client->convertStringToStream("<html><body><h1>Hello World!</h1></body></html>", $output_stream);

    // close the output stream
    fclose($output_stream);
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Get info about the current conversion

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToImageClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setOutputFormat("png");
    $client->setDebugLog(true);

    // run the conversion and write the result to a file
    $client->convertFileToFile("/path/to/MyLayout.html", "MyLayout.png");
    
    // print URL to the debug log
    echo "Debug log url: " . $client->getDebugLogUrl() . "\n";
    
    // print the number of available conversion credits in your account
    echo "Remaining credit count: " . $client->getRemainingCreditCount() . "\n";
    
    // print the number of credits consumed by the conversion
    echo "Consumed credit count: " . $client->getConsumedCreditCount() . "\n";
    
    // print the unique ID of the conversion
    echo "Job id: " . $client->getJobId() . "\n";
    
    // print the size of the output in bytes
    echo "Output size: " . $client->getOutputSize() . "\n";
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Advanced examples

Template rendering Examples

Create Image from JSON data

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToPdfClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setDataString('{
            "name": "World",
            "product": "Pdfcrowd API"
        }');

    // run the conversion and write the result to a file
    $client->convertStringToFile("Hello {{ name }} from {{ product }}", "output.pdf");
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Create Image from XML data

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToPdfClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setDataString('<?xml version="1.0" encoding="UTF-8"?>
        <data>
          <name>World</name>
          <product>Pdfcrowd API</product>
        </data>');

    // run the conversion and write the result to a file
    $client->convertStringToFile("Hello {{ data.name }} from {{ data.product }}", "output.pdf");
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Create Image from YAML data

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToPdfClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setDataString("name: World
product: Pdfcrowd API");

    // run the conversion and write the result to a file
    $client->convertStringToFile("Hello {{ name }} from {{ product }}", "output.pdf");
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>

Create Image from CSV data

<?php
require "pdfcrowd.php";

try
{
    // create the API client instance
    $client = new \Pdfcrowd\HtmlToPdfClient("demo", "ce544b6ea52a5621fb9d55f8b542d14d");

    // configure the conversion
    $client->setDataString("name,product
World,Pdfcrowd API");

    // run the conversion and write the result to a file
    $client->convertStringToFile("Hello {{ name }} from {{ product }}", "output.pdf");
}
catch(\Pdfcrowd\Error $why)
{
    // report the error
    error_log("Pdfcrowd Error: {$why}\n");

    // rethrow or handle the exception
    throw $why;
}

?>