The pdfRest Split PDF API Tool is designed to help users programmatically split a PDF document into multiple parts. This tool can be particularly useful in scenarios where you need to extract specific pages from a large document, such as when you wa nt to share only a particular section of a report with a colleague or when you need to process different parts of a document separately.
In this tutorial, we will demonstrate how to send an API call to the Split PDF endpoint using Python. We will walk through the code that makes the API call, explaining each part of the process.
from requests_toolbelt import MultipartEncoder import requests import json split_pdf_endpoint_url = 'https://api.pdfrest.com/split-pdf' split_request_data = [] split_request_data.append(('file',('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'))) split_request_data.append(('pages', '1,2,5')) split_request_data.append(('pages', '3,4')) split_request_data.append(('output', 'example_splitPdf_out')) mp_encoder_splitPdf = MultipartEncoder( fields=split_request_data ) headers = { 'Accept': 'application/json', 'Content-Type': mp_encoder_splitPdf.content_type, 'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' } print("Sending POST request to split-pdf endpoint...") response = requests.post(split_pdf_endpoint_url, data=mp_encoder_splitPdf, 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)
The code above is sourced from the pdf-rest-api-samples repository on GitHub.
The code starts by importing the necessary libraries:
from requests_toolbelt import MultipartEncoder import requests import json
The MultipartEncoder
is used for creating a multipart/form-data payload for the POST request. The requests
library is used to make the HTTP request, and the json
library is used to handle JSON data.
The endpoint URL is defined as a constant:
split_pdf_endpoint_url = 'https://api.pdfrest.com/split-pdf'
Next, we prepare the data for the request:
split_request_data = [] split_request_data.append(('file',('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'))) split_request_data.append(('pages', '1,2,5')) split_request_data.append(('pages', '3,4')) split_request_data.append(('output', 'example_splitPdf_out'))
This data includes the PDF file to be split, the page ranges for splitting, and the output file prefix. The file is opened in binary read mode.
Then, the MultipartEncoder
is used to encode the request data:
mp_encoder_splitPdf = MultipartEncoder( fields=split_request_data )
The headers for the request are set, including the 'Content-Type' from the encoder and the 'Api-Key' for authentication:
headers = { 'Accept': 'application/json', 'Content-Type': mp_encoder_splitPdf.content_type, 'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' }
The POST request is sent, and the response is printed:
response = requests.post(split_pdf_endpoint_url, data=mp_encoder_splitPdf, headers=headers)
If the request is successful, the JSON response is printed; otherwise, the error text is printed:
if response.ok: response_json = response.json() print(json.dumps(response_json, indent = 2)) else: print(response.text)
In this tutorial, we have learned how to make an API call to the Split PDF endpoint of the pdfRest API using Python. By sending a POST request with the appropriate headers and multipart/form-data payload, we can split a PDF document into separate files based on the specified page ranges.
To explore and demo all of the pdfRest API Tools, visit the API Lab. For more detailed information, refer to the API Reference documentation.
Note: This is an example of a multipart API call. Code samples using JSON payloads for the Split PDF API can be found at pdf-rest-api-samples repository on GitHub.
Create your FREE API Key to start processing PDFs in seconds, only possible with pdfRest.