Cloud API - Image To PDF API - PHP - Convert Images To PDF From Uploaded Files - ByteScout
Announcement
Our ByteScout SDK products are sunsetting as we focus on expanding new solutions.
Learn More Open modal
Close modal
Announcement Important Update
ByteScout SDK Sunsetting Notice
Our ByteScout SDK products are sunsetting as we focus on our new & improved solutions. Thank you for being part of our journey, and we look forward to supporting you in this next chapter!

Cloud API – Image To PDF API – PHP – Convert Images To PDF From Uploaded Files

  • Home
  • /
  • Articles
  • /
  • Cloud API – Image To PDF API – PHP – Convert Images To PDF From Uploaded Files

Cloud API – Image To PDF API – PHP – Convert Images To PDF From Uploaded Files

image-to-pdf.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Image To PDF Conversion Results</title>
</head>
<body>

<?php 

// Get submitted form data
$apiKey = $_POST&#91;"apiKey"&#93;; // The authentication key (API Key). Get your own by registering at https://app.pdf.co/documentation/api


// 1. UPLOAD FILES TO CLOUD
// If you already have direct file links, skip to Step 2.

$uploadedFiles = array();
$fileCount = count($_FILES&#91;"files"&#93;&#91;"name"&#93;);
if (!file_exists("./uploads")) {
    mkdir("./uploads");
}

for($i = 0; $i < $fileCount; $i++)
{
    // 1a. RETRIEVE THE PRESIGNED URL TO UPLOAD THE FILE.
    
    // Create URL
    $url = "https://api.pdf.co/v1/file/upload/get-presigned-url" . 
        "?name=" . $_FILES&#91;"files"&#93;&#91;"name"&#93;&#91;$i&#93; .
        "&contenttype=application/octet-stream";
        
    // 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);
            
            // Get URL to use for the file upload
            $uploadFileUrl = $json&#91;"presignedUrl"&#93;;
            // Get URL of uploaded file to use with later API calls
            $uploadedFileUrl = $json&#91;"url"&#93;;
            
            // 1b. UPLOAD THE FILE TO CLOUD.
            
            $tmpFilePath = $_FILES&#91;"files"&#93;&#91;"tmp_name"&#93;&#91;$i&#93;;
            $localFile = "./uploads/" . $_FILES&#91;"files"&#93;&#91;'name'&#93;&#91;$i&#93;;
            move_uploaded_file($tmpFilePath, $localFile);
            
            $fileHandle = fopen($localFile, "r");
            
            curl_setopt($curl, CURLOPT_URL, $uploadFileUrl);
            curl_setopt($curl, CURLOPT_HTTPHEADER, array("content-type: application/octet-stream"));
            curl_setopt($curl, CURLOPT_PUT, true);
            curl_setopt($curl, CURLOPT_INFILE, $fileHandle);
            curl_setopt($curl, CURLOPT_INFILESIZE, filesize($localFile));
    
            // Execute request
            curl_exec($curl);
            
            if (curl_errno($curl) == 0)
            {
                $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
                
                if ($status_code == 200)
                {
                    $uploadedFiles&#91;&#93; = $uploadedFileUrl;
                }
                else
                {
                    // Display request error
                    echo "<p>Status code: " . $status_code . "</p>"; 
                    echo "<p>" . $result . "</p>"; 
                }
            }
            else
            {
                // Display CURL error
                echo "Error: " . curl_error($curl);
            }
            
            fclose($fileHandle);
        }
        else
        {
            // Display request error
            echo "<p>Status code: " . $status_code . "</p>"; 
            echo "<p>" . $result . "</p>"; 
        }
    }
    else
    {
        // Display CURL error
        echo "Error: " . curl_error($curl);
    }
    
    curl_close($curl); 
}

// 2. CREATE PDF DOCUMENT FROM UPLOADED IMAGE FILES

if (count($uploadedFiles) > 0) 
{
    ImageToPdf($apiKey, $uploadedFiles);
}


function ImageToPdf($apiKey, $uploadedFiles) 
{
    // Create URL
    $url = "https://api.pdf.co/v1/pdf/convert/from/image" .
        "?name=result.pdf" .
        "&url=" . join(",", $uploadedFiles);
    
    // 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_POST, true);
    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)
            {
                $resultFileUrl = $json["url"];
                
                // Display link to the file with conversion results
                echo "<div><h2>Conversion Result:</h2><a href='" . $resultFileUrl . "' target='_blank'>" . $resultFileUrl . "</a></div>";
            }
            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);
}


?>

</body>
</html>

  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next