Converter · No upload

Convert HEIC to PDF on your device

Turn each HEIC photo into a PDF, with a page for every image in it that decodes.

Statusidle Files— OutputPDF Network since file read—

A HEIF the decoder cannot open (AV1 or JPEG inside, or damage) is refused as undecodable; only HEVC decodes. 10-bit and HDR photos come out as 8-bit. An animated HEIF keeps its first frame only, and an image over 14,400 pixels on a side is placed smaller, on a 200-inch page; the row notes both. Takes .heic and .heif.

How this converter works

A HEIC file holds an HEVC video frame in a still-image container. A JPEG's compressed data can be copied into a PDF page as it is, and so can a PNG's rows, but no PDF filter decodes HEVC, so this page decodes the photo first. When you choose a file, the browser's File API hands its bytes to a WebAssembly build of libheif, the open-source decoder used here, which turns the picture into raw pixels inside this tab. The container's rotation is applied during decoding, so photos come out upright. This site's own writer compresses the pixels with the browser's deflate and writes them into a PDF image object, one page per decoded image. Transparency goes in as a separate soft mask, and an embedded colour profile becomes the page's colour space, so a PDF reader can use it. The finished PDF is offered as a download link. The decoder and the site's code are downloaded like any page, but your photo is processed inside the tab.

To check this yourself, convert one photo while online so the HEIC decoder is downloaded and cached, then disconnect from the internet and convert another. A conversion that finishes offline needed no server. The network meter starts counting after the decoder download, so that download is not in its count. The methodology page describes two other network checks and what each one shows.

The PDF holds what the decoder gives. Ten-bit and HDR captures are reduced to standard 8-bit colour, because that is what the decoder produces and what a PDF image at eight bits per channel holds. An embedded colour profile is carried across; a file that only names a wide gamut without embedding a profile is written as plain RGB, and the row says the tag was not carried. Decoding takes roughly four bytes of RAM per pixel, and the writer keeps a further copy of the colour and the transparency while compressing. Measured in Chrome, a 12-megapixel capture peaked at about 500 MB while converting and a 48-megapixel one at about 1.5 GB, and the decoder’s own working memory, roughly a quarter to a third of that, stays reserved until the tab is closed; your figures depend on the photo, browser and device. Frames are decoded and written one at a time, but finished compressed pages stay in memory until the PDF is assembled, and assembly and finished downloads add more, so extra files as well as large captures can strain a low-memory phone. Each page is the size of the image at one point per pixel, up to the format’s 14,400-point limit, with no margins or paper size added. The images inside one file share its PDF in the container’s order, and a frame that cannot be decoded is reported in a row of its own. To combine separate files, use Merge PDF, which accepts the PDFs this page writes. The decoder cannot tell a codec it lacks from damage, so its refusal names both causes. Only pixels leave the decoder, so no EXIF, GPS location or capture time reaches the PDF; note anything you need from the original first.

Frequently asked questions

Is my photo uploaded anywhere?
No. The browser reads the file on your device, the WebAssembly decoder runs in this tab, and the site’s own writer makes the PDF. The network meter counts resource-timing entries from the moment the file is read, so it does not see the earlier decoder and page downloads or any WebSocket traffic. The methodology page describes the Network-panel check and the offline check, and what each one leaves out.
My HEIC file held several images. What do I get?
One PDF, with a page for each top-level image that decodes, in the decoder’s order. If one still image cannot be decoded, the others still become pages and the row reports how many were skipped. Animated HEIF is different: only the first frame becomes a page, and the row says so.
Why is the first conversion slower than the rest?
The first conversion has to download the libheif decoder, a WebAssembly file of about 2 MB, before it reads your photo, and that download happens before the meter starts counting. After that the browser reuses its cached copy, though clearing or updating the cache can mean another download. Complete one conversion online before you try the page offline.
Does the PDF keep the photo's location and other EXIF data?
No. The PDF writer does not copy the source GPS location, device model or capture time; the PDF holds the image and, when the file has one, its colour profile. Save the capture date or any other metadata you need before converting.
Can I put several HEIC files into one PDF?
Yes, with Merge PDF. Each HEIC file you choose becomes its own PDF, with one page per decoded image in the decoder’s order. Add those PDFs to Merge PDF and arrange them in the order you want. Merge PDF also runs in your browser, and it does not open protected files.

Related tools