# Package for OCR

**URL:** <https://discourse.julialang.org/t/package-for-ocr/133814>\
**Category:** General Usage\
**Tags:** package\
**Created:** [November 12, 2025, 2:47am UTC](https://discourse.julialang.org/t/package-for-ocr/133814 "2025-11-12T02:47:16Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![CaoHua](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/caohua/32/16083_2.png) [@CaoHua](https://discourse.julialang.org/u/CaoHua)\
**Post date:** [November 12, 2025, 2:47am UTC](https://discourse.julialang.org/t/package-for-ocr/133814/1 "2025-11-12T02:47:16Z")

</div>

Dears,

Is there any up-to-date package for OCR.

It seems Tesseract is not maintained and out of date.

Thanks

---

<div class="post-metadata">

**Author:** ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)\
**Post date:** [November 12, 2025, 4:30am UTC](https://discourse.julialang.org/t/package-for-ocr/133814/2 "2025-11-12T04:30:08Z")

</div>

I’ve had luck with tesseract\_jll: [SearchablePDFs.jl/src/SearchablePDFs.jl at 99980addb1b2719dbcee8f0859ece931907ccd59 · ericphanson/SearchablePDFs.jl · GitHub](https://github.com/ericphanson/SearchablePDFs.jl/blob/99980addb1b2719dbcee8f0859ece931907ccd59/src/SearchablePDFs.jl#L130)

---

<div class="post-metadata">

**Author:** ![smarttech34](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/smarttech34/32/223641_2.png) [@smarttech34](https://discourse.julialang.org/u/smarttech34)\
**Post date:** [August 27, 2026, 7:59am UTC](https://discourse.julialang.org/t/package-for-ocr/133814/3 "2026-08-27T07:59:11Z")

</div>

I am also looking for a good OCR option for Julia. Tesseract still seems useful, but I did prefer something that is actively maintained, especially for extracting text from scanned images and documents.

Has anyone tried any newer OCR packages or wrappers that work reliably with Julia?

---

<div class="post-metadata">

**Author:** ![Palli](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/palli/32/3380_2.png) [@Palli](https://discourse.julialang.org/u/Palli)\
**Post date:** [August 28, 2026, 12:26am UTC](https://discourse.julialang.org/t/package-for-ocr/133814/4 "2026-08-28T00:26:06Z")

</div>

I googled a bit and OCReract.jl might be better. It’s probably not too hard to update Tesseract\_jll.jl to latest version, the dependency of Tesseract.jl, now I got:

> [efd95c89] + Tesseract\_jll v5.1.0+0

Welcome to the community. I’ve not used OCR myself or Tesseract, and while that package was only updated 2 years ago, that might be no problem since it uses Tesseract you have installed, so I’m guessing works for latest from this year.

I.e. not this once that people still download recently (used from the other package);

> **[Tesseract\_jll - Julia Package Statistics](https://juliapkgstats.com/pkg/Tesseract_jll?timeframe=30d&trendingPeriod=14d&userData=true&ciData=false&missingData=false)**
>
> Download statistics, trends, and analytics for the Tesseract\_jll Julia package. View daily, weekly, and monthly download data.

> [@OCR with Julia](http://discourse.julialang.org/t/ocr-with-julia/4945/7):
>
> If tesseract.exe is not in %path% on Windows OS you may add something like this in your startup.jl: if ~occursin(raw"C:\bin\Tesseract-OCR", ENV["path"]) ENV["path"] = string(ENV["path"], raw"C:\bin\Tesseract-OCR;") end

Both OCReract.jl and [pytesseract · PyPI](https://pypi.org/project/pytesseract/) use the same method, i.e. you must install [GitHub - tesseract-ocr/tesseract: Tesseract Open Source OCR Engine (main repository) · GitHub](https://github.com/tesseract-ocr/tesseract) first, so even if the Python wrapper might seem not maintained recently it might not matter.

[PyTesseractDecoder.jl is actually not related to OCR, wraps a Python library [Tesseract Decoder](https://quantumlib.github.io/tesseract-decoder), but such a packages could also be done for pytesseract in a similar way if needed, or just not wrap and use PythonCall.jl on it.]
