Redaction
Redaction
Esta página cobre a remoção permanente de conteúdo de uma página PDF. Aspose.PDF FOSS para TypeScript oferece dois fluxos de redação: um fluxo de duas fases marcar-então-aplicar que você revisa antes de confirmar, e um fluxo imediato de chamada única. Ambos estão disponíveis em Page para uma única página e em Document para o documento inteiro.
Marcação e Aplicação de Redações
Page.AddRedact() marca uma região retangular com uma anotação /Redact — o conteúdo abaixo permanece intocado e ainda pode ser copiado-selecionado. Nada é realmente removido até que Page.ApplyRedactions() seja executado: ele reescreve destrutivamente o fluxo de conteúdo para cada marca /Redact na página, pinta a sobreposição de cada marca (seu /IC preenchimento e /OverlayText), remove as marcas e devolve o número de redações aplicadas. Marcas adicionadas após a chamada de ApplyRedactions() permanecem não aplicadas.
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);Redação Imediata
Page.Redact() e Page.RedactText() combinam marcação e aplicação em uma única chamada: eles realmente removem texto e imagens cobertos, podam recursos que a remoção deixa órfãos e pintam uma caixa de marcador opaca sobre cada região — sem etapa ApplyRedactions() separada e nada a ser revisado primeiro. Page.Redact() recebe uma lista explícita de regiões Rect; Page.RedactText() encontra e reda todas as ocorrências de uma string de busca ou RegExp, da mesma forma que as buscas Page.SearchAnnotationText(). Ambos aceitam um objeto RedactOptions que controla o marcador color, se deve scrubMetadata, e se deve keepAnnotations que sobrepõem uma região redactada.
Como eles removem o conteúdo imediatamente sem etapa de revisão, prefira AddRedact() + ApplyRedactions() quando uma marca deve ser inspecionável antes de ser confirmada, e Redact() / RedactText() quando as regiões ou termos de busca já são conhecidos como seguros para remoção.
Redigindo um Documento Inteiro
Os mesmos dois fluxos de trabalho existem em Document, aplicados a todas as páginas de uma vez: Document.MarkRedactText() marca cada ocorrência de um termo de pesquisa em todas as páginas, Document.ApplyRedactions() aplica todas as marcas no documento, e Document.Redact() / Document.RedactText() censuram as regiões de uma única página ou um termo de pesquisa em todo o documento imediatamente, espelhando seus equivalentes Page.
Dicas e Melhores Práticas
- Use
AddRedact()+ApplyRedactions()quando uma censura deve ser revisável antes de entrar em vigor; useRedact()/RedactText()quando as regiões já estiverem confirmadas como seguras para remoção imediata. - Adicione todas as marcas
AddRedact()de uma página antes de chamarApplyRedactions()— marcas adicionadas depois não são incluídas nessa chamada e permanecem não aplicadas. - Passe
scrubMetadata: trueemRedactOptions/ApplyRedactionsOptionsquando o conteúdo censurado também pode estar presente nos metadados do documento (/Infoou XMP). RedactText()eMarkRedactText()pesquisam com as mesmas regras de correspondência deSearchAnnotationText()/Search, portanto uma string de pesquisa que não corresponda lá também falhará ao censurar.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
| A marca de redação não tem efeito | Page.ApplyRedactions() nunca foi chamado | Chame Page.AddRedact() para cada marca primeiro, depois Page.ApplyRedactions() uma vez |
| O conteúdo ainda é recuperável após uma marca | A marca usou AddRedact() (somente marca) sem uma chamada subsequente de ApplyRedactions() | Chame ApplyRedactions(), ou use Redact() / RedactText() para remoção em uma chamada |
| O texto censurado reaparece nos metadados do documento extraído | scrubMetadata não foi definido | Passe { scrubMetadata: true } no objeto de opções |
ApplyRedactions() retorna 0 | Nenhuma marca de /Redact existia na página quando foi chamada | Confirme que AddRedact() (ou MarkRedactText()) foi executado primeiro e direcionou a mesma página |
FAQ
Qual é a diferença entre AddRedact e Redact?
AddRedact() apenas marca uma região — o conteúdo ainda está presente e pode ser copiado até que ApplyRedactions() seja executado. Redact() remove o conteúdo na mesma chamada, sem uma etapa de aplicação separada.
Posso fazer a redação pesquisando texto em vez de especificar coordenadas?
Sim. RedactText() encontra e redige imediatamente cada ocorrência de uma string de pesquisa ou RegExp; MarkRedactText() faz o mesmo, mas apenas marca as correspondências, deixando-as para uma chamada posterior de ApplyRedactions().
A redação funciona em todo o documento ou apenas em uma página de cada vez?
Ambos. Page.Redact() / Page.ApplyRedactions() e seus irmãos operam em uma página; Document.Redact() / Document.ApplyRedactions() e seus irmãos operam em todas as páginas.
As anotações próximas a uma região redigida também são removidas?
Só se você os deixar como estão. Passe keepAnnotations: true no objeto de opções para preservar anotações que se sobrepõem a uma região censurada em vez de removê-las juntamente com ela.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
Page.AddRedact() | Marque uma região retangular com uma anotação /Redact, sem remover o conteúdo ainda |
Page.ApplyRedactions() | Remova de forma destrutiva todas as regiões marcadas na página e retorne a quantidade aplicada |
Page.Redact() | Remova imediatamente o conteúdo nas regiões especificadas, sem etapa de aplicação separada |
Page.RedactText() | Encontre e redacte imediatamente todas as ocorrências de uma string de busca ou RegExp |
Page.MarkRedactText() | Encontre e marque (sem aplicar) cada ocorrência de uma cadeia de busca ou RegExp |
Document.ApplyRedactions() | Aplique cada marca /Redact em todo o documento |
Document.Redact() / Document.RedactText() | Redija imediatamente regiões em uma página, ou um termo de busca em todas as páginas |
Document.MarkRedactText() | Marque cada ocorrência de um termo de busca em todas as páginas |