How to Flatten PDF Transparencies with Python

Learn how to use the pdfRest Flatten Transparencies API Tool with Python to flatten all PDF transparencies
Share this page

Why Use Flatten Transparencies with Python?

The pdfRest Flatten Transparencies API Tool is a powerful resource for developers looking to process PDF files by flattening transparencies within them. This tool can be particularly useful when preparing PDFs for printing or ensuring compatibility across various PDF viewers that may not handle transparencies correctly. This tutorial will show how to send an API call to Flatten Transparencies using Python, which is a popular programming language for scripting and automating tasks.

In the real world, a user might need to flatten transparencies when they are sending a document to a print shop that requires all elements in a PDF to be in a print-ready format. Flattening transparencies can reduce printing errors and ensure that the document appears the same in print as it does on screen. For example, a graphic designer might use this tool to prepare a complex brochure or a poster for professional printing, ensuring that all transparent effects are rendered correctly.

Flatten Transparencies with Python Code Example

from requests_toolbelt import MultipartEncoder
import requests
import json

flatten_transparencies_pdf_endpoint_url = 'https://api.pdfrest.com/flattened-transparencies-pdf'

# The /flattened-transparencies-pdf endpoint can take a single PDF file or id as input.
# This sample demonstrates setting quality to 'medium'.
# We have preset 'high', 'medium', and 'low' quality levels available for use. These preset levels do not require the 'profile' parameter.
mp_encoder_flattenTransparenciesPdf = MultipartEncoder(
    fields={
        'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'),
        'output' : 'example_flattenedPdf_out',
        'quality': 'medium',
    }
)

# Let's set the headers that the flattened-transparencies-pdf endpoint expects.
# Since MultipartEncoder is used, the 'Content-Type' header gets set to 'multipart/form-data' via the content_type attribute below.
headers = {
    'Accept': 'application/json',
    'Content-Type': mp_encoder_flattenTransparenciesPdf.content_type,
    'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here
}

print("Sending POST request to flattened-transparencies-pdf endpoint...")
response = requests.post(flatten_transparencies_pdf_endpoint_url, data=mp_encoder_flattenTransparenciesPdf, 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)

# If you would like to download the file instead of getting the JSON response, please see the 'get-resource-id-endpoint.py' sample.

This code is sourced from the pdf-rest-api-samples on GitHub.

Breaking Down the Code

The provided Python code demonstrates how to use the pdfRest Flatten Transparencies API tool by making a POST request to the endpoint https://api.pdfrest.com/flattened-transparencies-pdf. Let's break down the key parts of the code:

flatten_transparencies_pdf_endpoint_url = 'https://api.pdfrest.com/flattened-transparencies-pdf'

This line sets the endpoint URL for the API call.

mp_encoder_flattenTransparenciesPdf = MultipartEncoder(
    fields={
        'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'),
        'output' : 'example_flattenedPdf_out',
        'quality': 'medium',
    }
)

This block creates a MultipartEncoder object with the fields needed for the request:

  • 'file': The PDF file to be processed. Replace '/path/to/file' with the actual file path.
  • 'output': The desired name for the output file.
  • 'quality': The quality setting for the flattening process. Options are 'high', 'medium', and 'low'.
headers = {
    'Accept': 'application/json',
    'Content-Type': mp_encoder_flattenTransparenciesPdf.content_type,
    'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here
}

Here, the headers for the request are set. The 'Api-Key' should be replaced with your actual API key from pdfRest.

response = requests.post(flatten_transparencies_pdf_endpoint_url, data=mp_encoder_flattenTransparenciesPdf, headers=headers)

This line sends the POST request to the API endpoint with the provided data and headers.

if response.ok:
    response_json = response.json()
    print(json.dumps(response_json, indent = 2))
else:
    print(response.text)

After the request is sent, this code checks if it was successful and prints the JSON response or error text accordingly.

Beyond the Tutorial

By following the steps above, you've learned how to call the pdfRest Flatten Transparencies API tool using Python. This can be a valuable skill for automating the process of preparing PDFs for various purposes, such as printing or ensuring compatibility. You can now experiment with different quality settings and see how they affect your PDFs.

To further explore the capabilities of pdfRest, consider demoing all of the pdfRest API Tools in the API Lab. For more detailed information on 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 in our GitHub repository.

Generate a self-service API Key now!

Create your FREE API Key to start processing PDFs in seconds, only possible with pdfRest.

Compare Plans
Contact Us