ஏன் ஒரு கருப்புப் பெட்டி மட்டும் போதுமானதல்ல

பெரும்பாலான PDF கருவிகள், முக்கியமான உரையின் மேல் ஒரு கருப்புச் செவ்வகத்தை வரைவதன் மூலம் பயனர்களை "மறைக்க" (redact) அனுமதிக்கின்றன. அந்தச் செவ்வகம் திரையில் உள்ள வார்த்தைகளை மறைக்கலாம், ஆனால் அதன் பின்னணியில் உள்ள எழுத்துக்கள் கோப்பின் உள்ளடக்க ஓட்டத்தில் (content stream) அப்படியே இருக்கும். யார் வேண்டுமானாலும் அந்த மறைக்கப்பட்ட உரையைத் தேர்ந்தெடுத்து, நகலெடுக்கலாம் அல்லது அதைத் பிரித்தெடுக்க ஒரு எளிய ஸ்கிரிப்டைப் பயன்படுத்தலாம். வேறு வார்த்தைகளில் கூறுவதானால், தரவு இன்னும் அங்கேயே உள்ளது; அந்த கருப்புப் பெட்டி ஒரு காட்சித் திரை மட்டுமே.

டெவலப்பர் எதிர்கொண்ட சிக்கல்

ஆசிரியர் கோப்புகளை ஒரு சேவையகத்திற்கு (server) பதிவேற்றாமல், முழுமையாக உலாவியிலேயே (browser) இயங்கும் ஒரு PDF எடிட்டரைத் தேவைப்பட்டார். அந்தத் தடையினால், உரையை நீக்குவதற்கு ஒரு back-end சேவையைச் சார்ந்திருப்பது சாத்தியமற்றது. தற்போதுள்ள client-side தீர்வுகள் உள்ளடக்கத்தின் மேல் ஒரு வடிவத்தை (shape) மட்டுமே சேர்க்கின்றன, இது அசல் உரையை அப்படியே விட்டுவிடுகிறது. சவாலான விஷயம் என்னவென்றால், செயல்பாட்டை வேகமாகவும், ஆவணத்தைப் பயன்படுத்தக்கூடிய நிலையிலும் வைத்திருக்கும் அதே வேளையில், உரையை நிரந்தரமாக நீக்குவதாகும்.

தேர்ந்தெடுக்கப்பட்ட பக்கங்களை ராஸ்டரைசேஷன் (rasterisation) செய்தல்: முக்கியக் கருத்து

முழு PDF கோப்பையும் ஒரு படமாக மாற்றுவதற்குப் பதிலாக—இது கோப்பின் அளவை அதிகமாக்கும் மற்றும் தேடும் வசதியைப் பாதிக்கும்—இந்தத் தீர்வு redaction செய்யப்பட வேண்டிய பக்கங்களை மட்டுமே ராஸ்டரைசேஷன் (rasterise) செய்கிறது. அந்தப் பக்கங்கள் பிட்மேப்களாக (bitmaps) மாறும்; மற்ற அனைத்துப் பக்கங்களும் வெக்டர் PDF-ஆகவே இருக்கும், இதனால் உரைத் தேர்வு (text selection), தேடல் மற்றும் சிறிய கோப்பு அளவு ஆகியவை பாதுகாக்கப்படும்.

இந்த அணுகுமுறை ஒரு சாதாரண ஆவணம் போன்ற உணவைத் தரும்: 19 பக்கங்கள் தெளிவாகவும் தேடக்கூடியதாகவும் இருக்கும், அதே சமயம் அந்த ஒரு முக்கியமான பக்கம் மறைக்கப்பட்ட தகவல்கள் இல்லாத ஒரு பிப்ஸல்-மட்டும் கொண்ட படமாக இருக்கும்.

நம்பகமான மாற்றத்திற்கான மூன்று நடைமுறை விதிகள்

  1. மூன்று மடங்கு அளவில் ரெண்டர் செய்தல் – பிட்மேப் அந்தப் பக்கத்தின் சாதாரண தெளிவுத்திறனை விட (resolution) மூன்று மடங்கு அதிக அளவில் உருவாக்கப்படுகிறது. குறைந்த தெளிவுத்திறன் கொண்ட ரெண்டரிங், அருகில் உள்ள வெக்டர் பக்கங்களுடன் ஒப்பிடும்போது மங்கலாகத் தெரியும், இது சந்தேகத்தை ஏற்படுத்தலாம் அல்லது தொழில்முறைத் தரம் குறைந்ததாகத் தோன்றலாம்.
  2. அனைத்து காட்சி கூறுகளையும் பிட்மேப்பில் இணைத்தல் – பக்கம் ராஸ்டரைசேஷன் செய்யப்படுவதற்கு முன்பு, குறிப்புகள் (annotations), கையொப்பங்கள், நீர் அடையாளங்கள் (watermarks) மற்றும் redaction செவ்வகம் ஆகியவை ஒன்றாக ஒருங்கிணைக்கப்படுகின்றன. ஒரே பக்கத்தில் வெக்டர் குறிப்புகளையும் ராஸ்டர் படத்தையும் கலந்து பயன்படுத்துவது PDF ரீடர்களைக் குழப்பமடையச் செய்து, காட்சித் பிழைகளுக்கு வழிவகுக்கும்.
  3. பிக்சல்களுக்குப் பதிலாக வியூபோர்ட்டுடன் (viewport) இணைத்தல் – குறிப்புகள் பக்கத்தின் வியூபோர்ட் ஆயத்தொலைவுகளுடன் (viewport coordinates) இணைக்கப்பட்டுள்ளன. பயனர் ஜூம் செய்யும்போது, கூறுகள் நகருவதற்குப் பதிலாக அல்லது சீரற்ற முறையில் அளவை மாற்றுவதற்குப் பதிலாக சரியாகத் தொடர்ச்சியாக இருக்கும், இல்லையெனில் அது அசல் உரையை வெளிப்படுத்தக்கூடும்.

ரேஸ் கண்டிஷன்ஸ் (race conditions) ஆகியவற்றிலிருந்து பாதுகாத்தல்

ஒவ்வொரு பக்கத்தையும் ரெண்டர் செய்வது ஒரு அசின்க்ரோனஸ் (asynchronous) பணியாகும். பயனர் உலாவியின் சாளரத்தை (browser window) வேகமாக மாற்றினால், பல ரெண்டர் பணிகள் ஒன்றன் மேல் ஒன்று ஏற்பட்டு, கேன்வாஸில் (canvas) சிதைந்த அல்லது ஒன்றன் மேல் ஒன்று அமைந்த பிரேம்களை உருவாக்கலாம். இதைத் தவிர்க்க, ஒவ்வொரு பக்கத்திற்கும் ஒரு ரெண்டர் டோக்கன் (render token) அறிமுகப்படுத்தப்பட்டுள்ளது: ஒவ்வொரு புதிய ரெண்டர் கோரிக்கையும் முந்தைய டோக்கனைச் செல்லாததாக்குகிறது, இதனால் பழைய பணி தானாகவே ரத்து செய்யப்படுகிறது. இதன் விளைவாக, விரைவான UI மாற்றங்களின் போதும் தடையற்ற மற்றும் பிழையற்ற அனுபவம் கிடைக்கிறது.

இதில் உள்ள சவால்கள் (trade-offs) என்ன?

ஒரு பக்கத்தை பிட்மேப்பாக மாற்றுவது மறைக்கப்பட்ட உரையை நீக்கிவிடும், ஆனால் அதே நேரத்தில் அந்தப் பக்கத்தின் உள்ளடக்கத்தைத் தேடும் அல்லது நகலெடுக்கும் திறனையும் அது இழந்துவிடும்.

இது அடுத்து எங்கு செல்லக்கூடும்

முக்கியக் கருத்து

ஒரு சாதாரண கருப்புப் பெட்டி தரவை நீக்காது; அது அதை மறைக்க மட்டுமே செய்கிறது. redaction செய்ய வேண்டிய பக்கங்களை மட்டும் உயர்-தெளிவுத்திறன் கொண்ட பிட்மேப்களாக மாற்றி, மீதமுள்ள PDF-ஐ வெக்டர் அடிப்படையிலேயே வைத்திருப்பதன் மூலம், ஒரு பிரவுசர்-மட்டும் இயங்கும் எடிட்டர், ஆவணத்தை வேகமாகவும், தேடக்கூடியதாகவும் மற்றும் பாதுகாப்பாகவும் வைத்திருக்கும் அதே வேளையில், முக்கியமான உரையை நிரந்தரமாக அழிக்க முடியும். இந்த முறை பாதுகாப்பிற்கும் பயன்பாட்டிற்கும் (usability) இடையே சமநிலையை ஏற்படுத்துகிறது, ஆனால் பல பக்கங்களை மறைக்கும்போது கோப்பு அளவு மற்றும் தேடல் வசதி ஆகியவற்றின் மீதான அதன் ஒட்டுமொத்த தாக்கத்தைக் பயனர்கள் கவனத்தில் கொள்ள வேண்டும்.