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

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