OCR Dot Matrix Print: Reading Old Computer Printouts
By Schema LawPublished Updated
OCR can read dot matrix print when the dots sit close enough to form solid strokes, as they do in near letter quality output from a fresh ribbon. Draft printouts with daylight between the dots give broken letters, swapped digits and columns that slide into each other, so plan to proofread every figure on those pages.
Can OCR read dot matrix print?
Yes, with a result that tracks how the page was printed. A dense, dark printout converts much like typewriting. A fast draft on a tired ribbon converts poorly, and the errors fall on digits and codes, which is what these printouts mostly contain. Look at the dots before you judge the file.
Open one page at 300% and find a capital "E".
| What the "E" looks like | What you have | What to expect | What to do |
|---|---|---|---|
| Solid bars; you cannot count dots | Dense print, dark ribbon | Text and figures convert, with the usual look-alike swaps | Convert and spot check totals |
| Rows of dots that touch or nearly touch | Ordinary draft print | Words mostly right; digits and punctuation less so | Convert, then check every figure you will rely on |
| Separate dots with white between them | Fast draft or a pale ribbon | Broken and missing characters across the page | Rescan in grayscale and compare; proofread the lot |
| Dots missing along one row of every letter | A dead pin in the print head | The same wrong character again and again | Learn the pattern from one line, then correct it throughout |
A printout is a hard case for a second reason that has nothing to do with dots. It holds account numbers, part codes, dates and amounts, with little ordinary prose. A misread word in a sentence stands out. A misread digit in a column of digits does not. Schema Law's homepage says recognition is strongest on clean print and that nothing marks a passage as uncertain, so the comparison with the page is your only warning. The how it works section describes viewing the result page by page before you export, and that is the moment to do it.
Why do letters made of separate dots confuse recognition?
Recognition looks for the strokes of a letter: a stem, a bowl, a crossbar. A dot matrix printer never draws a stroke. It strikes pins against a ribbon, so each letter is a pattern of round marks on a grid. Whether those marks read as strokes depends on how the scan treats the space between them.
How a scan joins the dots or splits them
The scanner decides more than the printer did.
- A grayscale scan softens each dot a little. Neighboring dots blend at their edges and the row reads as a line. That is what you want.
- A black and white scan with a light setting shrinks each dot. Dots that touched on paper come apart in the file. A letter becomes a cloud of specks, and specks get treated as noise or as punctuation.
- A black and white scan with a dark setting swells each dot. Rows join, which helps, but so do neighboring letters, and the holes in "8", "6" and "B" fill in.
- A coarse scan can lose whole dots. A dot that falls between two samples leaves a gap in a stem.
So the same sheet can convert well from one scan and badly from another. If you hold the paper, scan one page two ways, in grayscale and in black and white, convert both, and compare the same ten lines.
Why cleanup filters are risky here
A despeckle filter removes small isolated marks. On a draft printout the letters are small isolated marks. A filter strong enough to clear the dirt from an old page will take the lighter dots of each character with it, and the full stops, decimal points and colons before anything else. Leave cleanup off for these pages unless a test on your own page shows it helps.
A coarse grid makes look-alikes
A nine-pin head has nine dots of height in which to build every character, descenders included. On that grid several pairs differ by one or two dots:
- "0", "O", "D" and "Q"
- "8" and "B"
- "5" and "S"
- "2" and "Z"
- "1", "I" and "l"
- a full stop and a comma
Drop one dot to a faint ribbon and one member of a pair becomes the other. The post on number errors lists which digits and letters get swapped most often on any scan; a dot matrix page hits most of that list at once.
Draft mode, near letter quality and worn ribbons
Dot matrix printers offer a fast draft mode that lays down few dots and a slower near letter quality mode, NLQ, that fills the gaps so strokes look continuous. Ribbon wear then decides how dark any of those dots are. Mode sets the spacing of the dots, the ribbon sets their strength, and OCR needs both.
What the modes are
A manufacturer's specification shows the trade. Epson's printer specifications for its LX-350, which it describes as a "9-pin impact dot matrix" printer, list a draft speed of "260 cps at 10 cpi" and an NLQ speed of "65 cps at 10 cpi". On that model, near letter quality runs at a quarter of the speed of draft. A four-hundred-page month-end report is the kind of job where someone has a reason to pick the fast setting.
The same page lists speeds at 10, 12, 15, 17 and 20 characters per inch, and labels the 17 and 20 pitches in draft as condensed. Condensed print fits more columns on a line by making every character narrower, which leaves fewer dots across each one and less white between neighbors.
| On the page | What it means | Effect on recognition |
|---|---|---|
| Smooth, dark characters at normal width | NLQ, good ribbon | The easiest dot matrix page |
| Visible dots, normal width | Draft | Workable in grayscale; check figures |
| Visible dots, narrow characters, many columns | Condensed draft | Characters touch or break; columns crowd |
| Bold-looking characters | Emphasized print, which the Epson page lists as a draft mode of its own | Dense strokes; small holes may fill |
Printers with 24 pins place finer dots closer together, and their output can be hard to tell from typing. If you cannot see dots at 300%, treat the page as ordinary print.
Reading the ribbon
A fabric ribbon gives up a little ink with every strike, so print pales over the life of the ribbon. The signs on the page:
- Even gray across the page: a ribbon near the end of its life.
- A white line through every character at the same height: one pin is not firing. That is a print head fault, not a ribbon one, and no scan setting repairs it.
A stuck pin produces a systematic error, which is the easier kind. If the middle row is missing, "8" may read as "0", "B" as "D" and "E" as "C" on every line. Work out the substitutions from a few values you can verify, then go through the text looking for those characters specifically.
Pale print from a spent ribbon is a contrast problem shared with other faint documents. The post on OCR for faded text explains why such print drops out of a black and white scan and when darkening the image helps.
Green-bar paper, tractor holes and perforations on continuous forms
Continuous paper adds marks of its own. Green-bar stock has tinted bands behind alternate groups of lines. Tractor-feed strips carry a row of holes down each side. Perforations cross the sheet where one page tears from the next. A scanner records all three, and recognition may read each of them as text.
Green bars
The bands exist to help a person follow a line across a wide sheet. In a black and white scan a tinted band lands on one side of the cutoff or the other. If it goes dark, the lines printed on it are buried in a black stripe while the lines between the bars convert normally. The output then alternates between good rows and missing rows, in groups, down the page.
Scan green-bar paper in color or grayscale, so the band stays lighter than the print on it. Then check a line from a banded strip and a line from a plain strip. If one kind is consistently worse, you know where to concentrate.
Tractor holes
If the strips are still attached, each page has a column of round holes on both edges. Against a dark background they scan as black discs, and software reads a column of "O", "0" or bullets beside the first and last columns of the report. Those stray characters can attach themselves to a line number or an amount at the edge. Either tear the strips off along their perforations before scanning, if the paper is yours to alter, or leave them and delete the stray characters from the working copy.
Do not alter paper you hold as evidence or on someone's behalf without deciding that deliberately. Scanning it as it is costs only some cleanup in the text.
Perforations, fanfold and wide sheets
- A perforation across the page scans as a row of dashes or dots and can be read as a rule or a line of hyphens.
- Fanfold pages still joined have to be separated or scanned on a flatbed one panel at a time. Keep them in order, and number them in pencil on the back if the report has no page numbers.
- Wide-carriage paper is broader than a letter-size scanner. Shrinking it to fit makes small print smaller still. The guide to scanning legal size documents covers ledger sheets, long receipts and other pages that do not fit the scanner glass.
- Multi-part continuous forms give a pale second or third copy. That is a carbonless-paper problem, covered in the post on OCR for carbon copies.
A scanning routine for a continuous printout
- Count the panels before you separate anything, and note the count.
- Separate the pages at the perforations and stack them in order.
- Scan in grayscale or color at your office's normal text resolution or one step higher.
- Open the first, middle and last pages at 300% and confirm the dots blend into strokes.
- Confirm that the page count of the file equals the panel count.
Slashed zeros, capital-only text and tight columns on a dot matrix printout
Printouts follow the habits of the systems that produced them: a zero with a slash through it, text in capitals only, fixed-width characters, and columns separated by a single space with no ruled lines. Each habit was sensible on paper, and each removes a clue that recognition would otherwise use.
The slashed zero
The slash was added so that people could tell zero from the letter "O". Software trained on ordinary print may read it as "8", as "Q", or as the Scandinavian letter "Ø". In a file where this happens it happens to every zero, so a search of the converted text for "Ø" or for an implausible run of eights will show you at once.
Capitals only, and no words to lean on
In mixed-case prose the surrounding letters tell a reader, and an engine, whether a vertical stroke is "l" or "1". An all-capitals customer list beside a column of account codes offers no such help. The Tesseract documentation on improving the quality of OCR output makes the point about its own engine: "By default Tesseract is optimized to recognize sentences of words." It names "receipts, price lists, or codes" as examples of the "something else" for which it suggests changing settings. A printout is nearly all codes and price lists.
Columns with one space between them
A report that has to fit many fields on one line packs them tightly. When one space separates a quantity from a unit price, a single dropped or added character shifts everything to its right. Fixed-width printing does give you a tool: every character occupies the same width, so a field starts at the same position on every line. Paste the text into a fixed-width font and misaligned lines show themselves.
Other layout habits to expect:
- Trailing minus signs and "CR". A credit may print as "125.00-" or "125.00CR". Check that the sign survived and stayed with its number.
- Zero-filled fields. "000418" should keep its leading zeros, especially in an account or invoice number.
- Truncated names. "HARTSFIELD COLD STOR" is what the system printed, not a recognition failure.
- Repeated page headers. The report title and column headings recur on every panel and will sit in the middle of your data unless you remove them.
- Subtotals and control totals. These are your best check, because the detail lines should add up to them.
A worked example
A fictional payroll register for Brannigan Tool and Die prints this line in condensed draft:
On the page: 00417 OKONKWO, D 80.00 18.5000 1480.00 211.06- 1268.94
In the text: 0O417 OKONKWO, D 8O.OO 18.50OO 148O.0O 211.06 1268.94Several zeros have become the letter "O", and the trailing minus on the deduction is gone. Neither is visible at a glance. Two checks catch both. First, search the figure columns for letters. Second, do the arithmetic: 80 hours at 18.50 is 1,480.00, and 1,480.00 less 211.06 is 1,268.94, which only works if the deduction is negative.
To carry the columns into a spreadsheet for that kind of check, see the guide to OCR for exhibits with tables. It covers keeping a report's columns as columns.
Which legal files still contain dot matrix printouts?
Look for them wherever a matter reaches back to records printed by a business system, or to forms that needed several copies at one strike. Only an impact printer marks every ply of a multi-part form at once. The table that follows is a guide to where to look, not a census.
| Where you may find them | What the pages are | What needs checking |
|---|---|---|
| Business and partnership disputes over past years | General ledgers, trial balances, aged receivables | Column alignment, signs, control totals |
| Employment and wage claims | Payroll registers, time reports | Hours, rates, deductions, employee numbers |
| Lending and banking matters | Loan histories, old account statements | Dates, running balances, transaction codes |
| Transport and supply disputes | Multi-part invoices, bills of lading, delivery tickets | Quantities, weights, signatures added by hand |
| Estates and trusts | Statements and schedules kept by the deceased | Account numbers, dates, balances |
| Insurance files | Policy schedules, claim payment histories | Policy numbers, amounts, dates of loss |
| Property and tax matters | Assessment rolls, payment histories | Parcel numbers, amounts, years |
Before you convert a box of them
Ask one question first: does the data still exist in the system that printed it? A report exported from the system as a data file needs no recognition at all, and has none of the errors described in this post. Whether you are entitled to it in that form, in litigation, depends on the rules and any agreement governing production in your case, so check those. When paper is all that survives, the printout is the record.
A credit agreement that exists only as this printout may be a loan history or a schedule of a credit facility. You verify each loan covenant figure you will reuse, and on a secured transaction you read the perfection date from the image. A data file from the lender is better when you can get it.
Then size the job. A wide report can run to hundreds of panels. Schema Law accepts PDF, PNG and JPEG uploads up to 20 MB and sets a page limit per document on every plan below Enterprise, listed on the pricing page. Split a long report at natural breaks, such as a month or a department, and keep a note of which panels are in which file.
Finally, decide how much you need. If the printout only has to be findable, a searchable copy with imperfect digits may serve. If a figure from it will go into a damages schedule or a declaration, verify that figure against the paper by eye, and say in your working notes that you did.