How to Add Text to PDF Files with Python
Why Add to PDF Files with Python?
The pdfRest Add to PDF API Tool is a powerful resource for developers looking to programmatically add text to PDF documents. This tutorial will guide you through the process of sending an API call to the Add to PDF endpoint using Python. By leveraging this tool, you can automate the process of modifying PDF files, which is particularly useful for applications that require dynamic PDF content generation or updates.
Consider a scenario where a business needs to generate personalized invoices for its customers. By using the Add to PDF API, the business can automatically insert customer names, addresses, and invoice details into a PDF template, streamlining the invoicing process and reducing the potential for manual errors. This approach not only enhances efficiency but also ensures a consistent and professional appearance for all generated documents.
Add Text to PDF Files with Python Code Example
from requests_toolbelt import MultipartEncoder import requests import json pdf_with_added_text_endpoint_url = 'https://api.pdfrest.com/pdf-with-added-text' text_options = [{ "font":"Times New Roman", "max_width":"175", "opacity":"1", "page":"1", "rotation":"0", "text":"sample text in PDF", "text_color_rgb":"0,0,0", "text_size":"30", "x":"72", "y":"144" }] mp_encoder_addedtextPDF = MultipartEncoder( fields={ 'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'), 'text_objects': json.dumps(text_options), 'output' : 'example_out' } ) headers = { 'Accept': 'application/json', 'Content-Type': mp_encoder_addedtextPDF.content_type, 'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here } print("Sending POST request to pdf-with-added-text endpoint...") response = requests.post(pdf_with_added_text_endpoint_url, data=mp_encoder_addedtextPDF, headers=headers) print("Response status code: " + str(response.status_code)) if response.ok: response_json = response.json() print(json.dumps(response_json, indent = 2)) else: print(response.text)
Source: GitHub Repository
Breaking Down the Code
The code begins by importing necessary libraries: requests_toolbelt
for handling multipart encoding, requests
for making HTTP requests, and json
for handling JSON data.
pdf_with_added_text_endpoint_url = 'https://api.pdfrest.com/pdf-with-added-text'
This line sets the endpoint URL for the Add to PDF API.
text_options = [{ "font":"Times New Roman", "max_width":"175", "opacity":"1", "page":"1", "rotation":"0", "text":"sample text in PDF", "text_color_rgb":"0,0,0", "text_size":"30", "x":"72", "y":"144" }]
The text_options
dictionary specifies the text attributes to be added to the PDF. Each key-value pair defines a property such as font
, max_width
, opacity
, page
, rotation
, text
, text_color_rgb
, text_size
, x
, and y
. These options allow precise control over the appearance and placement of the text.
mp_encoder_addedtextPDF = MultipartEncoder( fields={ 'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'), 'text_objects': json.dumps(text_options), 'output' : 'example_out' } )
The MultipartEncoder
is used to prepare the multipart form-data payload. The fields
parameter includes the PDF file, the JSON-encoded text_objects
, and the desired output
filename.
headers = { 'Accept': 'application/json', 'Content-Type': mp_encoder_addedtextPDF.content_type, 'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here }
The headers
dictionary sets the request headers, including the Accept
type, Content-Type
derived from the MultipartEncoder
, and the Api-Key
, which you need to replace with your actual API key.
response = requests.post(pdf_with_added_text_endpoint_url, data=mp_encoder_addedtextPDF, headers=headers)
This line sends the POST request to the API endpoint, passing the encoded data and headers.
Beyond the Tutorial
In this tutorial, you successfully learned how to use Python to send an API request to the pdfRest Add to PDF endpoint, allowing you to add text to a PDF document programmatically. This is a versatile tool that can be integrated into various applications requiring PDF modifications.
For further exploration, you can demo all of the pdfRest API Tools in the API Lab. Additionally, the API Reference Guide provides comprehensive details on all available endpoints and parameters.
Note: This is an example of a multipart API call. Code samples using JSON payloads can be found at GitHub Repository.