Redaction
Redaction
यह पृष्ठ PDF पृष्ठ से सामग्री को स्थायी रूप से हटाने को कवर करता है। Aspose.PDF FOSS for TypeScript दो रेडैक्शन कार्यप्रवाह प्रदान करता है: एक दो-चरणीय मार्क-फिर-लागू प्रवाह जिसे आप कमिट करने से पहले समीक्षा करते हैं, और एक-कालिक त्वरित प्रवाह। दोनों Page पर एकल पृष्ठ के लिए और Document पर पूरे दस्तावेज़ के लिए उपलब्ध हैं।
मार्किंग और रेडैक्शन लागू करना
Page.AddRedact() आयताकार क्षेत्र को /Redact एनोटेशन से चिन्हित करता है — नीचे की सामग्री अप्रभावित रहती है और अभी भी कॉपी-सेलेक्टेबल है। वास्तविक रूप से कुछ भी तब तक हटाया नहीं जाता जब तक Page.ApplyRedactions() नहीं चलता: यह पृष्ठ पर प्रत्येक /Redact मार्क के लिए कंटेंट स्ट्रीम को विनाशकारी रूप से पुनर्लिखता है, प्रत्येक मार्क के ओवरले को (उसका /IC भराव और /OverlayText) पेंट करता है, मार्क्स को हटाता है, और लागू किए गए रेडैक्शन की संख्या वापस करता है। ApplyRedactions() को कॉल करने के बाद जोड़े गए मार्क अप्रयुक्त रहेंगे।
page.AddRedact({
rect: [220, 550, 460, 566],
fill: [0, 0, 0],
overlayText: '[REDACTED]',
align: 'center',
fontSize: 9,
textColor: [1, 1, 1],
});
const applied = page.ApplyRedactions();
console.log('Redactions applied:', applied);तुरंत रेडैक्शन करना
Page.Redact() और Page.RedactText() मार्किंग और लागू करने को एक ही कॉल में मिलाते हैं: वे वास्तव में कवर किया गया टेक्स्ट और इमेजेज़ हटाते हैं, हटाने से बची संसाधनों को साफ़ करते हैं, और प्रत्येक क्षेत्र पर एक अपारदर्शी मार्कर बॉक्स पेंट करते हैं — बिना किसी अलग ApplyRedactions() चरण के और पहले समीक्षा करने के लिए कुछ नहीं बचता। Page.Redact() Rect क्षेत्रों की स्पष्ट सूची लेता है; Page.RedactText() खोज स्ट्रिंग या RegExp के हर प्रकट होने को खोजता और रेडैक्ट करता है, उसी तरह जैसे Page.SearchAnnotationText() खोज करता है। दोनों एक RedactOptions ऑब्जेक्ट स्वीकार करते हैं जो मार्कर color को नियंत्रित करता है, चाहे scrubMetadata हो, और चाहे keepAnnotations वह एक रेडैक्टेड क्षेत्र को ओवरलैप करे।
क्योंकि वे सामग्री को तुरंत हटाते हैं और कोई समीक्षा चरण नहीं होता, AddRedact() + ApplyRedactions() को तब प्राथमिकता दें जब कोई मार्क कमिट होने से पहले निरीक्षण योग्य होना चाहिए, और Redact() / RedactText() को तब जब क्षेत्रों या खोज शब्दों को पहले से ही सुरक्षित माना जाता है हटाने के लिए।
पूरे दस्तावेज़ को रिडैक्ट करना
एक ही दो कार्यप्रवाह Document पर मौजूद हैं, जो एक साथ सभी पृष्ठों पर लागू होते हैं: Document.MarkRedactText() सभी पृष्ठों में खोज शब्द की प्रत्येक घटना को चिह्नित करता है, Document.ApplyRedactions() दस्तावेज़ में सभी चिह्नों को लागू करता है, और Document.Redact() / Document.RedactText() एकल पृष्ठ के क्षेत्रों या दस्तावेज़-व्यापी खोज शब्द को तुरंत रिडैक्ट करता है, उनके Page समकक्षों को प्रतिबिंबित करते हुए।
टिप्स और सर्वोत्तम प्रथाएँ
AddRedact()+ApplyRedactions()का उपयोग तब करें जब रिडैक्शन को प्रभावी होने से पहले समीक्षा योग्य होना चाहिए;Redact()/RedactText()का उपयोग तब करें जब क्षेत्रों की तुरंत हटाने की पुष्टि पहले ही सुरक्षित हो गई हो।- किसी पृष्ठ के लिए
AddRedact()का प्रत्येक चिह्नApplyRedactions()को कॉल करने से पहले जोड़ें — बाद में जोड़े गए चिह्न उस कॉल में शामिल नहीं होते और लागू नहीं होते रहें। - जब रिडैक्ट किया गया सामग्री दस्तावेज़ मेटाडेटा (
/Infoया XMP) में भी मौजूद हो सकती है, तबscrubMetadata: trueकोRedactOptions/ApplyRedactionsOptionsमें पास करें। RedactText()औरMarkRedactText()का खोज समान मिलान नियमों का उपयोग करता है जैसे किSearchAnnotationText()/Search, इसलिए कोई खोज स्ट्रिंग जो वहाँ मेल नहीं खाती वह रिडैक्ट करने में भी विफल रहेगी।
सामान्य समस्याएँ
| समस्या | कारण | समाधान |
|---|---|---|
| रेडैक्शन मार्क का कोई प्रभाव नहीं है | Page.ApplyRedactions() को कभी नहीं बुलाया गया | पहले प्रत्येक मार्क के लिए Page.AddRedact() को कॉल करें, फिर Page.ApplyRedactions() को एक बार कॉल करें |
| मार्क के बाद भी सामग्री पुनः प्राप्त की जा सकती है | मार्क AddRedact() (केवल-मार्क) का उपयोग किया गया, बिना किसी बाद के ApplyRedactions() कॉल के | ApplyRedactions() को कॉल करें, या एक-बार हटाने के लिए Redact() / RedactText() का उपयोग करें |
| संपादित पाठ निकाले गए दस्तावेज़ मेटाडेटा में फिर से दिखाई देता है | scrubMetadata सेट नहीं किया गया था | विकल्प ऑब्जेक्ट में { scrubMetadata: true } पास करें |
ApplyRedactions() लौटाता है 0 | जब इसे कॉल किया गया, पृष्ठ पर कोई /Redact मार्क नहीं मिला | पुष्टि करें कि AddRedact() (या MarkRedactText()) पहले चला और उसी पृष्ठ को लक्षित किया |
FAQ
AddRedact और Redact के बीच क्या अंतर है?
AddRedact() केवल एक क्षेत्र को चिह्नित करता है — सामग्री अभी भी मौजूद है और कॉपी-सेलेक्टेबल है जब तक ApplyRedactions() चल नहीं जाता। Redact() उसी कॉल में सामग्री को हटा देता है, बिना अलग लागू चरण के।
क्या मैं निर्देशांक निर्दिष्ट करने के बजाय टेक्स्ट खोजकर redact कर सकता हूँ?
हाँ। RedactText() खोज स्ट्रिंग या RegExp की प्रत्येक घटना को खोजता है और तुरंत redact करता है; MarkRedactText() वही करता है लेकिन केवल मेलों को चिह्नित करता है, उन्हें बाद के ApplyRedactions() कॉल के लिए छोड़ देता है।
क्या redaction पूरे दस्तावेज़ में काम करता है, या केवल एक पृष्ठ पर एक समय में?
दोनों। Page.Redact() / Page.ApplyRedactions() और उनके सहायक एक पृष्ठ पर कार्य करते हैं; Document.Redact() / Document.ApplyRedactions() और उनके सहायक हर पृष्ठ पर कार्य करते हैं।
क्या redacted क्षेत्र के पास की एनोटेशन भी हटाई जाती हैं?
केवल तभी जब आप उन्हें वैसे ही रहने दें। विकल्प ऑब्जेक्ट में keepAnnotations: true पास करें ताकि उन एनोटेशन को संरक्षित किया जा सके जो एक रेडैक्टेड क्षेत्र के साथ ओवरलैप होते हैं, बजाय उन्हें हटाने के।
API Reference सारांश
| क्लास/मेथड | विवरण |
|---|---|
Page.AddRedact() | अभी सामग्री हटाए बिना, /Redact एनोटेशन के साथ एक आयताकार क्षेत्र को चिह्नित करें |
Page.ApplyRedactions() | पृष्ठ पर सभी चिह्नित क्षेत्रों को विनाशकारी रूप से हटाएँ और लागू की गई गिनती लौटाएँ |
Page.Redact() | दिए गए क्षेत्रों में सामग्री को तुरंत हटाएँ, बिना अलग लागू चरण के |
Page.RedactText() | खोज स्ट्रिंग या RegExp की प्रत्येक उपस्थिति को खोजें और तुरंत रीडैक्ट करें |
Page.MarkRedactText() | खोज स्ट्रिंग या RegExp की हर घटना को (लागू किए बिना) खोजें और चिह्नित करें |
Document.ApplyRedactions() | पूरे दस्तावेज़ में प्रत्येक /Redact मार्क लागू करें |
Document.Redact() / Document.RedactText() | तुरंत एक पृष्ठ पर क्षेत्रों को हटाएँ, या प्रत्येक पृष्ठ पर खोज शब्द को हटाएँ |
Document.MarkRedactText() | प्रत्येक पृष्ठ पर खोज शब्द की प्रत्येक घटना को चिह्नित करें |