Build the pipeline as four stages: accept and validate the upload, store the original and create a job, run OCR and keep the raw output, then validate, review and publish the text. Never overwrite the scan with its text. Keep both, linked by one durable document ID, so every extracted line can be traced back to a page and checked against the source.
The four-stage split is an architecture pattern, not a vendor standard. AWS Textract, Google Document AI and Azure’s Read model each document the building blocks, and they differ in limits, retention and output. Check the current documentation for your chosen API before you hard-code any number.
As an Amazon Associate I earn from qualifying purchases.
The pipeline at a glance
| Stage | What happens | What you persist |
|---|---|---|
| 1. Accept | Check type, readability and your own limits before any work is created | Nothing durable yet, or a rejected-upload log entry |
| 2. Store and enqueue | Save the original under a stable ID and create a processing record | Original file, storage location, upload metadata, job record |
| 3. OCR | Submit the job, wait for completion, fetch results | Raw provider response, normalized text, page and position data, confidence, provider/model identifiers, timestamps |
| 4. Validate and publish | Apply rules, route uncertain output to a person, approve | Approved text, review status, reviewer and time |
Stage 1: Accept and validate the upload
Reject bad input before it costs you an OCR call or a queue slot. Check three things:
Free tools Windows power users keep installed
One-click scans. No signup required.
- Type. Confirm the file is one the chosen operation accepts. Textract’s
StartDocumentTextDetection, for example, accepts JPEG, PNG, TIFF and PDF documents stored in S3. Do not trust the file extension or the browser-supplied content type alone; inspect the file’s actual signature. - Readability. Confirm the file opens, is not corrupt, and (for PDFs) is not password-protected if your provider cannot handle that.
- Limits. Enforce file size and page count in your own application, set from the provider’s current quotas for the specific API you call. Formats, page counts and sizes differ between providers and between synchronous and asynchronous operations, so a number copied from one service’s page will be wrong for another.
Return a clear error to the user at this point. A rejection here is cheap. The same failure found inside a background job is much harder to explain.
#1 Best Overall
- PORTABLE SCANNER FOR USE ON-THE-GO — The fastest and lightest mobile single-sheet-fed compact document scanner in its class¹
- QUICK DOCUMENT SCANNING ― This Epson ultra-fast scanner scans a single page as quickly as 5.5 seconds²; Windows and Mac compatible
- VERSATILE PAPER HANDLING ― Portable scanner scans documents up to 8.5 x 72 in; Also easily digitizes receipts and ID cards to make accounting, bookkeeping, and organizing simpler
- INTUITIVE, HIGH-SPEED SOFTWARE — Epson ScanSmart Software³ is a smart tool allowing you to easily scan, review, and save; Stay organized easily with the help of this Epson scanner
- EASY SETUP — USB-powered connect to your computer for quick and simple scanning; No batteries or external power supply required to operate portable document scanner; Standard Connectivity: USB 2.0
Stage 2: Store the original and create a job
Keep the source object
Write the upload to durable storage under an identifier you generate (a UUID, not the user’s filename). Record the storage location, original filename, uploader, upload time, content type and a checksum. This original is your ground truth. If you later change OCR providers, improve normalization or dispute a result, you can reprocess from it.
Create a processing record
Create a job row at the same time, with a status such as uploaded, queued, processing, ocr_complete, needs_review, approved or failed. Link it to the document ID. A simple status field makes retries, dashboards and support questions manageable.
Use asynchronous processing for anything long
Don’t hold an upload request open while a multipage scan is processed. Return the document ID immediately and let the client poll or receive a notification. Textract’s documented pattern is a good model of the shape:
Rank #2
- FAST SPEEDS - Scans color and black and white documents a blazing speed up to 16ppm (1). Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- ULTRA COMPACT – At less than 1 foot in length and only about 1. 5lbs in weight you can fit this device virtually anywhere (a bag, a purse, even a pocket).
- READY WHENEVER YOU ARE – The DS-640 mobile scanner is powered via an included micro USB 3. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan.
- WORKS YOUR WAY – Use the Brother free iPrint&Scan desktop app for scanning to multiple “Scan-to” destinations like PC, Network, cloud services, Email and OCR. (2) Supports Windows, Mac and Linux and TWAIN/WIA for PC/ICA for Mac/SANE drivers. (3)
- OPTIMIZE IMAGES AND TEXT – Automatic color detection/adjustment, image rotation (PC only), bleed through prevention/background removal, text enhancement, color drop to enhance scans. Software suite includes document management and OCR software. (4)
- Start a job against a document in S3.
- Receive a job ID in the response and save it on your job record.
- Receive a completion signal through SNS.
- Call the matching Get operation to retrieve results, only after the job reports success.
Textract keeps asynchronous results for seven days by default unless you specify an output S3 bucket. Treat that as a deadline: copy what you need into your own storage promptly rather than relying on the provider as your system of record.
Make the completion handler idempotent. Notifications can arrive late or more than once, so a duplicate should not create duplicate text records.
Stage 3: Run OCR and preserve useful output
Store the raw response and the normalized text
Persist the provider’s full response unchanged, then derive your own normalized text from it. Normalization (joining lines, fixing hyphenation, stripping headers) is where bugs creep in. With the raw response saved, you can rerun it without paying for OCR again.
Rank #3
- STAY ORGANIZED – Easily convert your paper documents into digital formats like searchable PDF files, JPEGs, and more.Power Consumption : 2.5W or less (Energy Saving Mode: 0.7W). Suggested Daily Volume : 500 scans..Does it contain liquid: no
- CONVENIENT AND PORTABLE –lightweight and small in size, you can take the scanner anywhere from home offices, classrooms, remote offices, and anywhere in between
- HANDLES VARIOUS MEDIA TYPES – Digitize receipts, business cards, plastic or embossed cards, reports, legal documents, and more
- FAST AND EFFICIENT – No technical hurdles or complicated setups here; easily scan both sides of a document at the same time, in color or black-and-white, at up to 12 pages-per-minute, and with a 20 sheet automatic feeder
- BROAD COMPATIBILITY – Works with both Windows and Mac devices, be it laptop or computer
What metadata is worth keeping
- Page boundaries. Store text per page so a reviewer can jump to the right image.
- Positions. Textract returns lines and words with page and location information. Azure Read returns lines and words with confidence and polygon coordinates. Positions let you highlight text over the scan in a review screen.
- Confidence values. Keep them per word or line where the provider supplies them.
- Provider and model identifiers, job status and timestamps. These make it possible to explain why two runs of the same scan differ.
Google Document AI combines OCR with broader document processing and integrates with storage such as Cloud Storage, which suits teams already building on that platform.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Suggested data model
| Table / object | Key fields |
|---|---|
| document | document_id, storage_uri, original_filename, content_type, checksum, uploaded_by, uploaded_at |
| ocr_job | job_id (yours), document_id, provider, provider_job_id, model/version, status, started_at, finished_at, error |
| ocr_raw_result | job_id, raw_response_uri (or stored blob) |
| page_text | document_id, page_number, text, mean_confidence, source_job_id |
| review | document_id, status, reviewer, reviewed_at, notes, approved_text_version |
This layout is one reasonable design, not a required schema. Large raw responses usually belong in object storage with a pointer in the database. Make full-text search run against the approved text, not the unreviewed output.
Stage 4: Validate, review and publish
Deterministic checks first
Rules your code can verify catch many failures that confidence scores miss:
Rank #4
- IRIScan Express, portable scanner : scans color and black and white documents a blazing speed up to 8ppm simplex. Color scanning won’t slow you down as the color scan speed is the same as the black and white scan speed.
- IRIScan Express mobile scanner is powered via an included micro USB 2. 0 cable allowing you to use it even where there is no outlet available. Plug it into you PC or laptop and you are ready to scan. USB cable provided. AC Adapter not provided and not needed.
- IRIScan flatbed scanner uses a simplex scanning mode allows for quick and straightforward scanning of single-sided documents. IRIScan with its full portable features is the ideal document scanners for computers.
- IRIScan document scanner : Versatile scanning capabilities, including scanning to Word, PDF, and Excel formats with companion software provided Readiris OCR
- Receipt scanner and card scanner with Additional features include scanning business cards directly to Outlook, photo scanning, and receipt scanning for efficient document management
- Every page in the source has a corresponding text record (page coverage).
- The output is not empty or implausibly short for the page count.
- Required content is present, such as an invoice number pattern, a date, or a known heading, if your documents have an expected structure.
- Extracted fields match expected formats, for example a date parses and a total is numeric.
Use confidence to route, not to certify
Confidence tells you where to look, not whether text is right. AWS advises setting a minimum confidence threshold based on how sensitive your use case is, and discarding or flagging lower-confidence output for closer human scrutiny. Its guidance illustrates that an archive-search workflow can tolerate a lower threshold than a workflow driving financial decisions. Those examples are not universal values. Choose your threshold by sampling real scans from your own users, and tighten it where an error is costly.
A practical routing rule:
- Auto-approve: all deterministic checks pass and confidence is above your threshold on a low-stakes document type.
- Send to review: any check fails, any line or field falls below the threshold, or the document type is consequential regardless of score.
- Fail and request a rescan: the image is too poor to read.
Check image quality separately
Google Document AI provides image-readability analysis, with a quality score from 0 to 1 and additional defect reasons returned when the score is below 0.5. This measures how good the image is, not whether the extracted text is correct. It is useful at the front of the pipeline for telling a user to rescan, and for explaining why a low-confidence document came out badly. Don’t use it as a substitute for validating the text.
Review and publish
In the review screen, show the scan beside the text, highlight low-confidence words using the stored positions, and let the reviewer correct them. On approval, save the corrected text as a new version with a review status, reviewer and timestamp. Keep the original scan and the raw OCR output untouched. If an approved text is later questioned, you can show exactly what the engine produced and what a person changed.
Best Value
- Scanner type: Document
- Connectivity technology: USB
- With Auto Scan Mode, the scanner automatically detects what you're scanning
- Digitize documents and images
Choosing a provider
All three major services can fit this pipeline. Compare them on the axes that affect your design:
| Axis | What to check |
|---|---|
| Inputs | Accepted formats, page counts and size limits for the specific operation |
| Workflow | Synchronous versus asynchronous, and how completion is signalled |
| Output | Page and word/line locations, confidence values, handwriting support |
| Quality tools | Image-readability analysis (Google Document AI documents this) |
| Retention | How long results are kept and where output can be written (Textract: seven days by default unless an output S3 bucket is set) |
| Fit | Which cloud already holds your storage, queues and review tooling; geographic availability |
AWS Textract documents an S3-based asynchronous pattern. Google Document AI documents scanned-document OCR, readability analysis and Cloud Storage integration. Microsoft’s Azure Read model documents print and supported handwriting extraction with word confidence and position data. This is a comparison of documented capabilities only. It says nothing about accuracy, cost or speed, so run a sample of your own scans through any candidate before committing.
Quick Recap
Failure modes to plan for
- Job never completes or fails. Store a timeout and an error on the job record, and retry a bounded number of times before marking it
failed. - Results expire before you fetch them. Fetch and copy results as soon as the completion signal arrives.
- Duplicate notifications. Key writes on the provider job ID so reprocessing is harmless.
- Original deleted or moved. The review screen and any reprocessing depend on it, so protect it with the same care as the text.
- Silent partial output. A missing page produces no error unless your page-coverage check looks for it.
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Scan for outdated or missing drivers - takes under a minute3Repair Windows errors before they cause bigger problems




