Redaction
Redaction
Această pagină acoperă eliminarea permanentă a conținutului dintr-o pagină PDF. Aspose.PDF FOSS pentru TypeScript oferă două fluxuri de redactare: un flux în două faze, marcă-după-aplicare, pe care îl revizuiți înainte de a comite, și un flux imediat printr-un singur apel. Ambele sunt disponibile pe Page pentru o singură pagină și pe Document pentru întregul document.
Marcarea și Aplicarea Redactărilor
Page.AddRedact() marchează o regiune rectangulară cu o adnotare /Redact — conținutul de dedesubt rămâne neatins și încă poate fi selectat și copiat. Nimic nu este eliminat efectiv până când Page.ApplyRedactions() rulează: rescrie în mod distructiv fluxul de conținut pentru fiecare marcaj /Redact de pe pagină, pictează suprapunerea fiecărui marcaj (umplerea sa /IC și /OverlayText), elimină marcajele și returnează numărul de redactări aplicate. Marcajele adăugate după ce ApplyRedactions() este apelat rămân neaplicate.
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);Redactare Imediată
Page.Redact() și Page.RedactText() combină marcarea și aplicarea într-un singur apel: ele elimină cu adevărat textul și imaginile acoperite, taie resursele rămase orfane de eliminare și pictează o cutie opacă de marcaj peste fiecare regiune — fără un pas separat de ApplyRedactions() și fără nimic de revizuit mai întâi. Page.Redact() primește o listă explicită de regiuni Rect; Page.RedactText() găsește și redactează fiecare apariție a unui șir de căutare sau RegExp, în același mod în care Page.SearchAnnotationText() caută. Ambele acceptă un obiect RedactOptions care controlează color al marcajului, dacă să scrubMetadata, și dacă să keepAnnotations care se suprapun unei regiuni redactate.
Deoarece elimină conținutul imediat, fără pas de revizuire, preferați AddRedact() + ApplyRedactions() când un marcaj trebuie să fie inspectabil înainte de a fi comitat și Redact() / RedactText() când regiunile sau termenii de căutare sunt deja cunoscuți ca fiind siguri pentru eliminare.
Redactarea unui document întreg
Aceleași două fluxuri de lucru există pe Document, aplicate simultan la fiecare pagină: Document.MarkRedactText() marchează fiecare apariție a unui termen de căutare pe toate paginile, Document.ApplyRedactions() aplică fiecare marcaj în document, iar Document.Redact() / Document.RedactText() redactează imediat regiunile unei singure pagini sau termenul de căutare la nivel de document, reflectând echivalentele lor Page.
Sfaturi și bune practici
- Folosește
AddRedact()+ApplyRedactions()când o redactare trebuie să poată fi revizuită înainte de a intra în vigoare; foloseșteRedact()/RedactText()când regiunile sunt deja confirmate ca fiind sigure pentru a fi eliminate imediat. - Adaugă fiecare marcaj
AddRedact()pentru o pagină înainte de a apelaApplyRedactions()— marcajele adăugate ulterior nu sunt incluse în acel apel și rămân neaplicate. - Transmite
scrubMetadata: trueînRedactOptions/ApplyRedactionsOptionscând conținutul redactat ar putea fi prezent și în metadatele documentului (/Infosau XMP). RedactText()șiMarkRedactText()caută cu aceleași reguli de potrivire caSearchAnnotationText()/Search, astfel încât un șir de căutare care nu se potrivește acolo va eșua și la redactare.
Probleme comune
| Problemă | Cauză | Remediere |
|---|---|---|
| Marca de redactare nu are efect | Page.ApplyRedactions() nu a fost niciodată apelat | Apelă Page.AddRedact() pentru fiecare marcă mai întâi, apoi Page.ApplyRedactions() o singură dată |
| Conținutul este încă recuperabil după o marcă | Marca a folosit AddRedact() (numai marcă) fără un apel ulterior al ApplyRedactions() | Apelă ApplyRedactions(), sau folosește Redact() / RedactText() pentru eliminarea cu un singur apel |
| Textul redactat reapare în metadatele documentului extras | scrubMetadata nu a fost setat | Transmite { scrubMetadata: true } în obiectul de opțiuni |
ApplyRedactions() returnează 0 | Nu existau marcaje /Redact pe pagină când a fost apelat | Confirmă că AddRedact() (sau MarkRedactText()) a rulat primul și a vizat aceeași pagină |
FAQ
Care este diferența dintre AddRedact și Redact?
AddRedact() marchează doar o regiune — conținutul este în continuare prezent și poate fi selectat pentru copiere până când rulează ApplyRedactions(). Redact() elimină conținutul în aceeași apelare, fără un pas separat de aplicare.
Pot să redactez căutând text în loc să specific coordonate?
Da. RedactText() găsește și redactează imediat fiecare apariție a unui șir de căutare sau RegExp; MarkRedactText() face același lucru, dar doar marchează potrivirile, lăsându-le pentru un apel ulterior al ApplyRedactions().
Redactarea funcționează pe întregul document sau numai pe o pagină la un moment dat?
Ambele. Page.Redact() / Page.ApplyRedactions() și elementele lor înrudite operează pe o pagină; Document.Redact() / Document.ApplyRedactions() și elementele lor înrudite operează pe toate paginile.
Sunt și adnotările din apropierea unei regiuni redactate eliminate?
Doar dacă îi lași să fie. Transmite keepAnnotations: true în obiectul de opțiuni pentru a păstra adnotările care se suprapun unei regiuni redactate în loc să le elimini împreună cu ea.
API Reference Rezumat
| Clasă/Metodă | Descriere: |
|---|---|
Page.AddRedact() | Marcați o regiune rectangulară cu o adnotare /Redact, fără a elimina încă conținutul |
Page.ApplyRedactions() | Eliminați în mod distructiv fiecare regiune marcată de pe pagină și returnaţi numărul aplicat |
Page.Redact() | Eliminați imediat conținutul din regiunile date, fără un pas separat de aplicare |
Page.RedactText() | Găsiți și redactați imediat fiecare apariție a unui șir de căutare sau RegExp |
Page.MarkRedactText() | Găsește și marchează (fără a aplica) fiecare apariție a unui șir de căutare sau RegExp |
Document.ApplyRedactions() | Aplică fiecare marcaj /Redact în întregul document |
Document.Redact() / Document.RedactText() | Redactează imediat regiunile pe o pagină, sau un termen de căutare pe fiecare pagină |
Document.MarkRedactText() | Marchează fiecare apariție a unui termen de căutare pe fiecare pagină |