The pdfRest Add to PDF API Tool is a powerful resource for developers looking to automate the process of manipulating PDF documents. This tool allows you to seamlessly add images to existing PDF files, which can be particularly useful for generating reports, customizing documents, or simply adding visual content to your PDFs.
This tutorial will guide you through the process of sending an API call to the Add to PDF endpoint using Python, enabling you to enhance your PDFs programmatically.
In the real world, a user might need to add a company logo to a batch of invoices, insert a graph or chart into a financial report, or place a signature image onto a contract. Automating this process saves time and reduces the potential for errors that come with manual editing. By using Python, a widely-used programming language for automation, you can integrate this functionality into your applications or workflows with ease.
from requests_toolbelt import MultipartEncoder import requests import json pdf_with_added_image_endpoint_url = 'https://api.pdfrest.com/pdf-with-added-image' mp_encoder_pdfWithAddedImage = MultipartEncoder( fields={ 'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'), 'image_file': ('file_name.jpg', open('/path/to/file', 'rb'), 'image/jpeg'), 'output' : 'example_out', 'x' : '10', 'y' : '10', 'page' : '1', } ) headers = { 'Accept': 'application/json', 'Content-Type': mp_encoder_pdfWithAddedImage.content_type, 'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here } print("Sending POST request to pdf-with-added-image endpoint...") response = requests.post(pdf_with_added_image_endpoint_url, data=mp_encoder_pdfWithAddedImage, 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 code obtained from the pdf-rest-api-samples repository on GitHub.
In the provided code, we first import necessary modules: MultipartEncoder
from requests_toolbelt
for encoding multipart form data, requests
for making HTTP requests, and json
for handling JSON data.
from requests_toolbelt import MultipartEncoder import requests import json
The MultipartEncoder
is used to create a multipart-encoded payload containing the PDF and image files to be uploaded, along with additional parameters such as the desired output file name, the x and y coordinates for where the image should be placed on the PDF, and the page number where the image should be added.
mp_encoder_pdfWithAddedImage = MultipartEncoder( fields={ 'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'), 'image_file': ('file_name.jpg', open('/path/to/file', 'rb'), 'image/jpeg'), 'output' : 'example_out', 'x' : '10', 'y' : '10', 'page' : '1', } )
Headers are set to accept JSON responses and to include the content type provided by the MultipartEncoder
. An API key is also included in the headers for authentication. Replace 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
with your actual pdfRest API key.
headers = { 'Accept': 'application/json', 'Content-Type': mp_encoder_pdfWithAddedImage.content_type, 'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here }
A POST request is then sent to the pdf_with_added_image_endpoint_url
with the encoded data and headers. The response is checked for success, and the resulting JSON is printed out if the request was successful. If not, the error text is displayed.
print("Sending POST request to pdf-with-added-image endpoint...") response = requests.post(pdf_with_added_image_endpoint_url, data=mp_encoder_pdfWithAddedImage, 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)
By following this tutorial, you've learned how to use Python to send a multipart API call to the pdfRest Add to PDF API Tool to add an image to a PDF. This can be integrated into larger applications or used as a standalone script to automate PDF manipulation tasks.
To explore more capabilities and demo all of the pdfRest API Tools, visit the API Lab. For detailed information about the API, refer to the API Reference Guide.
Note: This is an example of a multipart API call. Code samples using JSON payloads can be found at the pdf-rest-api-samples repository on GitHub.
Create your FREE API Key to start processing PDFs in seconds, only possible with pdfRest.