Skip to content

PDF to WebP converter

PDF → WebP renders each page to a lossy WebP that is about half the size of the equivalent PNG, which suits web previews and thumbnails.

  • Converted with Image engine · input deleted within 24 h
  • Free: 5 conversions a day · 5 MB each
  • Higher limits →

From real runs

What you get — and what changes

  • Page pixels Changed

    A Letter page renders to 1224×1584 pixels at the default 144 DPI and is encoded as lossy VP8 at quality 90.

  • File size Changed

    The one-page sample produced a 36,034-byte WebP against 75,667 bytes for the PNG of the same render.

  • Small text Changed

    Body text stayed readable at quality 90; at lower quality thin serifs pick up faint ringing that the PNG route never shows.

  • Selectable text Lost

    The WebP is a picture of the page; words cannot be selected, searched or copied.

  • Transparency Changed

    Pages are opaque white by default; transparent=true wrote a 28,596-byte RGBA WebP whose empty page area is transparent.

  • Multiple pages Changed

    Each page becomes its own WebP; a PDF with more than one page downloads as a ZIP named after the source file.

  • Vector detail Changed

    Lines and logos are rasterized at the chosen DPI and no longer scale; zoom past 100% shows pixels.

Sample conversions

One-page report

Input
sample.pdf, one Letter page of text and a table, 21,438 bytes.
Output
1224×1584 lossy WebP, 36,034 bytes, in 80 ms. Text and rules were crisp; the file was 48% of the PNG render.

Same page with a transparent background

Input
The same PDF with {"transparent":true}.
Output
A 28,596-byte RGBA WebP with the blank page area transparent, ready to layer over a coloured background.

A real PDF → WebP run

We converted our PDF sample (21 KB) with Image engine on 2026-09-11. It took 80 ms and produced a 35 KB WebP file, 1.7× larger than the input. The engine raised 1 warning, listed below.

Input · sample.pdf · 21 KB

PDF 1.7, 1 page, selectable text (LibertinusSerif-Bold-Identity-H, LibertinusSerif-Bold, LibertinusSerif-Regular-Identity-H, LibertinusSerif-Regular), 0 image objects

Version
1.7
Pages
1
Fonts
LibertinusSerif-Bold-Identity-H, LibertinusSerif-Bold, LibertinusSerif-Regular-Identity-H, LibertinusSerif-Regular
Images
0
Text layer
yes

Output · sample.webp · 35 KB

1224 × 1584 px, lossy VP8

Width
1,224
Height
1,584
Encoding
lossy VP8
  • PDF pages rendered as images; selectable text is not preserved.

Is your file a scan?

For a scanned PDF the WebP is a re-compression of a compression; keep quality at 90 or above and match dpi to the scan resolution. When the words matter, PDF → TXT with AI Deep Read reads the pages for 1 credit each instead of producing another picture.

Options and when to change them

quality
Drop toward 75 for thumbnails; keep 90 or raise it when pages contain fine text or thin diagram lines.
dpi
Use 96 or 110 for card-sized previews; 144 suits full-width page views; go higher only for zoomable viewers.
max_pages
Render only the first pages when producing a preview of a long document.
transparent
Enable it when the page will sit on a coloured or dark background in a web layout.

Do it yourself

PyMuPDF and Pillow

bash
import fitz, io
from PIL import Image

for i, page in enumerate(fitz.open("in.pdf")):
    img = Image.open(io.BytesIO(page.get_pixmap(dpi=144).tobytes("png")))
    img.save(f"page-{i + 1}.webp", quality=90)

Pillow needs libwebp; pass lossless=True for exact pixels at roughly PNG size.

pdftoppm and cwebp

bash
pdftoppm -png -r 144 in.pdf page && for f in page-*.png; do cwebp -q 90 "$f" -o "$(basename "$f" .png).webp"; done

Two tools and an intermediate PNG per page.

PDF to WebP by API or MCP

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=pdf&to=webp.

curl
curl -X POST https://filetypeconverters.com/api/v1/convert \
  -H "Authorization: Bearer $FTC_API_KEY" \
  -F "file=@input.pdf" -F "from=pdf" -F "to=webp" \
  -F 'options={"dpi":96}' \
  --output output.webp

Options this engine accepts for PDF WebP

KeyApplies toTypeDefault
dpiReading PDFnumber96
widthWriting WebPnumber0
heightWriting WebPnumber0
fitWriting WebPcontain · cover · fillcontain
qualityWriting WebPnumber90
backgroundWriting WebPstring#ffffff
stripMetadataWriting WebPbooleantrue
API reference

When this is the wrong conversion

  • If the images must be pixel-exact for archiving or OCR, use PDF → PNG or PDF → TIFF; WebP at quality 90 is lossy.
  • If a recipient uses old software, PDF → JPG opens everywhere; WebP needs a browser or viewer from the last decade.
  • If you want a single multi-page image file, PDF → TIFF writes one; WebP output is one file per page.

PDF to WebP questions

How much smaller is WebP than PNG for a PDF page?

About half for a typical text page: the sample rendered to 36,034 bytes as WebP and 75,667 bytes as PNG at the same 144 DPI.

Is the WebP lossless?

No. This route writes lossy VP8 at the quality you choose, 90 by default. Use PDF → PNG when every pixel must match the render.

What happens with a multi-page PDF?

You receive a ZIP with one WebP per page, named sample-page-1.webp onward. Limit the count with max_pages for previews.