Processing PDF Files

Private AI supports scanning PDF files for PII and creating de-identified or redacted copies. Private AI’s supported entity types function across each file type, with localized variants of different PII (Personally Identifiable Information) entities, PHI (Protected Health Information) entities, and PCI (Payment Card Industry) entities being detected. Our Supported Languages and Supported Entity Types page provides a more detailed look.


If you'd like to try it yourself, please visit our free interactive web demo. No code or account is necessary.

How PDFs Are Processed

PDFs are processed as follows:

  1. First, each page in the PDF is rendered as an image. The result is similar to a PDF created by a photocopier scan. This is done to ensure that all PII is properly captured - PDF is a complicated format .
  2. Each page in the PDF is processed as an image .
  3. A new PDF is created using the redacted/de-identified images produced in the previous step.
  4. If specified, an invisible, de-identified text layer is created using the OCR system output. This ensures that the resulting PDF is searchable and allows for text to be copy & pasted.

Check out our OCR Guide to see the available OCR modes.


  • Any attachments in a PDF file are removed.
  • If the PDF document to be de-identified already has an invisible text layer, it will be discarded and replaced with a new text-layer created through the use of OCR.


Below are the parameters that control the behaviour of the PDF De-identifier. These parameters shall be specified under pdf_options.

Parameter Explanation Default
density PDFs are converted into images using this DPI value. Smaller values result in images with smaller resolutions, which will take up less storage space and process faster, at the cost of output quality & redaction accuracy. 200
max_resolution PDFs are converted into images using the density DPI value. Any resulting images with maximum size length larger than this will be resized to this value, whilst preserving aspect ratio. 3000

Support Matrix

CPU Container GPU Container Demo API Prod API PrivateGPT UI
Supported? Yes Yes Base64 Only Yes No

Sample Request


Please sign up for a free API key to run this code.

import requests
import base64

file_url = "$web/sample.pdf"
file_content = requests.get(file_url).content
file_content_base64 = base64.b64encode(file_content).decode()

url = ""

headers = {"Content-Type": "application/json", "x-api-key": "<INSERT API KEY>"}

payload = {
    "data": file_content_base64,
    "content_type": "application/pdf",
  "entity_detection": {
    "accuracy": "high",
    "return_entity": True

response =, json=payload, headers=headers)

Sample Response

"processed_file": "Base64 Encoded File Content of the Redacted File",
"languages_detected":{"lang_1":0.67, "lang_2": 0.74}
© Copyright 2024 Private AI.