Skavio Flow: Check PDF text layers before choosing OCR
Skavio Flow turns invoices, orders and scans into reviewable structured data. Before extraction, compare what the PDF visibly shows with the text you can retrieve. A searchable scan can still contain recognition errors, while a digitally created PDF may already provide usable text without OCR. The practical question is not simply whether text is selectable, but whether it represents the business information on every page.
1. Keep an untouched original
Save the original PDF before attempting OCR or other preparation, and work on a separate copy. This preserves a reference for checking whether later processing changed or omitted anything. [Adobe’s guidance on recognizing scanned text](https://helpx.adobe.com/acrobat/desktop/create-documents/scan-documents-to-pdfs/recognize-text.html) recommends retaining a backup and reviewing recognition results for accuracy and completeness. Start with a visual pass through the document. Confirm that the expected pages are present and that invoice references, table edges and totals are not cropped. If an essential amount is unreadable in the source, treat that as a document-quality problem—not something recognition can be assumed to repair.
2. Test the text layer against the visible page
Three PDF types can look similar on screen. A digitally created PDF can contain text directly. An image-only scan contains pictures of text. An OCR-processed scan contains page images plus a recognized text layer, which may make it searchable and selectable without making it a digitally created document. The [pypdf documentation](https://pypdf.readthedocs.io/en/stable/user/extract-text.html) explains these distinctions. In your PDF viewer, try selecting a visible phrase, searching for it and copying a representative passage into a plain-text editor. Compare the pasted characters with the page—not just whether something appeared. Include an identifier and a numerical value rather than testing only a large heading. Successful selection, search and copying indicate that machine-readable text is available. They do not establish its origin, completeness or accuracy. Conversely, one failed viewer test is not enough to conclude that the file is an image-only scan.
- Check that invoice or order references retain their letters, digits and separators.
- Compare decimal marks, minus signs and dates with the visible source.
- Copy a table sample and check whether values remain associated with the right descriptions and labels.
3. Inspect every page—and different regions within it
Do not let a successful test on the first page classify the entire document. A PDF may combine a digital cover sheet, scanned invoice pages and image-based attachments. A single page can also contain selectable text alongside a scanned table. Check the header, line-item area and totals separately. A selectable supplier name does not establish whether the quantities beneath it are available as text. For a multi-page invoice, compare continuation pages as well as the final total. This is general document-preparation guidance, not a claim about Flow’s page-level routing. [OCRmyPDF’s documentation](https://ocrmypdf.readthedocs.io/en/stable/advanced.html) describes different ways of handling existing text and image content. The practical lesson is to inspect the rest of a page rather than treating the presence of some text as proof of complete coverage.
4. Prefer usable embedded text; use OCR where recognition is needed
When a digitally created PDF already supplies usable embedded text, do not rasterize it merely to run OCR. That replaces existing text with a recognition task. Image-only text, by contrast, needs recognition before ordinary text extraction can read it. For a scan with an existing OCR layer, compare that layer with the page before treating it as reliable input. If copied amounts disagree with the visible document, flag the discrepancy. Do not assume another OCR pass will fix it. Request a clearer source or hold the document for manual review if important information remains unreliable. In Skavio Flow, embedded PDF text is read locally, scans use Worker Fabric OCR, and structured extraction uses the configured OpenAI model. These are distinct stages: obtaining text is not the same as interpreting it into invoice or order fields. The complete pipeline is not local-only processing.
5. Review business meaning before exporting from Flow
After extraction, return to the visible source. Correctly recognized characters can still be attached to the wrong row, column or label. A quantity beside the wrong item is a business-data error even if every digit was read correctly. [Adobe’s data-extraction guidance](https://www.adobe.com/acrobat/resources/how-to-extract-data-from-pdf.html) supports comparing extracted values and table relationships with the original page. Use Flow’s source evidence and review warnings to investigate questionable results. Custom extraction fields and saved company workflows let you reuse a consistent set of fields, but consistency is not proof that a value is correct. The absence of a warning should not replace checking important fields. Review invoice numbers, dates, quantities, unit prices, tax figures and totals before downstream use. Where the evidence does not support a value, keep the uncertainty explicit rather than accepting a plausible guess. Flow’s export options include XLSX document and line-item worksheets, CSV and JSON; review the results before handing them off.
- Confirm identifiers and dates against the document, including ambiguous characters and date formats.
- Check that each quantity, unit price and amount belongs to the correct line item.
- Compare tax figures and totals with their source labels, and investigate unresolved discrepancies before handoff.