How to Convert PDF Files from RGB to CMYK with Python

Learn how to convert PDF color profiles from RGB to CMYK using pdfRest API Toolkit with Python
Share this page

Why Convert PDF from RGB to CYMK with Python?

The pdfRest Convert PDF Colors API Tool is a valuable resource for developers working with PDF documents that require precise color control, especially when converting from RGB to CMYK. This tutorial will guide you through the process of using Python to send an API call to the Convert PDF Colors endpoint, allowing you to effortlessly achieve this color profile conversion.

Converting RGB (Red, Green, Blue) colors to CMYK (Cyan, Magenta, Yellow, Black) is essential for preparing PDF documents for printing. CMYK is the color model used by most printers, and accurately converting RGB colors to CMYK ensures that the printed colors match the intended appearance. This is particularly important for projects like brochures, magazines, and marketing materials where color accuracy is crucial.

Convert PDF from RGB to CYMK with Python Code Example

from requests_toolbelt import MultipartEncoder
import requests
import json

pdf_with_converted_colors_endpoint_url = 'https://api.pdfrest.com/pdf-with-converted-colors'

# The /pdf-with-converted-colors endpoint can take a single PDF file or id as input.
# This sample demonstrates setting color_profile to 'acrobat9-cmyk'.
mp_encoder_pdfWithConvertedColors = MultipartEncoder(
    fields={
        'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'),
        'output' : 'example_pdfWithConvertedColors_out',
        'color_profile': 'acrobat9-cmyk',
    }
)

# Let's set the headers that the pdf-with-converted-colors 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_pdfWithConvertedColors.content_type,
    'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here
}

print("Sending POST request to pdf-with-converted-colors endpoint...")
response = requests.post(pdf_with_converted_colors_endpoint_url, data=mp_encoder_pdfWithConvertedColors, 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.

Source: GitHub

Breaking Down the Code

The code begins by importing necessary modules, including MultipartEncoder from requests_toolbelt, which is used to handle multipart form data. The requests library is also imported for making HTTP requests, and json for handling JSON responses.

pdf_with_converted_colors_endpoint_url = 'https://api.pdfrest.com/pdf-with-converted-colors'

This line sets the endpoint URL for the Convert PDF Colors API. This is where the POST request will be sent.

mp_encoder_pdfWithConvertedColors = MultipartEncoder(
    fields={
        'file': ('file_name.pdf', open('/path/to/file', 'rb'), 'application/pdf'),
        'output' : 'example_pdfWithConvertedColors_out',
        'color_profile': 'acrobat9-cmyk',
    }
)

Here, MultipartEncoder is used to prepare the data to be sent in the request. The fields dictionary includes:

  • 'file': The PDF file to be uploaded, opened in binary mode.
  • 'output': The desired name for the output file.
  • 'color_profile': The target color profile, set to 'acrobat9-cmyk' in this example.
headers = {
    'Accept': 'application/json',
    'Content-Type': mp_encoder_pdfWithConvertedColors.content_type,
    'Api-Key': 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' # place your api key here
}

The headers dictionary is constructed to include the necessary headers for the API request. The 'Content-Type' is automatically set by MultipartEncoder, and the 'Api-Key' is a placeholder for your actual API key.

response = requests.post(pdf_with_converted_colors_endpoint_url, data=mp_encoder_pdfWithConvertedColors, headers=headers)

This line sends the POST request to the specified endpoint with the prepared data and headers. The response is then checked to determine if the request was successful.

Beyond the Tutorial

In this tutorial, you have learned how to use Python to send an API request to the pdfRest Convert PDF Colors endpoint. This allows you to programmatically change the color profile of PDF documents from RGB to CMYK, which can be particularly useful in digital media workflows.

To explore more functionalities, try out all of the pdfRest API Tools in the API Lab. For detailed information on each API, refer to the API Reference Guide.

Note: This example demonstrates a multipart API call. For code samples using JSON payloads, visit GitHub.

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