Kinachotokea hasa unapobana PDF
PDF123 Compress hubana upya mitiririko na kupakia objekti kwa qpdf, si kupunguza sampuli za picha wala kupunguza fonti. Linearization hubadilisha mpangilio, si ukubwa wa faili.

PDF mbili zinaweza kuonekana sawa kabisa kwenye skrini lakini kutofautiana kwa mizani mitatu: 50 KB dhidi ya 50 MB. Tofauti hiyo karibu kamwe haitokani na vitendaji vya maandishi. Katika mkataba wa kurasa ishirini vitendaji hivyo kwa kawaida ni kilobaiti chache tu; kilichobaki ni sampuli za picha, programu kamili ya fonti iliyopachikwa, na jinsi mitiririko na objekti zimebanwa.
Kuna tokeo linalostahili kutajwa mapema: “kubana PDF” si kitendo kimoja bali vinne. Kila kimoja hufinya kitu tofauti na hutoza gharama tofauti, na kuvichukulia kama kitu kimoja hutoa uzoefu unaojipinga: faili imebanwa lakini haipungui, au imepungua lakini kurasa zimefifia.
Ukubwa hutokana na vyanzo vitatu
Kesi nyingi za “kwa nini PDF hii ni kubwa kiasi hiki?” huanza na skani au picha ya azimio la juu ambayo bado imepachikwa kwa ukubwa wake wa awali. Hesabu yake inafaa kufanywa mara moja: ukurasa wa karatasi ya Letter kwa inchi 8.5 × 11 na DPI 300 ni pikseli takriban 2550 × 3300, na kwa baiti tatu kwa pikseli hiyo ni 25 MB hivi bila kubanwa. Kurasa ishirini kama hizo mara nyingi hufikia 60 hadi 80 MB kabla ya mtu yeyote kugusa ubanaji.
Chanzo cha pili ni fonti. PDF inaweza kupachika programu nzima ya fonti ili kila mashine ionyeshe maandishi kwa namna ile ile, na gharama hiyo hupimwa kwa ukubwa wa majedwali ya glifu, si kwa kiasi cha maandishi yanayosomwa. Ndiyo sababu upunguzaji wa fonti ni kifaa kingine cha ukubwa.
Cha tatu ni upakiaji wenyewe. Maudhui yaleyale yanaweza kuhifadhiwa kwa mipangilio ya ubanaji inayopoteza nafasi, au objekti zake zikawa zimetawanyika kwenye faili, kila moja ikiwa na gharama yake ya uhasibu. Hakuna katika hayo hubadilisha pikseli moja wala glifu moja, na ndiyo sehemu ambayo ubanaji upya wa mitiririko unaweza kuifikia.
“Kubana” ni vifaa vinne tofauti
Kuna vifaa vinne vya kupunguza ukubwa; hufanya kazi katika tabaka tofauti, na gharama zao karibu hazipishani. Kuchagua kifaa kisichofaa ndiyo sababu ya kawaida ya ubanaji kuonekana haukufanya kitu.
| Kifaa | Kinachogusa | Faida ya ukubwa | Gharama |
|---|---|---|---|
| Ubanaji upya wa mitiririko na mitiririko ya objekti | Jinsi mitiririko ya maudhui inabanwa, jinsi objekti huhifadhiwa na kupakiwa | Hutegemea jinsi faili ya awali ilivyokuwa legelege | Muonekano wa kurasa haubadiliki |
| Kupunguza sampuli za picha | Idadi ya pikseli, yaani azimio | Kubwa | Azimio hupungua milele |
| Usanidi upya wa picha wenye upotevu | Uwakilishi wa baiti wa bitmap | Kubwa | Ubora wa picha hupungua |
| Upunguzaji wa fonti | Majedwali ya glifu yaliyopachikwa | Wastani | Glifu zisizotumika hazibadiliki tena |
| Linearization | Mpangilio wa objekti | Karibu sifuri | Badala yake hununua muda wa kupakia ukurasa wa kwanza |
Safu nne za kwanza zote huitwa “ubanaji” kwa ulegevu, lakini ni ya kwanza pekee inayoacha maudhui kama yalivyo. Pia ni safu ambayo faida yake ni rahisi kukadiriwa vibaya: skani ambayo ukubwa wake unatokana zaidi na sampuli mbichi za picha haina ulegevu mwingi wa kuondoa, na vifaa vinavyoweza kuipunguza kwa kiasi kikubwa ni kupunguza sampuli na usanidi upya wenye upotevu, kwa gharama ya kupoteza azimio na ubora huo milele.
PDF123 Compress hufanya ya kwanza pekee
Bana PDF (POST /api/v1/misc/compress-pdf) hufanya safu ya kwanza pekee. Huendesha qpdf kwa ubanaji wa mitiririko ambayo haijabanwa (--compress-streams=y), mzunguko wa pili juu ya mitiririko iliyobanwa kwa Flate (--recompress-flate), na upakiaji wa objekti katika mitiririko ya objekti (--object-streams=generate).
Haipunguzi sampuli za picha, haisanidi upya bitmap kwa ubora wa chini wa JPEG, wala haipunguzi fonti. Kurasa zinapaswa kuonekana sawa, na akiba hutokana na ubanaji upya wa Flate na upakiaji wa mitiririko ya objekti.
Hali ya kushindwa inastahili ufafanuzi sawa. Ukubwa wa faili ukitokana zaidi na data ya picha iliyobanwa tayari kama JPEG, Flate haina cha kufinya, kwa sababu baiti hizo za picha ziko nje ya eneo la swichi tatu zilizotajwa juu. Ndiyo sababu pakiti ya skani inaweza kurudi ikiwa ndogo kwa asilimia chache tu, wakati PDF yenye maandishi mengi ya ukubwa sawa hupata faida inayoonekana zaidi.
Njia ya kinyume ni Fungua ubanaji wa PDF, inayopanua mitiririko kwa ukaguzi (--qdf, mitiririko ya objekti imezimwa) na pia haibadilishi muonekano wa kurasa.
Matatizo yasiyo ya ukubwa yanahitaji njia nyingine
| Unachohitaji | Njia unayopaswa kutumia |
|---|---|
| Muonekano ule ule, kuondoa tu gharama ya upakiaji | Bana PDF |
| Pakiti ya skani iliyo kubwa kweli na kupoteza ubora kunakubalika | Kupunguza sampuli au usanidi upya wenye upotevu, si Compress hii |
| Bado inahaririwa, lakini herufi inayofuata haichapiki | Mipangilio tofauti ya kuhamisha au faili chanzo, tazama upunguzaji wa fonti |
| Kivinjari kionyeshe ukurasa wa kwanza mapema | Linearization hutatua uchoraji wa kwanza, si ukubwa |
| Faili haifunguki kabisa | Rekebisha PDF; hili ni tatizo la muundo, si la ukubwa |
Mtego mmoja uko katika safu hiyo ya mwisho: hapa Panga PDF kwa wavuti si utekelezaji tofauti bali jina lingine la Compress. Zote mbili zinaelekeza kwenye operesheni ile ile; kitambulisho rasmi ni misc/compress-pdf na linearize-pdf ni jina lingine, portal hutuma linearize=true na optimizeLevel=1 kila wakati kwa kifaa hicho, seva haisomi sehemu hizo mbili, na qpdf haipatiwi --linearize kamwe. Operesheni inayopanga faili kwa mtiririko kwa kweli ni Weka nenosiri inapousimba.
Kwa hiyo, kama unachotaka ni muonekano ule ule katika faili ndogo, Bana PDF inatosha. Kama unataka kupunguza picha kwa upotevu au upunguzaji wa fonti, njia hii si kifaa sahihi. Faili hurudi moja kwa moja, bila akaunti yoyote. Ili kuona wapi objekti, mitiririko na jedwali la rejeleo mtambuka yalipo, endelea na Kilichomo ndani ya PDF.