PDF.co Web API - Barcode Reader API - PHP - Read Barcode From Uploaded File - 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!

PDF.co Web API – Barcode Reader API – PHP – Read Barcode From Uploaded File

  • Home
  • /
  • Articles
  • /
  • PDF.co Web API – Barcode Reader API – PHP – Read Barcode From Uploaded File

PDF.co Web API – Barcode Reader API – PHP – Read Barcode From Uploaded File

read-barcode.php

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Barcode Reader 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
$barcodeTypesToFind = $_POST&#91;"barcodeTypesToFind"&#93;;
$pages = $_POST&#91;"pages"&#93;;


// 1. RETRIEVE THE PRESIGNED URL TO UPLOAD THE FILE.
// * If you already have the direct PDF file link, go to the step 3.

// Create URL
$url = "https://api.pdf.co/v1/file/upload/get-presigned-url" . 
    "?name=" . $_FILES&#91;"file"&#93;&#91;"name"&#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;;
        
        // 2. UPLOAD THE FILE TO CLOUD.
        
        $localFile = $_FILES&#91;"file"&#93;&#91;"tmp_name"&#93;;
        $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);
        
        fclose($fileHandle);
        
        if (curl_errno($curl) == 0)
        {
            $status_code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
            
            if ($status_code == 200)
            {
                // 3. READ BARCODES FROM UPLOADED IMAGE OR PDF DOCUMENT
                
                ReadBarcodes($apiKey, $barcodeTypesToFind, $uploadedFileUrl, $pages);
            }
            else
            {
                // Display request error
                echo "<p>Status code: " . $status_code . "</p>"; 
                echo "<p>" . $result . "</p>"; 
            }
        }
        else
        {
            // Display CURL error
            echo "Error: " . curl_error($curl);
        }
    }
    else
    {
        // Display service reported error
        echo "<p>Status code: " . $status_code . "</p>"; 
        echo "<p>" . $result . "</p>"; 
    }
    
    curl_close($curl);
}
else
{
    // Display CURL error
    echo "Error: " . curl_error($curl);
}

function ReadBarcodes($apiKey, $barcodeTypesToFind, $uploadedFileUrl, $pages) 
{
    // Prepare URL for `Barcode Reader` API call
    $url = "https://api.pdf.co/v1/barcode/read/from/url" .
        "?types=" . join(",", $barcodeTypesToFind) .
        "&pages=" . $pages .
        "&url=" . $uploadedFileUrl;
    
    // 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)
            {
                // Display decoding results
                $barcodes = $json["barcodes"];
                foreach ($barcodes as $barcode) 
                {
                    echo "<h2>Found barcode:</h2>";
                    echo "<p>Type: " . $barcode["TypeName"] . "</p>";
                    echo "<p>Value: " . $barcode["Value"] . "</p>";
                    echo "<p>Document Page Index: " . $barcode["Page"] . "</p>";
                    echo "<p>Rectangle: " . $barcode["Rect"] . "</p>";
                    echo "<p>Confidence: " . $barcode["Confidence"] . "</p>";
                    echo "<br/>";
                }
            }
            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);
    }
}

?>

</body>
</html>

  Click here to get your Free Trial version of the SDK

Tutorials:

prev
next