Cloud API helps both expert and neophyte developers in streamlining the conversion of PDF to HTML in PHP asynchronously. This REST API also provides a set of tools for handling complex tasks such as extracting data, merging or splitting PDFs, and reformatting documents, to name a few. It can also be utilized in generating and reading barcodes from scanned documents, PDFs, and digital images through its superb image recognition technology and built-in OCR.
The sample code below will help you save time and energy in running and testing the app in your PHP project. Just copy & paste it into your application and it can help you implement PDF to HTML Web API conversion in no time.
A FREE ByteScout trial version of this application can be downloaded from our website. You will be delighted to see that it also includes programming tutorials along with source code samples.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Cloud API asynchronous "PDF To HTML" job example (allows to avoid timeout errors).</title>
</head>
<body>
<?php
// Cloud API asynchronous "PDF To HTML" job example.
// Allows to avoid timeout errors when processing huge or scanned PDF documents.
// (!) If you are getting '(403) Forbidden' error please ensure you have set the correct API_KEY
// The authentication key (API Key).
// Get your own by registering at https://secure.bytescout.com/users/sign_up
$apiKey = "***********************************";
// Direct URL of source PDF file. Check another example if you need to upload a local file to the cloud.
$sourceFileUrl = "https://s3-us-west-2.amazonaws.com/bytescout-com/files/demo-files/cloud-api/pdf-to-text/long-processed-document.pdf";
// Comma-separated list of page indices (or ranges) to process. Leave empty for all pages. Example: '0,2-5,7-'.
$pages = "";
// PDF document password. Leave empty for unprotected documents.
$password = "";
// Set to `true` to get simplified HTML without CSS. Default is the rich HTML keeping the document design.
$plainHtml = false;
// Set to `true` if your document has the column layout like a newspaper.
$columnLayout = false;
// Prepare URL for `PDF To XLSX` API call
$url = "https://api.pdf.co/v1/pdf/convert/to/html" .
"?url=" . $sourceFileUrl .
"&password=" . $password .
"&pages=" . $pages .
"&simple=" . $plainHtml .
"&columns=" . $columnLayout .
"&async=true"; // (!) Make asynchronous job
// Create request
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPHEADER, array("x-api-key: " . $apiKey));
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Execute request
$result = curl_exec($curl);
if (curl_errno($curl) == 0)
{
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status_code == 200)
{
$json = json_decode($result, true);
if ($json["error"] == false)
{
// URL of generated HTML file that will available after the job completion
$resultFileUrl = $json["url"];
// Asynchronous job ID
$jobId = $json["jobId"];
// Check the job status in a loop
do
{
$status = CheckJobStatus($jobId); // Possible statuses: "InProgress", "Failed", "Aborted", "Finished".
// Display timestamp and status (for demo purposes)
echo "<p>" . date(DATE_RFC2822) . ": " . $status . "</p>";
if ($status == "Finished")
{
// Display link to the file with conversion results
echo "<div><h2>Conversion Result:</h2><a href='" . $resultFileUrl . "' target='_blank'>" . $resultFileUrl . "</a></div>";
break;
}
else if ($status == "InProgress")
{
// Pause for a few seconds
sleep(3);
}
else
{
echo $status . "<br/>";
break;
}
}
while (true);
}
else
{
// Display service reported error
echo "<p>Error: " . $json["message"] . "</p>";
}
}
else
{
// Display request error
echo "<p>Status code: " . $status_code . "</p>";
echo "<p>" . $result . "</p>";
}
}
else
{
// Display CURL error
echo "Error: " . curl_error($curl);
}
// Cleanup
curl_close($curl);
function CheckJobStatus($jobId)
{
$status = null;
// Create URL
$url = "https://api.pdf.co/v1/job/check?jobid=" . $jobId;
// Create request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
// Execute request
$result = curl_exec($curl);
if (curl_errno($curl) == 0)
{
$status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
if ($status_code == 200)
{
$json = json_decode($result, true);
if ($json["error"] == false)
{
$status = $json["Status"];
}
else
{
// Display service reported error
echo "<p>Error: " . $json["message"] . "</p>";
}
}
else
{
// Display request error
echo "<p>Status code: " . $status_code . "</p>";
echo "<p>" . $result . "</p>";
}
}
else
{
// Display CURL error
echo "Error: " . curl_error($curl);
}
// Cleanup
curl_close($curl);
return $status;
}
?>
</body>
</html>
Click here to get your Free Trial version of the SDK
IMPORTANT:
Cloud API is deprecated and was replaced with more powerful and secure www.PDF.co Web API
CLICK HERE
TO LEARN MORE
ABOUT NEW
www.PDF.co
w/ Web API
On-Premise API Server
Cloud API Server