Scanning

The document scanner turns a phone or laptop camera into a scanner. The page is found and outlined as you hold it, and taken by itself once it is still; or add photographs of documents already taken. Each page is straightened from the angle it was taken at, cropped to its edges, turned the right way up and cleaned up - kept in colour, made grey, or made crisp black and white for text and signatures.

Drag a page's corners when they need it, turn it, reorder the pages, and save them as one PDF on A4, Letter or Legal, or as JPEG or PNG images. On a phone it fills the screen and uses the camera on the back; with no camera it still takes photos.

Try it in confidence: the camera picture, and any photo you add, is worked on by your browser, on your device. Nothing is uploaded or recorded anywhere, no copy reaches us or anyone else, and the camera stops when you leave this page.

Receipts and invoices for an expense claim

Point your camera at a sheet of paper, or add the sample photos below - an invoice and a café receipt lying at an angle on a desk. Each is found, straightened and cleaned up; drag a corner if it is off, choose how it looks, and save the pages as one PDF.

Add a photo of an invoice Add a photo of a receipt Save the PDF
Keyboard: when cropping, the arrow keys move the focused corner (Shift for a bigger step), Enter keeps the crop and Escape drops it; the arrow keys also step through the looks.
Get the code
<script src="/assets/bmx-components.min.js"></script>

<bmx-document-scanner id="sc-exp" label="Scan receipts and invoices" file-name="expenses" locale="en-GB" style="inline-size: 100%"></bmx-document-scanner>

A signed delivery note, in black and white

A driver's proof of delivery: one page, made black and white so the signature and the handwriting stand out and the file stays small, and sent on as a PNG.

Add a photo of the delivery note Make the PNG Start again
Get the code
<script src="/assets/bmx-components.min.js"></script>

<bmx-document-scanner id="sc-pod" label="Proof of delivery" file-name="proof-of-delivery" filter="bw" max-pages="1" locale="en-GB" style="inline-size: 100%; --bmx-document-scanner-height: 30rem"></bmx-document-scanner>