Advanced Conversation Options - Python
Barcode Reader sample in Python demonstrating ‘Advanced Conversation Options’
ReadBarcodeFromUrl.py
import os
import requests # pip install requests
# The authentication key (API Key).
# Get your own by registering at https://app.pdf.co
API_KEY = "******************************************"
# Base URL for PDF.co Web API requests
BASE_URL = "https://api.pdf.co/v1"
# Direct URL of source file to search barcodes in.
# You can also upload your own file into PDF.co and use it as url. Check "Upload File" samples for code snippets: https://github.com/bytescout/pdf-co-api-samples/tree/master/File%20Upload/
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://apidocs.pdf.co
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 = ""
# Some of advanced options available through profiles:
# (JSON can be single/double-quoted and contain comments.)
# {
# "profiles": [
# {
# "profile1": {
# "ScanArea": "WholePage", // Values: "TopLeftQuarter", "TopRightQuarter", "BottomRightQuarter", "BottomLeftQuarter", "TopHalf", "BottomHalf", "WholePage".
# "RequireQuietZones": true, // Whether the quite zone is obligatory for 1D barcodes. Values: true / false
# "MaxNumberOfBarcodesPerPage": 0, // 0 - unlimited.
# "MaxNumberOfBarcodesPerDocument": 0, // 0 - unlimited.
# "ScanStep": 1, // Scan interval for linear (1-dimensional) barcodes.
# "MinimalDataLength": 0, // Minimal acceptable length of decoded data.
# }
# }
# ]
# }
# Conversation Options
Profiles = "{ 'profiles': [ { 'profile1': { 'FastMode': true } } ] }"
def main(args=None):
readBarcodes(SourceFileURL)
def readBarcodes(uploadedFileUrl):
"""Get Barcode Information using PDF.co Web API"""
# Prepare requests params as JSON
# See documentation: https://apidocs.pdf.co
parameters = {}
parameters["types"] = BarcodeTypes
parameters["pages"] = Pages
parameters["url"] = uploadedFileUrl
parameters["profiles"] = Profiles
# Prepare URL for 'Barcode Reader' API request
url = "{}/barcode/read/from/url".format(BASE_URL)
# Execute request and get response as JSON
response = requests.post(url, data=parameters, headers={ "x-api-key": API_KEY })
if (response.status_code == 200):
json = response.json()
if json["error"] == False:
# Display information
for barcode in json["barcodes"]:
print("Found barcode:")
print(f" Type: {barcode['TypeName']}")
print(f" Value: {barcode['Value']}")
print(f" Document Page Index: {barcode['Page']}")
print(f" Rectangle: {barcode['Rect']}")
print(f" Confidence: {barcode['Confidence']}")
print("")
else:
# Show service reported error
print(json["message"])
else:
print(f"Request error: {response.status_code} {response.reason}")
if __name__ == '__main__':
main()
PDF.co Web API: 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.
Download Source Code (.zip)
return to the previous page explore Barcode Reader endpoint
Copyright © 2016 - 2023 PDF.co