Tools,

ONLYOFFICE OCR: what the plugin really pastes

1,866 of 1,955

words right after Insert Text

Read a PDF with it

How to use the OCR plugin

  1. Open a document. The plugin lists one editor: documents.
  2. Open the Plugins tab and click OCR.
  3. Click Load File and pick images: bmp, jpg, png, webp or gif. You can pick many.
  4. Pick the language. English is the default, one a run.
  5. Click Recognize, then Insert Text.

Inside is tesseract.js 6.0.1 with its best_int models, page mode AUTO. The list has 60 languages.

A PDF gets "cannot read this file"

The file box offers images only. If a PDF gets through anyway, the plugin stops:

scan.pdf
OCR plugin cannot read this file.

Take the pages out as images first. For a scan, pdfimages gives back the scanner's own JPEGs:

pdfimages -j scan.pdf page

All 10 pages of my scan came back byte for byte. For any other PDF, draw each page at 300 dpi:

pdftoppm -r 300 -png scan.pdf page

Then load the page files in the plugin. The PNGs gave 1,869 words right.

It reads as well as Tesseract

Words right, of 1,955 on 10 book pages
Way Words Time
Plugin, as pasted 1,866 38.6 s
Plugin, split words joined 1,877 same run
Tesseract 5.5.4 command 1,878 20.4 s
Our Actor's code 1,879 23.9 s

The engine is not the problem. The 11 words it loses go missing in the paste.

Insert Text splits 12 words

Each paragraph Tesseract finds becomes one paragraph in your document. The line breaks inside it become spaces.

So a word broken at a line end stays broken, with a space: Draw- ing, gath- ered. My 10 pages had 12. Search for a hyphen and a space to find them.

Every word comes in at 11 pt, with no bold or italic. The 4 italic phrases on these pages came in plain.

A new engine for every image

10 engine starts for 10 images

3.3 to 4.9 s an image

The plugin starts a Tesseract worker for each image and closes it after. The English model downloaded once for all 10.

Code and model come from cdn.jsdelivr.net. In my run, no request carried the image: Tesseract reads it in the browser window.

Scanned PDF to Markdown, no image step

Our Actor takes the PDF itself and returns Markdown. It joins words split at line ends: 0 left on these pages.

It costs $0.006 a scanned page.

How I tested it
  • Pages: 10 proofread pages of 2 books on English Wikisource, 1920 px JPEGs, 1,955 words. The same pages as my RapidOCR test.
  • Plugin: ONLYOFFICE OCR 2.1.1 (AGPL-3.0), from the onlyoffice.github.io repo of Nov 13, 2026. Its own index.html and ocr.js ran in headless Chromium. A stub stood in for the editor and kept what Insert Text sends.
  • tesseract.js 6.0.1, its engine and the English model loaded from cdn.jsdelivr.net, as the plugin asks.
  • Tesseract 5.5.4 from Homebrew, fast English model, page mode 3, 2 threads. Apple Silicon Mac, CPU, lowest priority. Times are rough.
  • Score: true words found in order. A word split by a line break counts as joined. Split by a space, it counts as wrong.
  • The Actor row is its own code from git, build 0.1.65, on the 10 page images with its default inputs. Not a run on Apify.
What I did not test
  • The editors themselves: desktop, server or cloud. I ran the plugin's code without them.
  • Other languages, photos, tables and handwriting.
  • Windows.
Sources

Two ways to skip the work

Run it yourself. Our Apify Actor turns scanned PDFs and images into Markdown, tables included.

Try the Actor

Or send us the scan. Tack, our AI, does the job for $29, up to 50 pages. First page free.

Get one page free

Questions people ask

Does ONLYOFFICE have OCR?

Yes, a plugin named OCR, with tesseract.js inside. Its README says it comes with the cloud, server and desktop editors. It reads images in the document editor and pastes the text.

Can ONLYOFFICE OCR a PDF?

Not with the OCR plugin: a PDF stops with "OCR plugin cannot read this file." Save the pages as images with pdfimages -j or pdftoppm -r 300, then load those.

Why do words like "Draw- ing" show up after Insert Text?

The plugin joins the lines of a paragraph with spaces. A word hyphenated at a line end keeps its hyphen and gets a space. My 10 test pages had 12.

Does the OCR plugin send my image anywhere?

Not in my run. Every request was for code or the English model, from cdn.jsdelivr.net. Tesseract reads the image in the browser window.