Skip to content
pdfconversionapi

EXR to PDF API

Send an .exr to /v2/convert/exr/to/pdf and get a one-page PDF holding the render as a 16-bit image, with its alpha as a soft mask. The sample adds 6 mm margins, so the 180 × 225 pt picture sits on a 214 × 259 pt page.

Endpoint
POST /v2/convert/exr/to/pdf
Accepts
exr
Sample timing
31 ms median of 5 runsHow we measure
Request size
Up to 10 MB on the Free plan or 100 MB on paid plans, all files together

Request and response

Every sample below ran against the API before this page was published. Set PDFCONVERSIONAPI_KEY to your key and run it as is.

curl -sS -X POST \
  https://api.pdfconversionapi.com/v2/convert/exr/to/pdf \
  -H "Authorization: Bearer $PDFCONVERSIONAPI_KEY" \
  -F File=@glowing-bulb-render.exr \
  --form-string MarginHorizontal=6 \
  --form-string MarginVertical=6 \
  -o response.json

# FileData is base64. Save the first file in converted/,
# or print the JSON error.
if jq -e '.Files' response.json > /dev/null; then
  mkdir -p converted
  name=$(jq -r '.Files[0].FileName' response.json)
  jq -r '.Files[0].FileData' response.json \
    | base64 --decode > "converted/$name"
else
  cat response.json
fi
200 OK31 ms median1 file, 161 KB
{
  "ConversionCost": 1,
  "ConversionTime": 0.031,
  "Files": [
    {
      "FileName": "glowing-bulb-render.pdf",
      "FileExt": "pdf",
      "FileSize": 164640,
      "FileData": "JVBERi0xLjcKJYCAgIAKMSAw…"
    }
  ]
}

Response from our test run on 2026-11-03. ConversionTime shows the median of 5 runs. FileData is shortened here; the real response carries the whole file as base64.

The sample, converted

The same file the code sends. Download the input and the output and compare them yourself.

First page of glowing-bulb-render.pdf, rendered by the API
Input
glowing-bulb-render.exr (187 KB)
Output
glowing-bulb-render.pdf (161 KB)
Source
A glowing light bulb we drew in code and saved as a 240 × 300 OpenEXR render: half-float RGBA, premultiplied alpha, ZIP compression, values up to 12.0. (CC0-1.0). How it was made
Made by
2026-11-04, API build 9eeeb0640aba

Parameters

Send these as form fields next to the file. Names are case-insensitive. If you set one of the documented options below that we don't support yet, the request fails with a 400 that names it instead of returning a file made without it.

ParameterWhat it does
PageSizeenum, default defaultLeft out (or default, auto), the page is the render's size at 96 px per inch, 180 × 225 pt here. A named sheet centers the render without enlarging it: on a4 it stays 180 × 225 pt in the middle of the page.Values: default, auto, a3, a4, a5, letter, legal
PageOrientationenum, default defaultlandscape swaps a named sheet's sides (letter becomes 792 × 612 pt). It does nothing when the page takes the render's size.Values: default, portrait, landscape
RotateintegerTurns the render clockwise by this many degrees. 90 gave a 225 × 180 pt page; 45 gave a 286.38 pt square page holding the tilted frame.Values: -360 to 360
MarginHorizontalinteger, default 0Space left and right, in millimetres. The sample's 6 mm adds 17.01 pt on each side; on a fixed sheet the render shrinks if the margins leave too little room.Values: 0–500 (mm)
MarginVerticalinteger, default 0Space above and below. PageSize=a5 with 300 mm side margins left no room and returned 400.Values: 0–500 (mm)
FileNamestringBase name of the PDF; FileName=studio-bulb gave studio-bulb.pdf.
StoreFileboolean, default falsetrue keeps the PDF for 3 hours behind a link in Files[].Url.

What carries over, and what doesn't

Kept

  • 16 bits per channel: the image and its soft mask hold the same values as the PNG route, pixel for pixel
  • Transparency, as a 16-bit soft mask beside a DeviceRGB image
  • Size: one pixel per 0.75 pt, so 240 × 300 px draws as 180 × 225 pt (2.5 × 3.125 in)

Lost or not yet supported

  • Color management. The image is plain DeviceRGB with no ICC profile, so its linear values display as if they were sRGB and look dark.
  • Highlights over 1.0, which are stored as the 16-bit maximum.
  • Proper soft edges: the colors keep their premultiplied values, so the halo is dimmer than in the render.
  • Image options. ImageWidth, ColorSpace, AlphaColor and ImageResolution are accepted and change nothing on this route.

Limits

  • One EXR, one page, per request. /v2/convert/images/to/pdf also reads EXR files among several images, but embeds them at 8 bits per channel.
  • Up to 10 MB on the Free plan or 100 MB on paid plans per request.
  • 100,000,000 pixels at most per render.
  • Margins from 0 to 500 mm, and they must leave room for the image.
  • 120 seconds, then the request ends with 504.

Where teams use it

Look-development sheets for sign-off

Art directors and clients can review renders as a PDF attached to a ticket or an email. One page per frame, with margins so the render doesn't touch the edge, is easy to annotate in any PDF reader.

Renders in generated reports

Build systems that assemble PDF reports can convert each EXR still to its own page, then join the pages with the merge route.

Questions

How big is the page?

Without PageSize, the page is the render at 96 pixels per inch plus your margins. The 240 × 300 sample is 180 × 225 pt, and 6 mm margins make the page 214.02 × 259.02 pt.

Can I put the render on A4 or Letter?

Yes, with PageSize. The render is centered and only ever shrunk to fit, never enlarged, so this small sample sits at 180 × 225 pt in the middle of an A4 sheet. Add PageOrientation=landscape for a wide sheet.

Does Rotate take any angle?

Any whole number of degrees from -360 to 360, turned clockwise. Quarter turns swap the page's width and height; other angles make the page large enough for the turned frame. Values outside that range return 400.

What shows through the transparent parts?

Whatever the viewer paints behind the page. The PDF draws no background of its own, so the soft mask lets the page color through around the bulb; the preview on this page was drawn on white.

Convert your first EXR file in a minute.