PDF hujjatlarda shriftlarni qanday joylashtirish, qism toʻplamga ajratish va yetishmayotgan shriftlarni tuzatish mumkin
PDF’ni ochib, matn chalkash ierogliflarga, ustma-ust tushgan belgilarga yoki standart umumiy courier shriftiga aylanganini koʻrish raqamli nashriyotdagi eng asabni buzadigan muvaffaqiyatsizliklardan biridir. Bu muammo toʻgʻridan-toʻgʻri PDF obyekt daraxtidagi yetishmayotgan yoki joylashtirilmagan shrift dasturlaridan kelib chiqadi. Ushbu keng qamrovli texnik qoʻllanmada ISO 32000 doirasida PDF shriftlarining ichki arxitekturasini tahlil qilamiz, shrift qism toʻplami megabaytlab ogʻirlikdagi shrift turlarini qanday qilib yengil bayt paketlariga kichraytirishini tushuntiramiz, buzilgan ToUnicode xaritalash jadvallarini tuzatamiz va maʼlumotlar maxfiyligiga nol murosa bilan shriftlarni toʻgʻridan-toʻgʻri brauzeringizda qanday joylashtirish va tiklashni koʻrsatamiz.
1. PDF shriftlarining ichki arxitekturasi: Type 1, TrueType, OpenType va CIDFont’lar
PDF hujjat matnni shunchaki fotografik rastr rasmlar yoki yalangʻoch oddiy ASCII satrlar sifatida chizmaydi. Buning oʻrniga ISO 32000 matn kontentini abstrakt joylashtirish operatorlari (matn boshi uchun BT, oxiri uchun ET, shrift tanlash uchun Tf va satrlar hamda glif massivlarini koʻrsatish uchun Tj yoki TJ kabi) orqali ifodalaydi. PDF mexanizmi matn satriga duch kelganda oqimdan belgi kodlarini oʻqiydi va ularni glif deb ataladigan jismoniy vektor konturlarga xaritalaydi. Bu konturlarni foydalanuvchi ekranida yoki jismoniy bosma plastinkasida aniq chizish uchun PDF oʻquvchi har bir kontur, bezier egri chizigʻi, hinting parametri va yoʻnalish metrikasini belgilaydigan toʻliq matematik koʻrsatmalarga ega boʻlishi kerak.
PDF spetsifikatsiyasi shriftlarni bir nechta asosiy tuzilmaviy modellarga ajratadi. Dastlab Adobe tomonidan PostScript interpretatorlari uchun ishlab chiqilgan eski Type 1 shriftlari kubik bezier splaynlari va ixcham binar charstring’larga tayanadi. Apple va Microsoft tomonidan ishlab chiqilgan TrueType shriftlari kvadratik bezier egri chiziqlari va rastrlashtiruvchi ichidagi maxsus virtual mashinada bajariladigan aniq baytkod hinting dasturlaridan foydalanadi. OpenType shriftlari TrueType glif egri chiziqlari yoki PostScript Compact Font Format (CFF) maʼlumotlarini standartlashtirilgan SFNT oʻram jadval tuzilmasiga qadoqlab, bu ikki dunyoni birlashtiradi. Murakkab yozuv tizimlari uchun — arab, xitoy, yapon, koreys va hind yozuvlari kabi — PDF yagona birlashtirilgan shrift konteyneri ichida oʻn minglab glif variatsiyalarini qoʻllab-quvvatlash uchun glif indekslarini belgi kodlaridan ajratadigan Type 0 kompozit shriftlaridan (CIDFont’lar) foydalanadi.
Ideal PDF’da toʻliq binar shrift dasturi toʻgʻridan-toʻgʻri bilvosita oqim obyektiga qadoqlanadi va shrift lugʻati tomonidan /FontFile, /FontFile2 (TrueType uchun) yoki /FontFile3 (OpenType va CFF uchun) kaliti orqali havola qilinadi. Hujjat bu joylashtirilgan oqimlarsiz yaratilganda PDF fayl faqat /FontName, /Flags, /FontBBox, /StemV, /Ascent va /Descent kabi asosiy metamaʼlumotlarni saqlaydigan yengil /FontDescriptor lugʻatini oʻz ichiga oladi. Oʻquvchi xost operatsion tizimida bir xil shriftni topish yoki sunʼiy vizual oʻrinbosarni sintez qilish uchun butunlay oʻz holiga tashlab qoʻyiladi.
2. Nima uchun yetishmayotgan shriftlar tartibsizlik yaratadi: shrift almashtirish va qayta oqish mexanikasi
Foydalanuvchi joylashtirilmagan shriftli PDF’ni oʻsha aniq tipografiya fayllari boʻlmagan tizimda ochganda koʻrish ilovasi shrift almashtirish deb ataladigan mexanizmni ishga tushiradi. Adobe Acrobat, Apple Preview hamda Chrome va Edge’dagi zamonaviy brauzer ichki PDF mexanizmlari kabi koʻpchilik oʻquvchilar standart asosiy shriftlarning zaxira roʻyxatini saqlaydi: Times New Roman (yoki Times Roman), Helvetica (yoki Arial) va Courier. Chizish mexanizmi yetishmayotgan shrift serifli, sans-serif, monospaced, ramziy yoki kursiv boʻlganini aniqlash uchun /FontDescriptor lugʻatidagi /Flags butun sonini tekshiradi va eng yaqin mavjud tizim mosligini tayinlaydi.
Shrift almashtirish halokatli ishdan chiqish yoki butunlay boʻsh sahifaning oldini olsa-da, vizual va tipografik yon taʼsirlari halokatli. Har bir shrift turi oʻziga xos metrik xususiyatlarga ega: oldinga siljish kengliklari, kerning juftliklari, x-balandlik, bosh harf balandligi, yuqori choʻziq nisbatlari va pastki choʻziq chuqurliklari. Masalan, asl maket 11 punktda Montserrat yoki Proxima Nova bilan tuzilgan boʻlsa, uni Arial yoki Helvetica bilan almashtirish belgi siljish kengliklarini buzadi. Asl PDF matn joylashtirish buyruqlari soʻz oraligʻi va qator koʻchishini asl shrift geometriyasiga asoslanib belgilagani uchun almashtirilgan gliflar yo bir-biri bilan toʻqnashadi, yo xunuk sunʼiy boʻshliqlar hosil qiladi, yoki jadval ustunlari va hisob-faktura kataklari chegarasidan oshib ketadi.
Bundan tashqari, huquqiy shartnomalar, meʼmoriy loyihalar, moliyaviy prospektlar va akademik dissertatsiyalarda qatorlarning qayta oqishi muhim bandlarni kutilmagan sahifalarga surib yuborishi yoki imzolarni majburiy shartlardan ajratib qoʻyishi mumkin. Koʻp ustunli nashrlarda shrift almashtirish koʻpincha sarlavhalarni sahifa chetlaridan pastga suradi yoki jadvallarni oʻqib boʻlmaydigan kesilgan tasmalarga majburlaydi. Shrift fayllarini toʻliq joylashtirmasdan izchil koʻp platformali hujjat aniqligiga erishish matematik jihatdan imkonsiz.
3. Toʻliq shrift joylashtirish va shrift qism toʻplami: mukammal fayl hajmi muvozanatiga erishish
Shriftlarni PDF’ga joylashtirishda hujjat mualliflari muhim texnik qarorga duch keladi: butun shrift faylini joylashtirish kerakmi (toʻliq joylashtirish) yoki faqat hujjatda haqiqatan ishlatilgan gliflarni oʻz ichiga olgan moslashtirilgan boʻlakni yaratish kerakmi (shrift qism toʻplami)? Bu ikki strategiya oʻrtasidagi murosalarni tushunish hujjatning koʻchma boʻlishini bayt ogʻirligi bilan muvozanatlash uchun muhim.
Toʻliq joylashtirish butun binar shrift jadvalini PDF oqimiga qadoqlaydi. Noto Sans, Roboto yoki Arial Unicode MS kabi zamonaviy Unicode shrift turi uchun toʻliq TTF yoki OTF shrift fayli osongina 4–30 megabayt oraligʻida boʻlishi mumkin. Agar hujjat toʻrtta turli qalinlik va uslubdan (Regular, Italic, Bold, Bold Italic) foydalansa, toʻliq joylashtirish aks holda yengil boʻlgan 3 sahifalik memorandumga darhol 15–40 megabayt shrift yukini qoʻshadi. Toʻliq joylashtirish keyingi foydalanuvchilarga shrift kompyuterlarida oʻrnatilmagan holda PDF matnini keyinroq tahrirlash imkonini bersa-da, yuklab olish sekin, mobil tarmoqlarda taqdim etish qimmat va koʻpincha elektron pochta ilovalari hamda davlat yuklash portallari tomonidan rad etiladigan shishgan hujjatlarni yaratadi.
Shrift qism toʻplami bu muammoni aqlli binar kompilyatsiya orqali hal qiladi. ISO 32000 ga koʻra qism toʻplamli shrift hujjat matn oqimlarining hech bir joyida uchramaydigan har bir glif konturi, metrik jadval yozuvi va kerning juftligini olib tashlaydi. Agar hujjatingiz faqat 78 ta noyob lotin harfi, tinish belgisi va raqamdan foydalansa, qism toʻplam generatori har bir shrift turi uchun atigi 12–35 kilobayt talab qiladigan oʻta ixcham maxsus shrift dasturini quradi. PDF standartlariga muvofiq qism toʻplamli shriftlar aniq ravishda ixtiyoriy olti harfli katta harf prefiksi va undan keyin plyus belgisi bilan teglanadi (masalan, 'ABCDAA+Roboto-Bold' yoki 'XYZKLM+Helvetica'). Bu prefiks koʻrish ilovalari moslashtirilgan qism toʻplamni hech qachon global oʻrnatilgan tizim shrifti bilan adashtirmasligini taʼminlaydi.
4. Chalkash matnni tuzatish: buzilgan ToUnicode CMap’lar va glif xaritalashlarini tiklash
PDF hujjatlardagi tez-tez uchraydigan nosozlik — ekranda butunlay normal koʻrinadigan, lekin almashish buferiga nusxalanganda, OCR bilan ajratib olinganda yoki qidiruv tizimi skanerlari tomonidan indekslanganda maʼnosiz belgilarga aylanadigan matn. Masalan, 'Report' soʻzini nusxalash '#@%*!' yoki tasodifiy chop etilmaydigan belgilar sifatida joylashishi mumkin. Bu nuqson shrift lugʻatidagi yetishmayotgan, buzilgan yoki nostandart /ToUnicode xaritalash jadvali sababli yuzaga keladi.
ISO 32000 ga koʻra PDF’dagi shrift muayyan vizual gliflarga ixtiyoriy ichki belgi kodlarini tayinlashi mumkin. Masalan, 0x01 belgi kodi 'H' harfining vizual glifini, 0x02 esa 'e’ni chizishi mumkin. Shrift vektor konturlarni oʻz ichiga olar ekan, chizish mexanizmi 'He’ni toʻgʻri koʻrsatadi. Biroq foydalanuvchi matnni nusxalaganda operatsion tizim almashish buferi standart UTF-8 yoki UTF-16 Unicode kod nuqtalarini talab qiladi. /ToUnicode CMap ichki belgi kodlarini (masalan, 0x01) haqiqiy Unicode skalyar qiymatlariga (masalan, U+0048 LATIN CAPITAL LETTER H) tarjima qiladigan maxsus binar qidiruv jadvalidir.
PDF generatorlari /ToUnicode oqimini tushirib qoldirsa yoki notoʻgʻri belgi-glif CID xaritalashlarini yaratsa, matnni ajratib olish butunlay muvaffaqiyatsiz boʻladi. Butun PDF’ni qayta yaratmasdan buni tuzatish uchun zamonaviy kliyent tomonidagi tiklash utilitalari /FontFile2 oqimiga joylashtirilgan asosiy TrueType 'cmap' jadvalini tahlil qiladi, haqiqiy PostScript glif nomlarini (/a, /b, /hyphen kabi) ajratib oladi, ularni Adobe Glyph List (AGL) bilan solishtiradi va yaroqli /ToUnicode CMap oqimini qayta quradi. Sintez qilinib, shrift lugʻatiga kiritilgach, toʻliq nusxalash-joylashtirish aniqligi, matnni tanlash va ekran oʻquvchisi uchun foydalanish qulayligi doimiy ravishda tiklanadi.
5. Bosqichma-bosqich qoʻllanma: brauzerda PDF shriftlarini qanday joylashtirish, qism toʻplamga ajratish va tiklash mumkin
Tarixan joylashtirilmagan shrift xatolarini hal qilish PitStop Server bilan Adobe Acrobat Pro kabi qimmat ish stoli bosmaga tayyorlash dasturlarini yoki murakkab Ghostscript terminal buyruqlarini ishga tushirishni talab qilgan. Bugun WebAssembly tufayli zamonaviy brauzer Web Worker’lari PDF binar tuzilmalarini tahlil qilishi, shrift jadvallarini tekshirishi hamda binar qism toʻplam yaratish va joylashtirishni butunlay xotirada mutlaq maxfiylik bilan bajarishi mumkin. Hujjatingizni audit qilish va tiklash uchun quyidagi qadamlarga amal qiling:
1-qadam: joylashtirilgan shriftlar holatini tekshiring. Shriftlarni ajratib olish yoki PDF metamaʼlumotlarini koʻrish vositamizga oʻting va PDF faylingizni tashlang. Tahlilchi barcha sahifalar boʻylab /Resources lugʻatlarini tahlil qiladi va har bir eʼlon qilingan shriftni kichik turi (TrueType, Type1, Type0), joylashtirish bayrogʻi (joylashtirilgan, qism toʻplam yoki yetishmaydi) va kodlash formati bilan birga sanab oʻtadi.
2-qadam: yetishmayotgan shrift turlarini joylashtiring. Agar tahlilchi joylashtirilmagan shriftlarni aniqlasa, Shriftlarni joylashtirish vositasini ishga tushiring. Ish stantsiyangizdan yoki ochiq manbali shrift omboridan (Google Fonts kabi) mos TTF yoki OTF shrift faylini taqdim eting. Vosita glif metrikalarini ajratib oladi, zarur /FontDescriptor va /FontFile2 oqimlarini yaratadi va PDF obyekt oʻzaro havola jadvalini yangilaydi.
3-qadam: optimal veb unumdorligi uchun qism toʻplamga ajrating. Agar PDF’ingiz toʻliq joylashtirilgan 10MB shrift oilalari sababli shishgan boʻlsa, uni Shriftlarni qism toʻplamga ajratish utilitasiga yuklang. Mexanizm har bir matn oqimini skanerlaydi, faol glif ID’larining aniq toʻplamini aniqlaydi, foydalanilmagan konturlarni kesib tashlaydi, tozalangan CFF yoki TrueType binarini yaratadi va shriftni standartlashtirilgan 6 harfli qism toʻplam prefiksi bilan teglaydi. Chizish 100% tiniq qolgan holda fayl hajmi keskin kamayadi.
4-qadam: uzoq muddatli arxiv muvofiqligini tekshiring. Agar hujjatingiz huquqiy topshiriqlar, tibbiy yozuvlar yoki davlat arxivlari uchun moʻljallangan boʻlsa, barcha shriftlar hech qanday joylashtirilmagan yoki taqiqlangan havolalarsiz ISO 19005 standartlariga javob berishini kafolatlash uchun natija faylini PDF/A arxiv tekshiruvchimizdan oʻtkazing.
6. ISO 32000 va PDF/A arxiv talablari: nima uchun shriftlarni joylashtirish muhokama qilinmaydi
Uzoq muddatli raqamli saqlash uchun Xalqaro standartlashtirish tashkiloti PDF/A standartlar seriyasini (ISO 19005-1 dan ISO 19005-4 gacha) yaratgan. Shrift joylashtirish ixtiyoriy boʻlgan umumiy PDF fayllardan farqli ravishda PDF/A muvofiqligi joylashtirilmagan shriftlarni qatʼiyan taqiqlaydi. PDF/A faylda chizilgan har bir glif mos vektor konturlari va metrik deskriptorlarini jismonan hujjat oqimi ichida saqlashi kerak.
Bu qatʼiy qoidaning sababi oddiy: raqamli formatlar joriy operatsion tizimlar, tijorat shrift studiyalari va mulkiy shrift chizish mexanizmlari eskirganidan ancha keyin — 20, 50 yoki 100 yildan keyin ham toʻliq oʻqiladigan boʻlib qolishi kerak. Agar 2026-yilgi shartnoma Windows 11 da oʻrnatilgan tashqi shriftga tayansa, oʻsha faylni 2060-yilda Linux mashinasida ochish oʻsha shrift dasturi endi mavjud boʻlmasa muvaffaqiyatsiz boʻladi yoki buziladi. Bundan tashqari, PDF/A-1a, PDF/A-2a va PDF/A-4 standartlari koʻrishida nuqsoni boʻlganlar uchun ekran oʻquvchilari va avtomatlashtirilgan arxiv skanerlari semantik matnni soʻzsiz talqin qila olishi uchun barcha shriftlar yaroqli Unicode xaritalashlariga (/ToUnicode) ega boʻlishini talab qiladi.
Tijorat bosmasi va bosmaga tayyorlash ish jarayonlarida (ISO 15930 / PDF/X bilan tartibga solinadigan) yetishmayotgan shriftlar qimmatga tushadigan mashina toʻxtashlari yoki buzilgan tirajlarga sabab boʻladi. Yuqori oʻlchamli Computer-to-Plate (CtP) rastr tasvir protsessorlari (RIP’lar) joylashtirilmagan shriftga duch kelsa, rastrlashtirishni toʻxtatadi. PDF’ingizni avtomatlashtirilgan bosmaga tayyorlash tekshiruvlaridan oʻtkazib, tarqatishdan oldin qism toʻplamli shrift turlarini joylashtirish orqali bosma, veb va huquqiy arxiv sohalarida doimiy vizual aniqlikni kafolatlaysiz.
Ushbu vositalarni hozir brauzeringizda bepul ishga tushiring
Fayl yuklashsiz, cheksiz foydalanish, zamonaviy brauzer Web Workers yordamida bir zumda ishlov.
Koʻp beriladigan savollar
Joylashtirilgan shrift va qism toʻplamli shrift oʻrtasidagi farq nima?▾
Joylashtirilgan shrift minglab gliflar va metamaʼlumot jadvallari bilan butun shrift faylini oʻz ichiga oladi, keyinchalik matnni tahrirlash imkonini beradi, lekin katta fayl hajmlarini keltirib chiqaradi. Qism toʻplamli shrift esa faqat oʻsha muayyan hujjatda ishlatilgan belgilarni oʻz ichiga oladi va bir xil vizual chizishni saqlagan holda fayl hajmini keskin (koʻpincha 90% yoki undan koʻproq) kamaytiradi.
Nima uchun PDF’imdan nusxalangan matn gʻalati belgilarga oʻxshaydi?▾
Bu shrift lugʻatida yaroqli /ToUnicode CMap jadvali yoʻqligi sababli yuz beradi. PDF oʻquvchi vektor shakllarni ekranda qanday chizishni biladi, ammo operatsion tizim almashish buferi ToUnicode jadvalisiz ichki belgi ID’larini standart Unicode belgilariga qaytara olmaydi.
Tijorat shriftlarini ommaviy PDF fayllarga qonuniy joylashtirsam boʻladimi?▾
Aksariyat zamonaviy shrift litsenziyalari shrift qism toʻplamga ajratilgan boʻlsa (toʻliq shrift dasturini ajratib olib, qayta ishlatib boʻlmasligi uchun) va hujjat faqat chop etish va oldindan koʻrish uchun sozlangan boʻlsa, PDF hujjatlarga joylashtirishga ruxsat beradi. Doimo shrift faylingizdagi OpenType fsType litsenziya bayroqlarini koʻrib chiqing.
Shriftlarni joylashtirish qabul qiluvchi kompyuterlarning shriftlarni almashtirishining oldini oladimi?▾
Ha. Barcha shriftlar va ularning belgi metrikalari PDF oqimiga joylashtirilganda har bir koʻrish qurilmasi (Windows, Mac, Linux, iOS, Android) aynan bir xil glif konturlarini chizadi va shrift almashtirish natijasidagi qayta oqishni butunlay yoʻqotadi.
2run Muhandislik jamoasi
2RUN OÜ (Tallin, Estoniya) brauzer dvigateli va xavfsizlik jamoasi tomonidan yozilgan. Maʼlumot saqlamaydigan, maxfiy brauzer arxitekturasiga asoslangan.