LegatorOCR

Din scanări brute de carte în PDF cu text căutabil: împarte → îndreaptă → taie → margini → curăță / binarizează → PDF cu strat OCR. Scris în Rust, clean-room, cu interfață grafică în 8 limbi și linie de comandă. Rulează local, fără conturi.

2interfețe: grafică și linie de comandă
8limbi în interfață
5ținte de compilare în CI
0conturi sau servicii externe

01Demonstrație

O pagină scanată strâmb, îndreptată cu aceeași idee ca în aplicație: se estimează unghiul din liniile de text și pagina se rotește invers. Este o simulare în browser, nu codul Rust.

Scanare brută
Estimare: —
3.2°

Film de prezentare (70 s)

Fără sunet, cu subtitrări în 8 limbi. Scenele sunt animații desenate pentru prezentare; ecranul de terminal folosește ieșirea reală a programului.

Descarcă MP4 (8 piste de subtitrare)

02Fluxul

Aceeași ordine de lucru ca la uneltele clasice de „croit” scanări, cod independent.

1 · Împarte

Pagini dublu-față separate automat, sau manual per foaie.

2 · Îndreaptă

Deskew automat sau fix (--skew); --dewarp pentru rânduri curbate.

3 · Taie și margini

Caseta de conținut detectată, margini egale, --page-size a5, aliniere.

4 · Curăță

Zone de ștergere (în mm sau desenate cu mouse-ul), normalizare de lumină, auto-inversare.

5 · Binarizează

Sauvola, Wolf, Niblack, NICK, Bradley, Otsu; moduri color, gri, bw, mixed, hybrid.

6 · PDF + OCR

Strat de text invizibil (Tesseract), semne de carte, etichete de pagină, PDF/A-2b opțional.

03Funcții

Moduri de ieșire

mixed: text 1-bit clar plus petice color. hybrid: același lucru peste un fundal de rezoluție mică — pagini color de circa 60–100 KB în loc de 700 KB+.

Proiecte

Fișier .lgr text simplu cu lista de pagini și ajustările fiecăreia.

Separatoare

--split-on-barcode (Code 128, EAN-13, ITF, Code 39), pagini goale, --make-separator tipărește foaia.

Lot și robustețe

Foldere, TIFF multipagină (scan.tif#3), --keep-going, deduplicare, dimensiune țintă de PDF.

Interfață

Vizualizare lângă lângă, Original, Procesat; rotire, împărțire și înclinare per pagină; română, engleză, franceză, italiană, spaniolă, portugheză, germană, maghiară.

Trade-free

Fără telemetrie, fără cont, fără cloud. OCR-ul rulează prin Tesseract local.

Rusteguiclean-roomMITLinuxWindowsmacOS

04PDF și OCR

Cititorul de PDF este scris de la zero și tolerant la fișiere stricate. Toate decodoarele de mai jos sunt proprii.

Format în PDFStare
Flate, LZW, ASCII85, RunLength, JPEG, predictorinativ
CCITT Group 3 și 4nativ; G3 verificat cu fișiere libtiff
JBIG2: generic, simboluri, text, refinare, halftonenativ; verificat cu poppler (excepții în „Limite”)
JPEG 2000nativ; identic cu OpenJPEG pe sute de fluxuri aleatorii
Criptare RC4 / AES-128 / AES-256 (parolă de utilizator goală)nativ
Pagini pe straturi (MRC), plasări rotitecompuse
JBIG2 Huffman, JPEG 2000 cu bypassprin pdftoppm / mutool / Ghostscript, dacă sunt instalate

La scriere: PDF cu imagine 1-bit sau JPEG/Flate, text invizibil într-un font fără glife și ToUnicode (diacriticele românești se caută și se copiază), semne de carte, etichete de pagină (i, ii, … apoi 1), și --pdfa pentru structura PDF/A-2b.

05Calitate și securitate

Fuzz

Semințe deterministe, iterații reglabile (LEGATOROCR_FUZZ_ITERS), fuzz pe linia de comandă cu valori ostile, mutații țintite pe antete de JPEG 2000 și JBIG2.

Comparații independente

OpenJPEG pentru JPEG 2000, poppler pentru JBIG2, libtiff pentru G3, qpdf pentru criptare, fontTools și LittleCMS pentru PDF/A.

Limite de resurse

Plafoane pentru dimensiuni, pachete, precincte și muncă de decodare; fișierele ostile se refuză repede, fără umflarea memoriei.

Clean-room

Implementat din descrieri publice ale formatelor; codul concurenților nu a fost citit.

06Descarcă

Arhive pentru Linux x86-64 și ARM64, Windows x86-64, macOS Apple-silicon și Intel, produse de CI la fiecare versiune etichetată. Până apare prima ediție publicată, compilează din sursă (vezi mai jos).

PlatformăFormatObservații
Linux x86-64 / ARM64.tar.gzOpenGL 2+, X11 sau Wayland
Windows x86-64.zipOpenGL 2+ (sesiunile RDP simple pot lipsi)
macOS.zip cu LegatorOCR.appnesemnată: clic dreapta → Deschide

Interfața grafică a fost testată manual doar pe Linux; pentru Windows și macOS construirea este prevăzută în CI, dar rezultatul nu a fost verificat de autor.

07Instalare

git clone https://github.com/chiuta/LegatorOCR
cd LegatorOCR
cargo build --release          # target/release/legatorocr și legatorocr-gui
scripts/package.sh x86_64-unknown-linux-gnu

Fără Tesseract totul funcționează, în afară de OCR; comutatorul e dezactivat și spune de ce.

08Limite cunoscute

Lista completă și comparația cu alte unelte: COMPARISON.md.