Teen ise tugeva pdf lugeja

Adobe Acrobati jaoks raha ei ole, Adobe Reader ei oska skaneeritud pdf faile lugeda, OCR võimalusi on kusagil vaba tarkvara maal, seega teen ise Adobe Reader-i paremaks, kasutades erinevaid teeke ja liimikoodi.

Adobe Readeril on .net-is kasutamiseks AcroPDFLib.dll olemas. See ei ole vaba tarkvara kuid lubab paari rea koodiga Adobe Readerit kontrollida ning näiteks minna leheküljele number x. Kuna Reader on juba windowsi komponendina olemas, võib sellega kõike teha põhimõtteliselt.

ImageMagic laseb paari rea koodiga pdf-id piltideks teha, kui ghostscript on juba installitud masinasse. Põhimõtteliselt on need pdf failid juba piltidena ja neid pilte võiks ka PDFSharp või muu teegiga sealt välja tõmmata(pdf-is on jpeg ja png pildid), kuid see on tülikam programmeerida, samas ajas võib võita. Kuid kui korraga neid pilte ImageMagic-uga teha, siis on see ühekordne ootamine ja pealegi võtab OCR niikuinii juba liiga palju aega. Boonusena võib OCR-it teha ka lihtsalt tekstile, ühesõnaga kõik leheküljed piltideks, olgu need skaneeritud või mitte.

Tesseract on suht tuntud ja hea OCR mootor, peamiselt suurte piltidega töötamiseks(või vähemalt ei tohi need pildid olla liiga väikesed). Igaljuhul on tulemuseks hunnik teksti ja lehekülje numbrid, kus see tekst või mõni muu objekt, mida sealt pdf-ist masinnägemise abil leida tahan , asub. Selle info põhjal väike indeks teha ei ole ka eriti keeruline, kasutajasõbralikkuse huvides saab täpse asukoha leheküljel ära värvida.

Multithreading ja jupitamine tuleb kindlasti kasuks, sest see stuff on 3 sekundit lehekülje kohta umbes kui indeksit ehitada, võibolla kiirem. Raamatukogu jaoks ei ole aega, aga mõned pdf-id mida vaja teeb ära.

Kogu see debiilsus on minuarust vajalik, sest pdf-i teksti analüüsida või sealt midagi leida, mis ei ole tavapärane, on suhteliselt võimatu olemasolevate lugejatega. Või isegi suhteliselt tavapärast tekstist otsimist ei ole võimalik teha.

Adobe Flash lendab vaikselt prügikasti, sest seda pole vaja enam veebis, Adobe Reader on tasuta ja tundub, et seda ei kasutata ka enam nii palju kui varem. Acrobat on ikka Adobe-i üks sissetuleku allikas ja ilmselt tänu sellele kotivad nad ka Adobe Readerit niikaua kuni see ära sureb. Foxit küsib raha selle eest et oma pdf vieweri SDK-d kasutada, kahtlustan et Adobe-il on ka midagi sellist müügiks, kuid midagi on tasuta ka ikkagi, kuigi dokumentatsiooni suht vähe selle kohta. Ma kasutasin Adobe Reader X-i, ei tea midagi uuematest com komponentidest, praeguseks peaks X turvarisk olema vms.

Reader X-i vastav teek ei ole SDK nime vääriline, see on pigem API. Windowsil on SDK, millega tarkvara programmeerida, API on lihtsalt basic rakenduse jaoks minuarust. Foxit pakub raha eest SDK-d, mis on võibolla siis midagi enamat. API vs SDK on suur vahe, mida enamus inimesi ei tea minu vaatluste järgi, mis tähendab et nad ei ole raamatuid lugenud.

Update: tegelikult kui automatiseerimisega edasi minna, siis võib paari rea koodiga enamus programme oma kasti panna ja misiganes neile külge panna, kui setwindowparent’i kasutada ja User32 funktsioone kasutada(praegu on FF siin kastis mul). Raskemaks läheb vast mingite omaloominguliste rakendustega, näiteks firefoxiga on kellelgi olnud probleeme. Skype api on ka vist kusagil, ise näinud pole, SO-s oli postitus laadis, et kuidas ma kõigi kasutajate stuffi omale saan nagu facebookis.

SO-ga liitumine on ka huvitav, kui vaadata mis seal sees toimub, siis peab ikka väga hea kaoseteooria põhi all olema. Hiljuti kutsus SO ise mind sinna, vähemalt selline on nüüd ta esileht, mina läksin sealt kiiresti ära 🙂

Advertisements