Bitmap proof for upload
- Input
- An 80×50 24-bit BMP with a blue filled rectangle and a short white label.
- Output
- A one-page 2,354 byte PDF. The rendered page sampled the expected blue center, but contained no text layer.
BMP → PDF turned our 80×50 Windows bitmap into a one-page 2,354 byte image PDF with a 60×37.5 pt page.
From real runs
| Element | Result | What happens |
|---|---|---|
| Visible bitmap | Kept | The blue rectangle and pale background rendered correctly when the PDF page was rasterized for inspection. |
| Page count | Changed | The single BMP input became a single PDF page rather than a multi-page document. |
| Page size | Changed | The 80×50 px BMP became a 60×37.5 pt page in the tested API output. |
| pageSize option | Lost | Passing pageSize as Letter produced the same measured page rectangle as the default BMP → PDF run. |
| Selectable text | Lost | The BMP letters became embedded image pixels in the PDF; PyMuPDF extracted no text. |
| File size | Changed | The 12,054 byte BMP became a 2,354 byte PDF because the image compressed inside a page wrapper. |
The blue rectangle and pale background rendered correctly when the PDF page was rasterized for inspection.
The single BMP input became a single PDF page rather than a multi-page document.
The 80×50 px BMP became a 60×37.5 pt page in the tested API output.
Passing pageSize as Letter produced the same measured page rectangle as the default BMP → PDF run.
The BMP letters became embedded image pixels in the PDF; PyMuPDF extracted no text.
The 12,054 byte BMP became a 2,354 byte PDF because the image compressed inside a page wrapper.
We converted our BMP sample (703 KB) with Image engine on 2026-10-20. It took 16 ms and produced a 12 KB PDF file, 98% smaller than the input. The engine raised 1 warning, listed below.
Input · sample.bmp · 703 KB
600 × 400 px, 24-bit
Output · sample.pdf · 12 KB
PDF 1.4, 1 page, no text layer, 1 image object
BMP → PDF is a wrapper for pixels. If the bitmap is a scan, check whether text can be selected in the resulting PDF; if not, run OCR or Deep Read.
Pillow 11
from PIL import Image
Image.open("in.bmp").convert("RGB").save("out.pdf")This makes an image-only PDF. Add OCR if the bitmap contains text that users need to search.
The HTTP API and the MCP server run the exact engine this page uses (Image engine); the response carries the same warnings the web converter shows. Check support first with GET /api/v1/pairs?from=bmp&to=pdf.
curl -X POST https://filetypeconverters.com/api/v1/convert \
-H "Authorization: Bearer $FTC_API_KEY" \
-F "file=@input.bmp" -F "from=bmp" -F "to=pdf" \
-F 'options={"dpi":96}' \
--output output.pdf| Key | Applies to | Type | Default |
|---|---|---|---|
| dpi | Reading BMP | number | 96 |
| width | Writing PDF | number | 0 |
| height | Writing PDF | number | 0 |
| fit | Writing PDF | contain · cover · fill | contain |
| quality | Writing PDF | number | 90 |
| background | Writing PDF | string | #ffffff |
| stripMetadata | Writing PDF | boolean | true |
No. The tested PDF returned zero text from PyMuPDF because the bitmap label remained image data.
The local API did not honor a pageSize Letter probe for this pair. Resize the raster first if you need different page geometry.
The BMP was mostly raw 24-bit pixel data. The PDF embedded a compressed representation and came out smaller for this simple sample.