Scan documents with your phone into a clean PDF

The gap between a photo of a document and a scan is lighting and geometry, not megapixels. How to close it, and how to assemble the result without uploading it.

Somebody has asked you to send a document as a PDF. You have the document on paper and a phone in your hand, and the obvious move produces something that technically satisfies the request and obviously does not satisfy the person who asked.

The gap between a photo of a document and a scan is not resolution. Any phone from the last several years resolves an A4 page far beyond what anyone needs to read it. The gap is lighting and geometry, and both are free to fix.

Light is most of it

If you change one thing, change this.

Never use the flash. A flash is a point source a few centimetres from the lens, which means it lights the centre of the page brightly and falls off towards the edges, and it produces a specular hotspot on any paper with the slightest gloss. It also makes the shadow of the phone itself land on the page when you are close.

Never let the main light come from directly behind you. That is precisely where your own head and shoulders are, and their shadow will land on the page.

What you want is diffuse light arriving from the side. A window with daylight, not direct sun, at roughly 45 degrees to the page is close to ideal — bright, soft, and coming from somewhere your body is not. Overcast daylight is better than sunny daylight, because clouds are an enormous softbox.

If you are indoors at night, put the page between two lamps rather than under one, and move both further away than feels necessary. Distance is what makes a light source soft.

There is a second reason this matters, and it is not aesthetic. Uneven lighting produces noise and gradients across the page, and noise is the enemy of compression. A well-lit page compresses to a fraction of the size of a badly-lit one carrying the same words, because the encoder has less disagreement between neighbouring pixels to record. Good light makes the file smaller as well as more legible.

Then geometry

Shoot from directly above, with the page filling the frame and the camera parallel to the paper.

Everything that goes wrong here is perspective. Photograph a rectangular page from an angle and you get a trapezium: the near edge is longer than the far edge, the lines converge, and the text at the top is a different size from the text at the bottom. Reading it is annoying; running text recognition on it later is much worse, because line-finding assumes lines are straight and horizontal.

This is what a scanner app is doing when it “de-skews” a page. It finds the four corners of the document, works out the transform that would map that quadrilateral back to a rectangle, and applies it. The result looks like a scan because it has the geometry of a scan.

It is genuinely worth using a built-in document scanner for the capture step rather than the plain camera — the corner detection and perspective correction are done well, they run instantly, and no web page can do the capture half of that job. On an iPhone it lives in two places: in Notes, tap the attachment button inside a note and then Scan Documents; in Files, tap the more button and then Scan Documents, and it will ask you where to save the result. iOS 26 adds a third, the Preview app, which scans several pages straight into a single PDF. On Android it is spread wider — Google Drive keeps it under the camera button at the bottom right and lets you choose .pdf or .jpg, while Files by Google has a Scan button in the same corner and always writes a PDF. Pixel and Samsung phones also notice a page in the ordinary camera app and offer to scan it from the viewfinder, though that part is manufacturer-specific and not on every Android phone.

Two things that help the detection: put the page on a dark, plain surface, so the white edges have something to contrast against, and flatten the paper. A page with a fold in it defeats corner detection and, worse, produces a curved line of text that no perspective correction can straighten, because the distortion is not planar.

Colour, grey, or black and white

Scanner apps offer three modes and the choice has real consequences.

Colour for anything where the colour is information — a coloured stamp, a highlighted passage, a form with colour-coded sections, a photograph on the page. Largest files.

Greyscale for ordinary printed text where you still want the paper to look like paper and the signature to look like ink. This is the right default for most documents. It drops two of three colour channels and typically cuts the size substantially with no loss of anything you need.

Black and white, sometimes labelled document or high-contrast mode, forces every pixel to pure black or pure white. On clean printed text this is dramatic: crisp letters, a genuinely white background, and a file a fraction of the greyscale size.

The warning attached to that last one is serious. Bitonal conversion destroys anything with intermediate tones — signatures thin out or break up, photographs turn into a mess of dithered speckle, faint pencil disappears entirely, and a light stamp can vanish. If the document carries a signature, a photograph or an official mark, look at the result at full size before you send it. A vanished signature on a contract is not a cosmetic problem.

Resolution, honestly

For 12-point text on A4, around 200 dpi is comfortable, and 150 dpi is still readable. 300 dpi is what desktop scanners default to and what you want if the document will later have text recognition run on it, or if it contains small print.

Above 300 dpi you are recording paper texture. It makes the file larger and the document no more legible.

Phones do not think in dpi, they think in megapixels, so the practical translation is: an A4 page filling the frame of a 12-megapixel camera lands comfortably above 300 dpi. You have plenty. The problem is never that you captured too little.

Assembling it, without uploading it

Now you have three or seven images and you need one PDF, in the right order, right way up.

This is the part that does not need a server, and it is the part people most often hand to one. Wrapping images in a PDF is a container operation: the pictures are embedded, page boxes are written around them, and a cross-reference table is written at the end. No conversion, no analysis, nothing that needs more compute than the phone already used to take the photograph.

The route: JPG to PDF turns the batch into a document, with page size, orientation and margin under your control and the photos placed rather than stretched. If the pages came from two sessions, or you already have a PDF to append, merge joins them. If a page came out crooked or has the edge of a desk in it, crop it first — cropping to the page also removes pixels you were about to pay for.

All of that runs in the browser tab, which matters more here than for most tasks. Think about what people actually scan with a phone: a passport, a lease, a payslip, a medical letter, a signed contract. That is not a category of document to hand to a free web service on the strength of a search ranking. There is nothing being computed that justifies the upload.

The size problem at the end

A three-page phone scan can easily be 10 MB, and the portal that asked for it wants 2 MB.

Deal with it in this order. Drop the resolution to what a reader needs — going from 600 dpi to 200 dpi removes about 89% of the pixels. Convert to greyscale if colour is not carrying information. Crop away the margins, which are often a fifth of the image and contain your desk. Only then compress harder.

Doing it in that order gets most documents under most limits while staying comfortably legible. Doing it by turning the quality slider down first gets you a small file that looks like a fax.

What a scan is not

It is pictures of text. Not text.

Searching it will find nothing. Selecting a paragraph will select a rectangle. Copying will copy nothing. A screen reader will announce an image. None of that changes until something performs optical character recognition on it and attaches a text layer — and that is a separate operation with its own accuracy problems, not something that happens because you saved the file as a PDF.

Worth knowing before you send a scanned CV into a system that filters applications by keyword.