How to read barcode from URL asynchronously for barcode reader API in PowerShell with PDF.co Web API

See how to read barcode from URL asynchronously to have barcode reader API in PowerShell

Today you are going to learn how to read barcode from URL asynchronously in PowerShell. PDF.co Web API helps with barcode reader API in PowerShell. PDF.co Web API is the Web API with a set of tools for documents manipulation, data conversion, data extraction, splitting and merging of documents. Includes image recognition, built-in OCR, barcode generation and barcode decoders to decode bar codes from scans, pictures and pdf.

The SDK samples like this one below explain how to quickly make your application do barcode reader API in PowerShell with the help of PDF.co Web API. For implimentation of this functionality, please copy and paste code below into your app using code editor. Then compile and run your app. Code testing will allow the function to be tested and work properly with your data.

PDF.co Web API – free trial version is on available our website. Also, there are other code samples to help you with your PowerShell application included into trial version.

On-demand (REST Web API) version:
 Web API (on-demand version)

On-premise offline SDK for Windows:
 60 Day Free Trial (on-premise)

ReadBarcodeFromUrlAsynchronously.ps1

      
# Cloud API asynchronous "Barcode Reader" job example. # Allows to avoid timeout errors when processing huge or scanned PDF documents. # The authentication key (API Key). # Get your own by registering at https://app.pdf.co/documentation/api $API_KEY = "***********************************" # Direct URL of source file to search barcodes in. $SourceFileURL = "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/barcode-reader/sample.pdf" # Comma-separated list of barcode types to search. # See valid barcode types in the documentation https://app.pdf.co/documentation/api/1.0/barcode/read_from_url.html $BarcodeTypes = "Code128,Code39,Interleaved2of5,EAN13" # Comma-separated list of page indices (or ranges) to process. Leave empty for all pages. Example: '0,2-5,7-'. $Pages = "" # (!) Make asynchronous job $Async = $true # Prepare URL for `Barcode Reader` API call $query = "https://api.pdf.co/v1/barcode/read/from/url" # Prepare request body (will be auto-converted to JSON by Invoke-RestMethod) # See documentation: https://apidocs.pdf.co $body = @{ "types" = $BarcodeTypes "pages" = $Pages "url" = $SourceFileURL "async" = $Async } | ConvertTo-Json try { # Execute request $response = Invoke-WebRequest -Method Post -Headers @{ "x-api-key" = $API_KEY; "Content-Type" = "application/json" } -Body $body -Uri $query $jsonResponse = $response.Content | ConvertFrom-Json if ($jsonResponse.error -eq $false) { # Asynchronous job ID $jobId = $jsonResponse.jobId # URL of generated JSON file with decoded barcodes that will available after the job completion $resultFileUrl = $jsonResponse.url # Check the job status in a loop. # If you don't want to pause the main thread you can rework the code # to use a separate thread for the status checking and completion. do { $statusCheckUrl = "https://api.pdf.co/v1/job/check?jobid=" + $jobId $jsonStatus = Invoke-RestMethod -Method Get -Headers @{ "x-api-key" = $API_KEY } -Uri $statusCheckUrl # Display timestamp and status (for demo purposes) Write-Host "$(Get-date): $($jsonStatus.status)" if ($jsonStatus.status -eq "success") { # Download JSON file with decoded barcodes $jsonFoundBarcodes = Invoke-RestMethod -Method Get -Headers @{ "x-api-key" = $API_KEY } -Uri $resultFileUrl # Display found barcodes in console foreach ($barcode in $jsonFoundBarcodes) { Write-Host "Found barcode:" Write-Host " Type: " + $barcode.TypeName Write-Host " Value: " + $barcode."Value" Write-Host " Document Page Index: " + $barcode."Page" Write-Host " Rectangle: " + $barcode."Rect" Write-Host " Confidence: " + $barcode."Confidence" Write-Host "" } break } elseif ($jsonStatus.status -eq "working") { # Pause for a few seconds Start-Sleep -Seconds 3 } else { Write-Host $jsonStatus.status break } } while ($true) } else { # Display service reported error Write-Host $jsonResponse.message } } catch { # Display request error Write-Host $_.Exception }

run.bat

      
@echo off powershell -NoProfile -ExecutionPolicy Bypass -Command "& .\ReadBarcodeFromUrlAsynchronously.ps1" echo Script finished with errorlevel=%errorlevel% pause

VIDEO

ON-PREMISE OFFLINE SDK

Get 60 Day Free Trial

See also:

ON-DEMAND REST WEB API

Get Your API Key

See also: