Skanerlangan PDF’larni yirik shriftli PDF va EPUB nashrlarga aylantirish
Rus tilidagi elektron va audiokitoblar do‘koni Knigopoisk uchun OCR matn qatlami bor skanerlangan PDF kitobni qulay nashrlarga aylantiradigan konveyer qurdik: tanlangan shrift o‘lchamidagi yirik shriftli PDF, moslashuvchan EPUB va do‘kon vitrinasidagi kitob kartalari kutadigan 2:3 formatdagi muqova rasmi. Bu mijozlar ko‘radigan funksiya emas, balki ichki ishlab chiqarish vositasi.
Konveyer qanday ishlaydi
- Ajratib olish —
extract.pyPDF’ni PyMuPDF bilan o‘qiydi va har bir matn qatorini sahifadagi koordinatalari bilanrows.jsonfayliga yozadi. - Tuzilmani tiklash —
build3.pyqatorlarni xatboshilarga yig‘adi, yumshoq defislarni olib tashlaydi va OCR’ning odatiy chalkashliklarini tuzatadi: masalan, noto‘g‘ri tanilgan kirill harflari yoki kirill so‘zlari ichiga tushib qolgan lotin belgilari. Sarlavha shrifti o‘lchamiga qarab qismlar, boblar va bo‘limlarni aniqlaydi, rasmlarni esa «Ris. N» (ruscha «rasm» so‘zining qisqartmasi) izohlariga qarab alohida tasvirlarga ajratadi. - Natijalarni yozish —
make_outputs.pybloklar ro‘yxatini bo‘limlarga va EPUB’ga aylantiradi. - Sahifalash —
make_pdf.py <pt>kitobni ReportLab yordamida A4 formatda, DejaVu Sans shriftida teradi. 18 pt va undan kattasida torroq hoshiyali yirik shriftli nashr yig‘iladi; kichikroq o‘lchamlar oddiy o‘qish nashrini beradi. Sarlavhalar asosiy matn o‘lchamiga mutanosib kattalashadi, sahifa boshida yoki oxirida yolg‘iz qolib ketadigan qatorlarning oldi olinadi, har bir sahifa raqamlanadi, navigatsiya uchun PDF mundarija xatcho‘plari qo‘shiladi. - Muqova —
make_cover.pyasl titul sahifasini 300 dpi’da render qiladi, skan hoshiyalarini matn blokigacha qirqadi va uni 800×1200 JPEG ramkasiga joylaydi.
Birinchi kitobdagi natijalar
Konveyerni 250 sahifadan ortiq rus tilidagi skanerlangan menejment kitobida boshidan oxirigacha sinab ko‘rdik. Ajratib olish bosqichi 10 004 ta matn qatorini berdi; tuzilma bosqichi 1 589 ta xatboshi, 4 ta qism, 15 ta bob va 14 ta rasmni tikladi; natija bosqichi esa 29 ta bo‘lim va 1,6 MB hajmli EPUB yozdi. Har bir bosqich o‘z hisoblarini logga yozadi, shuning uchun katalogga biror narsa tushishidan oldin natijani tekshirish oson.
Tegishli ishlar
Bu vosita Knigopoisk uchun sun’iy intellekt integratsiyasi va avtomatlashtirish bo‘yicha boshqa ishlarimiz qatorida turadi, jumladan SI yordamida audiokitob yaratish konveyeri va Knigopoisk hamkorlik vidjeti.



