શા માટે માત્ર કાળું બોક્સ પૂરતું નથી

મોટાભાગના PDF ટૂલ્સ સંવેદનશીલ લખાણ પર કાળો લંબચોરસ દોરીને વપરાશકર્તાઓને “redact” (માસ્ક/છુપાવવા) ની સુવિધા આપે છે. આ લંબચોરસ સ્ક્રીન પર શબ્દોને છુપાવે છે, પરંતુ ફાઇલના કન્ટેન્ટ સ્ટ્રીમમાં મૂળ અક્ષરો તો ત્યાં જ રહે છે. કોઈપણ વ્યક્તિ છુપાયેલા લખાણને સિલેક્ટ કરી શકે છે, તેને કોપી કરી શકે છે, અથવા તેને કાઢવા માટે સાધારણ સ્ક્રિપ્ટ ચલાવી શકે છે. બીજા શબ્દોમાં કહીએ તો, ડેટા હજુ પણ ત્યાં જ છે; કાળું બોક્સ માત્ર એક દ્રશ્ય કવર (visual cover) છે.

ડેવલપર સામે આવેલી સમસ્યા

લેખકને એવા PDF એડિટરની જરૂર હતી જે સર્વર પર ફાઇલો અપલોડ કર્યા વિના સંપૂર્ણપણે બ્રાઉઝરમાં ચાલે. આ મર્યાદાને કારણે ટેક્સ્ટ દૂર કરવા માટે બેક-એન્ડ સર્વિસ પર આધાર રાખવું અશક્ય બની જાય છે. હાલના ક્લાયન્ટ-સાઇડ સોલ્યુશન્સ માત્ર કન્ટેન્ટની ઉપર એક આકાર ઉમેરે છે, જેનાથી મૂળ ટેક્સ્ટ અકબંધ રહે છે. પડકાર એ હતો કે કામગીરી ઝડપી અને દસ્તાવેજ ઉપયોગી રાખીને ટેક્સ્ટને કાયમી ધોરણે કેવી રીતે દૂર કરવો.

પસંદગીયુક્ત પેજ રાસ્ટરાઇઝેશન: મુખ્ય વિચાર

આખી PDF ને ઈમેજમાં રૂપાંતરિત કરવાને બદલે—જે પગલું ફાઇલનું કદ વધારી શકે છે અને સર્ચ કરવાની ક્ષમતાને નષ્ટ કરી શકે છે—આ સોલ્યુશન માત્ર એ જ પેજને રાસ્ટરાઇઝ કરે છે જેમાં redactions હોય છે. તે પેજ બીટમેપ (bitmaps) બની જાય છે; બાકીના તમામ પેજ વેક્ટર PDF તરીકે રહે છે, જેનાથી ટેક્સ્ટ સિલેક્શન, સર્ચ અને નાનું ફાઇલ કદ જળવાઈ રહે છે.

આ અભિગમથી એવો દસ્તાવેજ મળે છે જે સામાન્ય લાગે છે: 19 પેજ સ્પષ્ટ અને સર્ચેબલ રહે છે, જ્યારે એક સંવેદનશીલ પેજ માત્ર પિક્સેલવાળી ઈમેજ બની જાય છે જ્યાં છુપાયેલી માહિતી હવે અસ્તિત્વમાં નથી.

વિશ્વસનીય રૂપાંતરણ માટે ત્રણ વ્યવહારુ નિયમો

  1. ત્રણ ગણા સ્કેલ પર રેન્ડર કરો – બીટમેપ પેજના સામાન્ય રિઝોલ્યુશન કરતા ત્રણ ગણા રિઝોલ્યુશન પર જનરેટ કરવામાં આવે છે. આસપાસના વેક્ટર પેજની બાજુમાં લો-રિઝોલ્યુશન રેન્ડરિંગ ઝાંખું દેખાય છે, જેનાથી શંકા પેદા થઈ શકે છે અથવા તે બિનવ્યાવસાયિક લાગી શકે છે.
  2. બધા વિઝ્યુઅલ એલિમેન્ટ્સને બીટમેપમાં મર્જ કરો – પેજને રાસ્ટરાઇઝ કરતા પહેલા એનોટેશન, સહીઓ, વોટરમાર્ક અને redaction લંબચોરસને એકસાથે જોડવામાં આવે છે. એક જ પેજ પર વેક્ટર એનોટેશનને રાસ્ટર ઈમેજ સાથે મિક્સ કરવાથી PDF રીડર્સ મૂંઝવણમાં મુકાઈ શકે છે, જેનાથી ડિસ્પ્લેમાં ભૂલો આવી શકે છે.
  3. પિક્સેલ્સને બદલે વ્યૂપોર્ટ (viewport) સાથે એન્કર કરો – એનોટેશન પેજના વ્યૂપોર્ટ કોઓર્ડિનેટ્સ સાથે જોડાયેલા હોય છે. જ્યારે વપરાશકર્તા ઝૂમ કરે છે, ત્યારે એલિમેન્ટ્સ ડ્રિફ્ટ થવા અથવા અસંગત રીતે સ્કેલ થવાને બદલે એલાઈન રહે છે, જે નહીંતર નીચેના ટેક્સ્ટને ખુલ્લો પાડી શકે છે.

રેસ કન્ડિશન્સ (race conditions) સામે રક્ષણ

દરેક પેજનું રેન્ડરિંગ એ એક અસિંક્રોનસ (asynchronous) કાર્ય છે. જો વપરાશકર્તા બ્રાઉઝર વિન્ડોને ઝડપથી રિસાઇઝ કરે, તો એકસાથે અનેક રેન્ડર જોબ્સ આવી શકે છે, જેનાથી કેનવાસ પર તૂટેલા અથવા એકબીજા પર ચઢેલા ફ્રેમ્સ બની શકે છે. આ અમલીકરણમાં દરેક પેજ માટે એક રેન્ડર ટોકન રજૂ કરવામાં આવ્યું છે: દરેક નવી રેન્ડર વિનંતી અગાઉના ટોકનને અમાન્ય બનાવે છે, જેનાથી જૂનું કાર્ય આપમેળે રદ થઈ જાય છે. પરિણામે, ઝડપી UI ફેરફારોમાં પણ એક સ્મૂધ અને ગ્લિચ-ફ્રી અનુભવ મળે છે.

ટ્રેડ-ઓફ્સ (trade-offs) કેવા દેખાય છે

પેજને બીટમેપમાં રૂપાંતરિત કરવાથી કોઈપણ છુપાયેલું ટેક્સ્ટ દૂર થાય છે, પરંતુ તે તે પેજના કન્ટેન્ટને સર્ચ કરવાની અથવા કોપી કરવાની ક્ષમતાને પણ ગુમાવે છે.

આ આગળ ક્યાં જઈ શકે છે

મુખ્ય સારાંશ

એક સાદું કાળું બોક્સ ડેટાને ડિલીટ કરતું નથી; તે માત્ર તેને છુપાવે છે. માત્ર redaction ની જરૂર હોય તેવા પેજને હાઇ-રિઝોલ્યુશન બીટમેપમાં રૂપાંતરિત કરીને અને બાકીની PDF ને વેક્ટર-આધારિત રાખીને, બ્રાઉઝર-ઓન્લી એડિટર સંવેદનશીલ ટેક્સ્ટને કાયમી ધોરણે ભૂંસી શકે છે અને સાથે જ દસ્તાવેજને ઝડપી, સર્ચેબલ અને ખાનગી રાખી શકે છે. આ પદ્ધતિ સુરક્ષા અને ઉપયોગિતા વચ્ચે સંતુલન જાળવે છે, પરંતુ જ્યારે ઘણા પેજમાં redaction કરવાનું હોય ત્યારે વપરાશકર્તાઓએ ફાઇલના કદ અને સર્ચેબિલિટી પર થતી સંચિત અસર પર ધ્યાન આપવું જોઈએ.