ಕೇವಲ ಕಪ್ಪು ಪೆಟ್ಟಿಗೆಯಷ್ಟೇ ಏಕೆ ಸಾಕಾಗುವುದಿಲ್ಲ
ಹೆಚ್ಚಿನ PDF ಪರಿಕರಗಳು ಸೂಕ್ಷ್ಮ ಪಠ್ಯದ ಮೇಲೆ ಕಪ್ಪು ಆಯತವನ್ನು (rectangle) ಬಿಡಿಸುವ ಮೂಲಕ ಬಳಕೆದಾರರಿಗೆ "ರೆಡ್ಯಾಕ್ಟ್" (redact) ಮಾಡಲು ಅವಕಾಶ ನೀಡುತ್ತವೆ. ಆ ಆಯತವು ಪರದೆಯ ಮೇಲೆ ಪದಗಳನ್ನು ಮರೆಮಾಡುತ್ತದೆ, ಆದರೆ ಮೂಲ ಅಕ್ಷರಗಳು ಫೈಲ್ನ ಕಂಟೆಂಟ್ ಸ್ಟ್ರೀಮ್ನಲ್ಲಿ ಹಾಗೆಯೇ ಉಳಿಯುತ್ತವೆ. ಯಾರೇ ಆದರೂ ಆ ಮರೆಮಾಚಲಾದ ಪಠ್ಯವನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು, ಕಾಪಿ ಮಾಡಬಹುದು ಅಥವಾ ಅದನ್ನು ಹೊರತೆಗೆಯಲು ಸರಳ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸಬಹುದು. ಅಂದರೆ, ಡೇಟಾ ಇನ್ನೂ ಅಲ್ಲೇ ಇರುತ್ತದೆ; ಕಪ್ಪು ಪೆಟ್ಟಿಗೆಯು ಕೇವಲ ಒಂದು ದೃಶ್ಯ ಮುಚ್ಚಳವಷ್ಟೇ.
ಡೆವಲಪರ್ ಎದುರಿಸಿದ ಸಮಸ್ಯೆ
ಲೇಖಕರಿಗೆ ಫೈಲ್ಗಳನ್ನು ಸರ್ವರ್ಗೆ ಅಪ್ಲೋಡ್ ಮಾಡದೆ, ಸಂಪೂರ್ಣವಾಗಿ ಬ್ರೌಸರ್ನಲ್ಲಿ ಕಾರ್ಯನಿರ್ವಹಿಸುವ PDF ಎಡಿಟರ್ ಅಗತ್ಯವಿತ್ತು. ಆ ಮಿತಿಯ ಕಾರಣದಿಂದಾಗಿ, ಪಠ್ಯವನ್ನು ತೆಗೆದುಹಾಕಲು (strip text) ಬ್ಯಾಕ್-ಎಂಡ್ ಸೇವೆಯನ್ನು ಅವಲಂಬಿಸುವುದು ಅಸಾಧ್ಯವಾಗುತ್ತದೆ. ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಕ್ಲೈಂಟ್-ಸೈಡ್ ಪರಿಹಾರಗಳು ಕೇವಲ ಕಂಟೆಂಟ್ನ ಮೇಲೆ ಒಂದು ಆಕಾರವನ್ನು ಸೇರಿಸುತ್ತವೆ, ಇದು ಮೂಲ ಪಠ್ಯವನ್ನು ಹಾಗೆಯೇ ಉಳಿಸುತ್ತದೆ. ಕಾರ್ಯಾಚರಣೆಯನ್ನು ವೇಗವಾಗಿ ಮತ್ತು ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ಬಳಸಲು ಅನುಕೂಲವಾಗುವಂತೆ ಉಳಿಸಿಕೊಂಡು, ಪಠ್ಯವನ್ನು ಶಾಶ್ವತವಾಗಿ ತೆಗೆದುಹಾಕುವುದು ದೊಡ್ಡ ಸವಾಲಾಗಿತ್ತು.
ಆಯ್ದ ಪುಟಗಳ ರಾಸ್ಟರ್ಸೈಸ್ (rasterisation): ಮೂಲ ಪರಿಕಲ್ಪನೆ
ಇಡೀ PDF ಅನ್ನು ಚಿತ್ರವಾಗಿ ಪರಿವರ್ತಿಸುವ ಬದಲು—ಇದು ಫೈಲ್ನ ಗಾತ್ರವನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ ಮತ್ತು ಸರ್ಚಾಬಿಲಿಟಿಯನ್ನು (searchability) ಹಾಳುಮಾಡುತ್ತದೆ—ಈ ಪರಿಹಾರವು ರೆಡ್ಯಾಕ್ಷನ್ ಇರುವ ಪುಟಗಳನ್ನು ಮಾತ್ರ ರಾಸ್ಟರ್ಸೈಸ್ ಮಾಡುತ್ತದೆ. ಆ ಪುಟಗಳು ಬಿಟ್ಮ್ಯಾಪ್ಗಳಾಗುತ್ತವೆ; ಉಳಿದ ಎಲ್ಲಾ ಪುಟಗಳು ವೆಕ್ಟರ್ PDF ಆಗಿಯೇ ಉಳಿಯುತ್ತವೆ, ಇದರಿಂದ ಪಠ್ಯ ಆಯ್ಕೆ (text selection), ಹುಡುಕಾಟ (search) ಮತ್ತು ಸಣ್ಣ ಫೈಲ್ ಗಾತ್ರವು ಸಂರಕ್ಷಿಸಲ್ಪಡುತ್ತದೆ.
ಈ ವಿಧಾನವು ಸಾಮಾನ್ಯವಾದ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ನೀಡುತ್ತದೆ: 19 ಪುಟಗಳು ಸ್ಪಷ್ಟವಾಗಿ ಮತ್ತು ಹುಡುಕಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಇರುತ್ತವೆ, ಆದರೆ ಒಂದು ಸೂಕ್ಷ್ಮ ಪುಟವು ಕೇವಲ ಪಿಕ್ಸೆಲ್ ಚಿತ್ರವಾಗುತ್ತದೆ, ಅಲ್ಲಿ ಮರೆಮಾಚಲಾದ ಮಾಹಿತಿ ಇರುವುದಿಲ್ಲ.
ವಿಶ್ವಾಸಾರ್ಹ ಪರಿವರ್ತನೆಗಾಗಿ ಮೂರು ಪ್ರಾಯೋಗಿಕ ನಿಯಮಗಳು
- ಮೂರು ಪಟ್ಟು ಸ್ಕೇಲ್ನಲ್ಲಿ ರেন্ডರ್ ಮಾಡಿ – ಬಿಟ್ಮ್ಯಾಪ್ ಅನ್ನು ಪುಟದ ಸಾಮಾನ್ಯ ರೆಸಲ್ಯೂಶನ್ನ ಮೂರು ಪಟ್ಟು ಹೆಚ್ಚಾಗಿ ಸೃಷ್ಟಿಸಲಾಗುತ್ತದೆ. ಕಡಿಮೆ ರೆಸಲ್ಯೂಶನ್ನ ರಂಡರ್ ಸುತ್ತಲಿನ ವೆಕ್ಟರ್ ಪುಟಗಳ ಪಕ್ಕದಲ್ಲಿ ಮಸುಕಾಗಿ ಕಾಣಿಸಬಹುದು, ಇದು ಅನುಮಾನವನ್ನು ಹುಟ್ಟುಹಾಕಬಹುದು ಅಥವಾ ಅಸಂಪ್ರದಾಯಿಕವಾಗಿ ಕಾಣಿಸಬಹುದು.
- ಎಲ್ಲಾ ದೃಶ್ಯ ಅಂಶಗಳನ್ನು ಬಿಟ್ಮ್ಯಾಪ್ನಲ್ಲಿ ವಿಲೀನಗೊಳಿಸಿ – ಪುಟವನ್ನು ರಾಸ್ಟರ್ಸೈಸ್ ಮಾಡುವ ಮೊದಲು ಅноಟೇಶನ್ಗಳು (annotations), ಸಹಿಗಳು, ವಾಟರ್ಮಾರ್ಕ್ಗಳು ಮತ್ತು ರೆಡ್ಯಾಕ್ಷನ್ ಆಯತವನ್ನು ಒಟ್ಟಿಗೆ ಸಂಯೋಜಿಸಲಾಗುತ್ತದೆ. ಒಂದೇ ಪುಟದಲ್ಲಿ ವೆಕ್ಟರ್ ಅноಟೇಶನ್ಗಳನ್ನು ರಾಸ್ಟರ್ ಚಿತ್ರದೊಂದಿಗೆ ಬೆರೆಸುವುದರಿಂದ PDF ರೀಡರ್ಗಳು ಗೊಂದಲಕ್ಕೀಡಾಗಬಹುದು ಮತ್ತು ಡಿಸ್ಪ್ಲೇ ದೋಷಗಳಿಗೆ ಕಾರಣವಾಗಬಹುದು.
- ಪಿಕ್ಸೆಲ್ಗಳಿಗೆ ಅಲ್ಲದೆ, ವ್ಯೂಪೋರ್ಟ್ಗೆ (viewport) ಜೋಡಿಸಿ – ಅноಟೇಶನ್ಗಳನ್ನು ಪುಟದ ವ್ಯೂಪೋರ್ಟ್ ಕೋಆರ್ಡಿನೇಟ್ಗಳಿಗೆ ಜೋಡಿಸಲಾಗುತ್ತದೆ. ಬಳಕೆದಾರರು ಜೂಮ್ ಮಾಡಿದಾಗ, ಅಂಶಗಳು ಅಸಂಗತವಾಗಿ ಚಲಿಸುವ ಅಥವಾ ಸ್ಕೇಲ್ ಆಗುವ ಬದಲು ಸರಿಯಾಗಿ ಜೋಡಣೆಯಲ್ಲಿರುತ್ತವೆ, ಇಲ್ಲದಿದ್ದರೆ ಅದು ಅಡಗಿರುವ ಪಠ್ಯವನ್ನು ಬಹಿರಂಗಪಡಿಸಬಹುದು.
ರೇಸ್ ಕಂಡೀಶನ್ಗಳಿಂದ (race conditions) ರಕ್ಷಣೆ
ಪ್ರತಿ ಪುಟವನ್ನು ರেন্ডರ್ ಮಾಡುವುದು ಒಂದು ಅಸಿಂಕ್ರೋನಸ್ (asynchronous) ಕಾರ್ಯವಾಗಿದೆ. ಬಳಕೆದಾರರು ಬ್ರೌಸರ್ ವಿಂಡೋವನ್ನು ವೇಗವಾಗಿ ರಿಸೈಜ್ ಮಾಡಿದರೆ, ಹಲವಾರು ರಂಡರ್ ಕೆಲಸಗಳು ಒಂದರ ಮೇಲೊಂದು ಬಂದು, ಕ್ಯಾನ್ವಾಸ್ ಮೇಲೆ ಹಾನಿಗೊಳಗಾದ ಅಥವಾ ಒಂದರ ಮೇಲೊಂದು ಅಡಗಿದ ಫ್ರೇಮ್ಗಳನ್ನು ಉಂಟುಮಾಡಬಹುದು. ಈ ಅನುಷ್ಠಾನವು ಪ್ರತಿ ಪುಟಕ್ಕೆ ಒಂದು ರಂಡರ್ ಟೋಕನ್ ಅನ್ನು ಪರಿಚಯಿಸುತ್ತದೆ: ಪ್ರತಿ ಹೊಸ ರಂಡರ್ ವಿನಂತಿಯು ಹಿಂದಿನ ಟೋಕನ್ ಅನ್ನು ಅಸಿಂಧುಗೊಳಿಸುತ್ತದೆ, ಇದರಿಂದ ಹಳೆಯ ಕಾರ್ಯವು ತಾನಾಗಿಯೇ ರದ್ದಾಗುತ್ತದೆ. ಇದರ ಪರಿಣಾಮವಾಗಿ, ವೇಗದ UI ಬದಲಾವಣೆಗಳ ನಡುವೆಯೂ ಸುಗಮವಾದ ಮತ್ತು ತೊಂದರೆಯಿಲ್ಲದ ಅನುಭವ ಸಿಗುತ್ತದೆ.
ವಹಿವಾಟಿನ ಮಿತಿಗಳು (trade-offs) ಹೇಗಿರುತ್ತವೆ
ಪುಟವನ್ನು ಬಿಟ್ಮ್ಯಾಪ್ ಆಗಿ ಪರಿವರ್ತಿಸುವುದು ಯಾವುದೇ ಮರೆಮಾಚಲಾದ ಪಠ್ಯವನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ, ಆದರೆ ಇದು ಆ ಪುಟದ ವಿಷಯವನ್ನು ಹುಡುಕುವ ಅಥವಾ ಕಾಪಿ ಮಾಡುವ ಸಾಮರ್ಥ್ಯವನ್ನೂ ಕಳೆದುಕೊಳ್ಳುತ್ತದೆ.
ಇದು ಮುಂದೆ ಎಲ್ಲಿಗೆ ಹೋಗಬಹುದು
ಸಾರಾಂಶ
ಒಂದು ಸರಳ ಕಪ್ಪು ಪೆಟ್ಟಿಗೆಯು ಡೇಟಾವನ್ನು ಅಳಿಸುವುದಿಲ್ಲ; ಅದು ಕೇವಲ ಅದನ್ನು ಮರೆಮಾಡುತ್ತದೆ. ರೆಡ್ಯಾಕ್ಷನ್ ಅಗತ್ಯವಿರುವ ಪುಟಗಳನ್ನು ಮಾತ್ರ ಹೆಚ್ಚಿನ ರೆಸಲ್ಯೂಶನ್ ಬಿಟ್ಮ್ಯಾಪ್ಗಳಾಗಿ ಪರಿವರ್ತಿಸಿ, ಉಳಿದ PDF ಅನ್ನು ವೆಕ್ಟರ್ ಆಧಾರಿತವಾಗಿ ಬಿಡುವುದರ ಮೂಲಕ, ಬ್ರೌಸರ್-ಮಾತ್ರದ ಎಡಿಟರ್ ಡಾಕ್ಯುಮೆಂಟ್ ಅನ್ನು ವೇಗವಾಗಿ, ಹುಡುಕಲು ಸಾಧ್ಯವಾಗುವಂತೆ ಮತ್ತು ಖಾಸಗಿ ಆಗಿರಿಸುವ ಜೊತೆಗೆ ಸೂಕ್ಷ್ಮ ಪಠ್ಯವನ್ನು ಶಾಶ್ವತವಾಗಿ ಅಳಿಸಬಹುದು. ಈ ವಿಧಾನವು ಭದ್ರತೆ ಮತ್ತು ಬಳಕೆಯ ಸುಲಭತೆಯನ್ನು ಸಮತೋಲನಗೊಳಿಸುತ್ತದೆ, ಆದರೆ ಬಳಕೆದಾರರು ಅನೇಕ ಪುಟಗಳನ್ನು ರೆಡ್ಯಾಕ್ಟ್ ಮಾಡುವಾಗ ಫೈಲ್ ಗಾತ್ರ ಮತ್ತು ಹುಡುಕಾಟದ ಸಾಮರ್ಥ್ಯದ ಮೇಲೆ ಆಗುವ ಒಟ್ಟು ಪರಿಣಾಮವನ್ನು ಗಮನಿಸಬೇಕು.
