Мазмұнға өту
pdftools.kz

PDF-тегі ағын дегеніміз не

Ағын — сөздігінен бөлек денесі бар нысан: stream мен endstream кілт сөздерінің арасындағы байттар тізбегі. Ағындарда ең ауыр нәрсенің бәрі жатыр — бетті сызу командалары, ендірілген қаріп файлдары, суреттер, тіркемелер, түс профильдері. Сөздік денені сипаттайды: тарқатылғанға дейін онда неше байт бар және ол қандай сүзгімен қапталған. Құжаттағы қалғанының бәрі — сандар, атаулар мен сілтемелер — әлдеқайда жеңіл және ашық жазылады.

Браузерде жергіліктітіркеусіз

Сандар туралы қысқаша

Дененің шекарасы
stream мен endstream кілт сөздерінің арасы
Сөздіктің міндетті өрісі
тарқатуға дейінгі дене ұзындығы, байтпен
Сурет сүзгілері
DCTDecode, JPXDecode, CCITTFaxDecode, JBIG2Decode
Жөндеудегі ең жаман нәтиже
ағын боспен ауыстырылды — бет мазмұнсыз ашылады
Оңтайландыру не істейді
нысандарды қайта жинайды, пиксельді қайта кодтамайды

Ағындарда нақты не сақталады

  • Беттің мазмұны: «глиф қой», «тіктөртбұрышты боя», «қисық сыз» деген командалар тізбегі.
  • Ендірілген қаріп — TrueType немесе Type 1 файлы толығымен не қолданылған глифтерден құралған сабсеті.
  • Сурет: сүзгі қаптаған күйіндегі пиксельдер, ені, биіктігі және арнадағы бит саны қоса.
  • ICC түс профилі — қараушы бағдарлама түс сандарының мағынасын содан біледі.
  • Тіркелген файл: PDF өз ішінде кестеден мұрағатқа дейін кез келген нәрсені алып жүре алады.
  • Қызметтік нысандар: жаңа үлгідегі айқас сілтемелер кестесі және ұсақ нысандарға арналған контейнерлер.

Сүзгілер: дене немен қапталған

  • FlateDecode — zip-тегі алгоритмнің дәл өзі. Онымен беттер командасы, қаріптер және сурет емес нәрсенің бәрі қапталады.
  • DCTDecode — ішінде дайын JPEG жатыр. Қараушы оны қайта қаптамай, декодерге сол күйінде береді.
  • JPXDecode — JPEG 2000, медициналық жүктемелер мен түрлі-түсті мұрағат скандарында жиі кездеседі.
  • CCITTFaxDecode — екі түсті беттерге арналған факс сығымдауы, сканерлер мен КФҚ-дан қалған мұра.
  • JBIG2Decode — қайталанатын үзінділерді танып, оларды бір рет қана сақтайтын екі түсті пішім.
  • ASCIIHexDecode пен ASCII85Decode — екілік деректі мәтінмен жеткізуге арналған қаптамалар, бүгінде сирек.

Жазылған ұзындық денеге сай келмегенде

Ұзындық өрісі — уәде: stream кілт сөзінен кейін дәл сонша байт оқу керек. Уәде бұзылса, талдау жолдан шығады, өйткені келесі нысан күтілген жерден басталмайды. Қалпына келтіру endstream-ді қолмен іздеп, шынайы ұзындықты есептей алады — есепте бұл қалпына келтірілген ағын ұзындығы деп көрінеді.

Ең жаман нәтиже — ішіндегі дерек тарқатуға келмейтіндей бүлінгенде. Сонда ағын бос ағынмен ауыстырылады: файл ашылады, бірақ тиісті бет мазмұнсыз шығады. Мұндай нәтиже мазмұны жағынан бастапқыдан нашар, сондықтан адал құрал бұл туралы басқа түзетулердің арасына тығып емес, бөлек жолмен айтуға міндетті.

Оңтайландыру ағындармен не істейді

Веб үшін оңтайландыру құжатты бірінші беттің нысандары файлдың басына түсетіндей етіп қайта жазады, соңынан қалған беттердің байт ауқымдары жазылған нұсқау кестелерін қосады. Файлды бөлшектеп сұрайтын браузер жүктеудің аяқталуын күтпей-ақ бірінші бетті көрсетеді. Бұл жұмыстың бұрын жасалғаны файлдың алғашқы екі килобайтын тікелей қарау арқылы анықталады.

Оңтайландырудың істемейтіні — пиксельге тиюі. Суреттердің ағындары байтпа-байт көшіріледі, сондықтан скандар жинағы одан кейін бұрынғыдай салмақта қалады. Суреттердің салмағын тек қайта кодтау арқылы азайтуға болады, ал бұл — растеризациялы сығымдау, оның өз бағасы бар: мәтін қабатынан айырылу.

Жиі қойылатын сұрақтар

PDF-ті блокнотпен ашып оқуға неге болмайды?

Құжаттың қаңқасы шынымен мәтіндік, бірақ бүкіл мағына ағындарда жатыр, ал олар қапталған. Блокноттан сіз сөздіктерді, нысан атауларын және бет мәтінінің орнына екілік быламықты көресіз.

Веб-оңтайландыру суреттерді сығымдай ма?

Жоқ. Ол файлдағы нысандардың ретін өзгертеді және нұсқау кестелерін қосады, ал сурет ағындарын өзгеріссіз көшіреді. Құжат скандардан тұрса, оның салмағы оңтайландырудан кейін сол күйінде қалады.

Сырттай бірдей мәтін неге бірде екі, бірде екі жүз килобайт алады?

Айырма қаріпте. Ендірілмеген стандартты қаріппен жазылған бет — бірер килобайт команда, ал сол мәтін толық ендірілген гарнитурамен қаріп файлын түгел, кейде барлық сұлбасымен бірге сүйреп жүреді.

Ағыннан суретті сапасын жоғалтпай алуға бола ма?

Ол JPEG ретінде қапталған болса, ішінде дайын файл жатыр және сауатты шығарғыш оны байтпа-байт береді. Бетті растеризациялау болса суретті қайта салады да, оның ақауларына өзінікін қосады.

Жақын құралдар