Scan to PDF

Photograph pages with your device camera and build them into a multi-page PDF, entirely in the browser.

Camera is off

Nothing is accessed until you press Start camera.

About Scan to PDF

Press Start camera, photograph one page after another, then build the lot into a single PDF. Pages can be reordered, rotated in quarter turns and deleted before you export, and a document filter turns a colour photograph of paper into something that reads like a scan. Every step runs in this browser tab: no upload, no account, no server.

What the camera does and does not do

No capture device is touched until you press the button, which is also when your browser shows its permission prompt. The rear lens is requested as a preference rather than a requirement, so a laptop with only a front camera still works instead of failing. The live view is a plain video element fed by the stream; pressing Capture draws the current frame onto a canvas at the camera's full resolution and keeps it as a JPEG at 92% quality. Pressing Stop, closing the tab or navigating away stops every track on the stream explicitly, which is what makes the hardware indicator go out.

When the camera is unavailable — permission refused, no camera fitted, another application holding it, or the page served over plain HTTP where browsers expose no camera at all — the Add from files button still works, and it asks the browser for no camera permission of its own. On a phone it is the normal file picker, which offers Take Photo alongside your photo library, so you can either shoot the page in the system camera app or pull in one you already have. It accepts existing photographs, screenshots and any other image format your browser can decode. A file that is not an image, or that the browser cannot decode, is skipped and named in a message above the strip, so a failed import is never silent — including when it is the first file you pick.

The document filter

Three treatments. Original colour leaves the photograph as captured and, where it can, embeds the JPEG without re-encoding it. Grayscale converts using Rec. 601 luma weighting, which is the standard perceptual mix rather than a flat average. Document applies that conversion and then a contrast curve, adjustable with the slider, which is what pushes grey paper towards white and grey ink towards black. The thumbnails are rendered through the same code as the export, so the strip is a genuine preview rather than an approximation. The filter changes the file size as a side effect rather than as a feature, and the direction depends on the picture: grayscale alone barely moves it, while the contrast curve flattens paper grain to plain white and ink to plain black, and flat areas cost almost nothing to store. A twelve-megapixel photograph of a printed page came out around half the size of the colour version at the default contrast here; a busy colour picture with no flat paper in it came out about a tenth larger. Compress PDF is the tool for targeting a particular size.

How the pages are built

Each shot becomes one page, embedded with pdf-lib. A JPEG goes in byte-for-byte when no filter and no quarter turn is applied and the file carries no EXIF rotation flag; a PNG in the same situation is decoded and re-stored losslessly by pdf-lib as a Flate bitmap, which costs no quality but does change the bytes and can change the size in either direction. Everything else — a filter, a rotation, an EXIF-rotated photo, or a format pdf-lib cannot embed such as WebP — is re-encoded once as JPEG through the canvas. A4 and Letter follow the orientation of the individual shot, so a landscape photograph gets a landscape page, and the image is scaled to fit inside the chosen margin and centred — contained, never cropped and never stretched, so nothing at the edges is lost. Fit to photo builds a page with the photograph's own aspect ratio and no margin at all, sized so the long edge matches A4's long edge; that is the right choice for something that will only be read on screen. Every page box is derived from the dimensions of the image actually embedded, so the picture can never be squashed into a box of the wrong shape. The result downloads as scanned-document.pdf.

Rotation and phone photographs

A phone does not rotate pixels when you turn the handset. It writes the frame the way the sensor read it and adds an EXIF Orientation flag telling viewers how to turn it — and PDF viewers ignore that flag completely. This page therefore reads the flag out of the file itself before anything else happens, makes sure the picture is the right way up on a canvas, and sizes the page from the corrected shape, so the exported page matches the thumbnail. Getting that right needs one more piece of care than it looks. Browsers already turn the picture during the decode, so correcting it again here would turn it twice — but whether they do that depends on the format, and the browser tested during development honoured the flag inside a JPEG while ignoring the identical flag inside a PNG. Rather than assume either way, the page measures what its own decoder does with each format, against a pair of two-pixel test images it carries for the purpose, and only turns what the decoder left alone. The trade is that a flagged photo cannot be passed through untouched: even in Original colour it is re-encoded once as JPEG at 92%. Photos with no rotation flag, including everything captured with the camera here, are unaffected.

Honest limits

  • No edge detection or perspective correction. A page photographed at an angle stays at an angle, and whatever surface is behind it stays in the frame. Hold the device square, fill the frame, light it evenly.
  • No text layer. The pages are photographs, so nothing is selectable or searchable. For recognition, export, convert with PDF to PNG and run Image to Text.
  • Nothing persists. Captures live in the page only. Refreshing or closing the tab discards them, which is deliberate but worth remembering at page twelve.
  • Large output. A twelve-megapixel photo per page adds up quickly: ten pages of one measured about 22 MB here. Document mode usually helps on photographs of paper — roughly halving it in that measurement — but that is a side effect of the contrast curve, not a size control, and on a busy colour picture it goes slightly the other way. Compress PDF is the follow-up when the file has to fit a limit.
  • An EXIF-rotated photo is re-encoded. Turning it the right way up means going through the canvas, so the byte-for-byte path is only available to photos that need no correction.

Privacy

The video stream is handled entirely by your browser and never leaves the page. Frames are drawn to a canvas in this tab, the filter runs on your own processor, and the PDF is assembled in memory before being handed to your downloads folder. There is no upload and no queue, and nothing from your photographs is written to browser storage. The page carries the same analytics and advertising scripts as the rest of the site, but none of them ever sees a frame: with the network switched off after the page has loaded, everything here still works. That is the point of doing it here rather than in an app that wants an account first.

Camera only when you ask for it

Nothing touches the camera until you press Start camera. The rear lens is requested where there is one, the live view stays inside this page, and every track is stopped the moment you press Stop or leave — no background access, no recording, no frame kept beyond the shot you take.

A document filter that actually helps

Grayscale converts with Rec. 601 luma. Document mode adds a contrast curve on top, which is what pushes a photographed page towards white paper and black ink. Both apply to the thumbnails and to the PDF, so what you see is what you export. Size moves as a side effect and in whichever direction the picture calls for: flattening the paper grain of a photographed page roughly halved the file here, while a busy colour picture with no flat paper in it came out about a tenth larger.

Real pages, built locally

Shots are embedded into a PDF with pdf-lib: A4 or Letter following each shot's orientation, or a page cut to the photo's own aspect ratio with no whitespace. EXIF-rotated phone photos are turned the right way up first. Reorder, rotate and delete before exporting. Everything happens in this tab and nothing is uploaded.

Frequently Asked Questions

Does the camera turn on when I open the page?

No. The camera is requested only when you press Start camera, which is also the only point at which your browser will show its permission prompt. Until then no capture device is touched at all. When you press Stop, close the tab or navigate away, every track on the stream is stopped explicitly, which is what turns the hardware indicator light off. The shots you have already taken stay in the page until you leave.

Why did it use the front camera?

The rear camera is requested as a preference rather than a demand, so a device with no rear lens — most laptops and desktops — falls back to whatever camera it has rather than failing outright. On a phone or tablet you should get the rear lens. If you get the wrong one, use your operating system's camera app and bring the photos in with Add from files, which accepts anything the browser can decode.

The camera will not start.

Four common causes, in order of likelihood. Permission was denied, in which case the browser will not ask again until you clear the site permission from the padlock menu. Another application already holds the camera — video calls are the usual culprit and only one app can have it at a time. The device has no camera at all. Or the page is being served over plain HTTP, since browsers only expose cameras in a secure context. In every one of those cases the Add from files route still works: it is an ordinary file picker, it asks the browser for no camera permission at all, and on a phone it offers Take Photo alongside your photo library — so you can shoot the page in the system camera app and come straight back.

Will a photo taken sideways on my phone come out sideways?

No. A phone does not rotate the pixels when you turn the handset — it stores the frame the way the sensor read it and records an EXIF Orientation flag saying how to turn it. PDF viewers ignore that flag entirely, so this page reads it out of the file itself, turns the picture the right way up on a canvas, and builds the page from the corrected shape. One consequence is honest to know: a photo carrying a rotation flag cannot be passed into the PDF untouched, so even in Original colour it is re-encoded once as JPEG at 92% quality. Photos with no rotation flag are still embedded byte-for-byte. If a page still needs turning — because it was photographed upside down, for instance — the rotate button under each thumbnail turns it in quarter steps and the export follows.

How good is this compared with a real scanner app?

Honestly: it is a camera and a page builder, not a scanner. There is no automatic edge detection, no perspective correction and no de-skewing, so a page photographed at an angle stays at an angle and a page smaller than the frame keeps its background. Hold the device square over the page, fill the frame, and light it evenly — that does more for the result than any filter. If you need keystone correction and automatic cropping, a dedicated scanner app will beat this; if you need a quick multi-page PDF with nothing uploaded, this is quicker.

Which page size should I choose?

A4 and Letter both follow the orientation of each shot, so a landscape photograph gets a landscape page rather than being shrunk into a portrait one, and the image is scaled to fit inside the margin without ever being cropped or stretched. Choose one of them when the PDF is going to be printed or filed alongside other paperwork. Choose Fit to photo when it is only ever going to be read on a screen: the page is cut to the photo's own aspect ratio, so there is no white border at all and nothing is wasted.

Can I get the text out of the scan afterwards?

Not from this PDF directly — the pages are photographs, so there is no text layer and no amount of copying will select a word. That is inherent to any camera scan. To recognise the writing, export here, convert the pages back with PDF to PNG, and run them through Image to Text, which performs OCR in the browser. Photograph the page as squarely and as brightly as you can if OCR is the goal, because recognition accuracy depends far more on the capture than on the software.

Why is my PDF so large?

Because a modern phone camera produces a twelve-megapixel image and each page carries one — ten such pages came to about 22 MB here. Camera shots are kept as JPEG at 92% quality. In Original colour a JPEG goes into the PDF byte-for-byte when it needs no filter, no quarter turn and carries no EXIF rotation flag; a PNG is decoded and re-stored losslessly by pdf-lib as a Flate bitmap, which costs no quality but can move the size in either direction. Document mode usually helps, though it is a legibility filter rather than a size control and the effect depends entirely on the photograph. Grayscale on its own saves very little, because JPEG already stores colour coarsely. The contrast curve is what counts: it flattens paper grain to plain white and ink to plain black, and flat areas cost almost nothing to store. On a twelve-megapixel photograph of a printed page the PDF came out around half the size of the colour version at the default contrast, and smaller again as the slider goes up until the curve runs out of grain to flatten. On a picture with no flat paper in it — a colour illustration, say — there is nothing to flatten and it goes the other way, by roughly a tenth. When the file has to hit a particular size, Compress PDF is the tool that targets it directly.

Are my photographs uploaded anywhere?

No. The video stream never leaves the page, each frame is drawn onto a canvas in this tab, the filter runs on your own processor and the PDF is assembled in memory with pdf-lib before being saved straight to your downloads folder. No frame and no PDF is transmitted anywhere or written to browser storage. The page itself carries the same analytics and advertising scripts as the rest of the site, as most of the web does, but they never see a photograph: once the page has loaded, the whole tool works with the network switched off. Refreshing discards every shot — which is worth knowing before you reload with twelve pages captured.