Why the scan matters more than anything else
When you import a scanned script, flub reads the words off the page the way you would by looking at the shapes of the letters. If the scan is sharp, it reads them correctly. If the scan is coarse, it guesses, and it guesses wrong in ways that are hard to spot later.
At low resolution, letters genuinely stop being distinguishable. A capital B and the number 8 are the same handful of dots. So are S and 5, and so are rn and m. That is where imports like these come from:
| What the page says | What a coarse scan produces |
| BERNIECE | 3ERNIECE |
| BOY WILLIE | 3OY WILLIE, OY WILLIE, DY WILLIE |
| RALPH | RAL.PH |
| BESSIE | BESME |
The damage lands hardest on character names, because they are short and they are usually the first thing on a line, where scans are weakest at the edges. One character can end up as four or five separate people in your cast list.
This is not something flub can fix afterwards. The detail was never captured, and no amount of clever software puts it back.
The number to remember: 300 DPI
DPI means dots per inch, how much detail the scan captured. 300 DPI is the standard for reading text, and it is what flub is built to work with.
- A 300 DPI scan: names come through clean, dialogue is accurate, cast list is correct first time
- A 125 DPI scan: character names break apart, words are misspelled throughout
- A 100 DPI scan: barely usable, expect to correct large amounts by hand
A photo taken with your phone's normal camera is usually around 100 DPI once it is in a PDF. That is the single most common cause of a messy import.
Scanning with a scanner
- Look for a setting called Resolution, Quality, or DPI
- Set it to 300 DPI (sometimes shown as "300 x 300" or "Fine" / "High")
- Choose Black and white or Greyscale rather than Colour, text scans are sharper and the files are much smaller
- Scan one page at a time, not two pages side by side
- Save as PDF
If the only options are Draft / Normal / Best, choose Best.
Scanning with a phone
Your phone can produce a good scan but use a scanning app, not the camera. A scanning app flattens the page, squares up the edges, and sharpens the text. A photo does not.
On iPhone, this is built in and free:
- Open the Notes app and start a new note
- Tap the camera button, then Scan Documents
- Hold the phone over the page, it captures automatically once the page is square
- Scan every page, then tap Save
- Share the note as a PDF
On Android, Google Drive has the same feature: + New > Scan.
For the best results:
- Bright, even light. Daylight or a room light, avoid a single lamp, which casts a shadow across the page
- Flatten the book. A curved page near the spine blurs exactly where the character names are
- Fill the frame with the page, and keep the phone parallel to it rather than at an angle
- Do not zoom. Move the phone closer instead
One page at a time
Scan single pages, not two-page spreads. A two-page scan gives flub two columns of text side by side, and it cannot reliably tell which line follows which, so you get dialogue interleaved from both pages. It also halves your resolution.
Checking what you have got
Open the PDF and zoom in to 200% on a page of dialogue. If the letters look crisp, you are fine. If they look soft, fuzzy, or have coloured speckles around the edges, the scan is too coarse.
flub also checks this for you. If it finds a scan below about 150 DPI during import, it warns you before it starts reading and tells you roughly what resolution it found.
Before you import
- Delete the title, copyright and cast pages from the PDF first. flub reads names on those pages as characters, so they show up in your cast as entries like "Note on Billing" or the playwright's name.
- Fill in the playwright field in the setup wizard. Many published scripts print the author's name at the top of every page, and flub uses what you type to recognise and ignore it.
Still not right? Some scripts are simply awkward: unusual layouts, handwritten annotations, very old typesetting. If you have scanned at 300 DPI and the import still is not right,
open a support request and tell us which script it is and what came out wrong. Several import improvements have come directly from scripts people sent in.