Kwa nini kisanduku cheusi hakitoshi

Zana nyingi za PDF zinawaruhusu watumiaji "kuficha" (redact) kwa kuchora mstatili mweusi juu ya maandishi nyeti. Mstatili huo huficha maneno kwenye skrini, lakini herufi zilizopo chini yake hubaki kwenye mtiririko wa maudhui ya faili. Mtu yeyote anaweza kuchagua maandishi yaliyofichwa, kuyanakili, au kuendesha skripti rahisi ili kuyatoa. Kwa maneno mengine, data bado ipo; kisanduku cheusi ni kizuizi cha kuonekana tu.

Changamoto aliyokabiliana nayo mtengenezaji

Mwandishi alihitaji programu ya kuhariri PDF inayofanya kazi nzima kwenye kivinjari, bila kupakia faili kwenye seva. Kizuizi hicho kinafanya iwe vigumu kutegemea huduma ya upande wa nyuma (back-end) ili kuondoa maandishi. Suluhisho zilizopo za upande wa mteja (client-side) huongeza tu umbo juu ya maudhui, jambo ambalo huacha maandishi ya asili bila kubadilika. Changamoto ilikuwa kuondoa maandishi moja kwa moja huku ikihakikisha operesheni hiyo ni ya haraka na hati inatumika.

Rasterization ya kurasa kwa kuchagua: wazo kuu

Badala ya kubadilisha PDF nzima kuwa picha—hatua ambayo ingeongeza ukubwa wa faili na kuharibu uwezo wa kutafuta—suluhisho hili hufanya rasterization tu kwa kurasa zenye maandishi yaliyofichwa. Kurasa hizo zinakuwa bitmap; kila ukurasa mwingine unabaki kuwa PDF ya vector, ukihifadhi uwezo wa kuchagua maandishi, utafutaji, na ukubwa mdogo wa faili.

Njia hii inazalisha hati inayohisi kama ya kawaida: kurasa 19 zinabaki kuwa angavu na zinazoweza kutafutwa, wakati ukurasa mmoja nyeti unakuwa picha ya pixel pekee ambapo taarifa iliyofichwa haipo tena.

Kanuni tatu za kivitendo kwa ajili ya ubadilishaji wa kuaminika

  1. Render katika kiwango cha mara tatu – Bitmap hutengenezwa katika kiwango cha mara tatu cha utata (resolution) wa kawaida wa ukurasa. Render yenye utata mdogo huonekana ikiwa na ukungu kando ya kurasa za vector zinazozunguka, jambo ambalo linaweza kuleta shaka au kuonekana kama haina weledi.
  2. Unganisha vipengele vyote vya kuonekana kwenye bitmap – Maelezo (annotations), sahihi, alama za maji (watermarks), na mstatili wa kuficha huunganishwa pamoja kabla ya ukurasa kufanyiwa rasterization. Kuchanganya maelezo ya vector na picha ya raster kwenye ukurasa mmoja kunaweza kuchanganya programu za kusoma PDF, na kusababisha makosa ya kuonyesha.
  3. Ambatisha kwenye viewport, siyo pixel – Maelezo (annotations) yameunganishwa na kuratibu (coordinates) za viewport ya ukurasa. Mtumiaji anapozidisha ukubwa (zoom), vipengele vinabaki vimepangwa badala ya kusogea au kubadilika ukubwa bila mpangilio, jambo ambalo lingeweza kufichua maandishi yaliyopo chini yake.

Kulinda dhidi ya hali za mashindano (race conditions)

Kufanya render ya kila ukurasa ni kazi isiyo ya wakati mmoja (asynchronous). Ikiwa mtumiaji atabadilisha ukubwa wa dirisha la kivinjari kwa haraka, kazi nyingi za render zinaweza kuingiliana, na kuzalisha fremu zilizoharibika au zinazoingiliana kwenye canvas. Utekelezaji huu unaleta tokeni ya render kwa kila ukurasa: kila ombi jipya la render linabatilisha tokeni iliyopita, na kusababisha kazi ya zamani kujighairi yenyewe. Matokeo yake ni uzoefu laini, usio na hitilafu hata wakati wa mabadiliko ya haraka ya UI.

Jinsi mabadiliko ya kutoa na kupata yanavyoonekana

Kubadilisha ukurasa kuwa bitmap huondoa maandishi yoyote yaliyofichwa, lakini pia huondoa uwezo wa kutafuta au kunakili maudhui ya ukurasa huo.

Wapi jambo hili linaweza kuelekea

Muhtasari

Kisanduku cheusi rahisi hakifuti data; kinaficha tu. Kwa kubadilisha tu kurasa zinazohitaji kufichwa kuwa bitmap zenye utata wa juu na kuacha sehemu nyingine ya PDF ikiwa katika mfumo wa vector, programu ya kuhariri inayofanya kazi kwenye kivinjari pekee inaweza kufuta maandishi nyeti moja kwa moja huku ikifanya hati iwe ya haraka, inayoweza kutafutwa, na ya siri. Njia hii inaleta uwiano kati ya usalama na uwezo wa kutumia, lakini watumiaji wanapaswa kuzingatia athari ya jumla kwenye ukubwa wa faili na uwezo wa kutafuta wakati wanapoficha kurasa nyingi.