ByteScout Cloud API Server - Add Text And Images To PDF - Python - Add Image by finding target coordinates - ByteScout

ByteScout Cloud API Server – Add Text And Images To PDF – Python – Add Image by finding target coordinates

  • Home
  • /
  • Articles
  • /
  • ByteScout Cloud API Server – Add Text And Images To PDF – Python – Add Image by finding target coordinates

How to add text and images to PDF in Python and ByteScout Cloud API Server

Learn to add text and images to PDF in Python

The code displayed below will guide you to install an Python app to add text and images to PDF. ByteScout Cloud API Server is the ready to use Web API Server that can be deployed in less than 30 minutes into your own in-house server or into private cloud server. Can store data on in-house local server based storage or in Amazon AWS S3 bucket. Processing data solely on the server using buil-in ByteScout powered engine, no cloud services are used to process your data!. It can be applied to add text and images to PDF using Python.

This prolific sample source code in Python for ByteScout Cloud API Server contains various functions and other necessary options you should do calling the API to add text and images to PDF. Simply copy and paste in your Python project or application you and then run your app! If you want to use these Python sample examples in one or many applications then they can be used easily.

All these programming tutorials along with source code samples and ByteScout free trial version are available for download from our website.

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

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

AddImageByFindingTargetCoordinates.py
      
import os import requests # pip install requests # Please NOTE: In this sample we're assuming Cloud Api Server is hosted at "https://localhost". # If it's not then please replace this with with your hosting url. # Base URL for PDF.co Web API requests BASE_URL = "https://localhost" # Direct URL of source PDF file. SourceFileUrl = "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-edit/sample.pdf" # Search string. SearchString = 'Your Company Name' # Comma-separated list of page indices (or ranges) to process. Leave empty for all pages. Example: '0,2-5,7-'. Pages = "" # PDF document password. Leave empty for unprotected documents. Password = "" # Destination PDF file name DestinationFile = ".//result.pdf" # Image params Type = "image" Width = 119 Height = 32 ImageUrl = "https://bytescout-com.s3.amazonaws.com/files/demo-files/cloud-api/pdf-edit/logo.png" def main(args = None): # First of all try to find Text within input PDF file res = findTextWithinPDF(SourceFileUrl, SearchString) if res: addImageToPDF(DestinationFile, res['top'], res['left']) else: print("No result found!") def findTextWithinPDF(sourceFile, searchText): # Prepare URL for PDF text search API call # See documentation: https://app.pdf.co/documentation/api/1.0/pdf/find.html retVal = dict() url = "{}/pdf/find?url={}&searchString={}".format( BASE_URL, sourceFile, searchText ) # Execute request and get response as JSON response = requests.get(url, headers={"content-type": "application/octet-stream"}) if (response.status_code == 200): json = response.json() if json["error"] == False: # print(json) if json["body"]: retVal['top'] = json["body"][0]['top'] retVal['left'] = json["body"][0]['left'] else: # Show service reported error print(json["message"]) else: print(f"Request error: {response.status_code} {response.reason}") return retVal def addImageToPDF(destinationFile, top, left): """Add image using PDF.co Web API""" # Prepare URL for 'PDF Edit' API request url = "{}/pdf/edit/add?name={}&password={}&pages={}&url={}&type={}&x={}&y={}&width={}&height={}&urlimage={}".format( BASE_URL, os.path.basename(destinationFile), Password, Pages, SourceFileUrl, Type, top + 300, left, Width, Height, ImageUrl ) # Execute request and get response as JSON response = requests.get(url, headers={"content-type": "application/octet-stream" }) if (response.status_code == 200): json = response.json() if json["error"] == False: # Get URL of result file resultFileUrl = json["url"] # Download result file r = requests.get(resultFileUrl, stream=True) with open(destinationFile, 'wb') as file: for chunk in r: file.write(chunk) print(f"Result file saved as \"{destinationFile}\" file.") else: # Show service reported error print(json["message"]) else: print(f"Request error: {response.status_code} {response.reason}") if __name__ == '__main__': main()

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Cloud API Server Home Page

Explore ByteScout Cloud API Server Documentation

Explore Samples

Sign Up for ByteScout Cloud API Server Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

VIDEO

ON-PREMISE OFFLINE SDK

60 Day Free Trial or Visit ByteScout Cloud API Server Home Page

Explore ByteScout Cloud API Server Documentation

Explore Samples

Sign Up for ByteScout Cloud API Server Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

Tutorials:

prev
next