How to add text and images to PDF in Python using PDF.co Web API

This code in Python shows how to add text and images to PDF with this how to tutorial

The code displayed below will guide you to install an Python app to add text and images to PDF. 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. It can add text and images to PDF in Python.

Want to save time? You will save a lot of time on writing and testing code as you may just take the Python code from PDF.co Web API for add text and images to PDF below and use it in your application. IF you want to implement the functionality, just copy and paste this code for Python below into your code editor with your app, compile and run your application. Further improvement of the code will make it more robust.

PDF.co Web API free trial version is available on our website. Python and other programming languages are supported.

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

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

AddTextByFindingTargetCoordinates.py
      
import os import requests # pip install requests # The authentication key (API Key). # Get your own by registering at https://app.pdf.co/documentation/api API_KEY = "******************************************" # Base URL for PDF.co Web API requests BASE_URL = "https://api.pdf.co/v1" # 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 = 'Notes' # 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" # Text annotation params Type = "annotation" Text = "Some notes will go here... Some notes will go here.... Some notes will go here....." FontName = "Times New Roman" FontSize = 12 Color = "FF0000" 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={"x-api-key": API_KEY, "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 text using PDF.co Web API""" # Prepare URL for 'PDF Edit' API request url = "{}/pdf/edit/add?name={}&password={}&pages={}&url={}&type={}&x={}&y={}&text={}&fontname={}&size={}&color={}".format( BASE_URL, os.path.basename(destinationFile), Password, Pages, SourceFileUrl, Type, left, top + 25, Text, FontName, FontSize, Color ) # Execute request and get response as JSON response = requests.get(url, headers={ "x-api-key": API_KEY, "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 PDF.co Web API Home Page

Explore PDF.co Web API Documentation

Explore Samples

Sign Up for PDF.co Web API 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 PDF.co Web API Home Page

Explore PDF.co Web API Documentation

Explore Samples

Sign Up for PDF.co Web API Online Training

ON-DEMAND REST WEB API

Get Your API Key

Explore Web API Docs

Explore Web API Samples

Related Samples: