Como Redigir Conteúdo PDF em TypeScript

Como Redigir Conteúdo PDF em TypeScript

Este guia mostra como censurar conteúdo de PDF com Aspose.PDF FOSS para TypeScript. Page.AddRedact() marca uma região; Page.ApplyRedactions() reescreve destrutivamente o fluxo de conteúdo de modo que os glifos sob cada região marcada desapareçam. Marcas deixadas sem aplicação permanecem como anotações ordinárias, selecionáveis para cópia. Requer Node.js 22 ou posterior.

Guia Passo a Passo

Passo 1: Instale o Pacote

git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run build

Verifique a instalação importando a classe Document em um novo arquivo TypeScript — esta linha deve ser resolvida sem erro assim que o pacote estiver instalado:

import { Document } from '@asposefoss/pdf';

Passo 2: Importe as Classes Necessárias

Importe Document para abrir o arquivo; AddRedact() e ApplyRedactions() são chamados diretamente nas instâncias Page que ele retorna:

import { Document } from '@asposefoss/pdf';

Etapa 3: Marcar uma Região para Redação

Page.AddRedact(opts) desenha um RedactAnnotation sobre rect. fill define a cor pintada sobre a região quando aplicada, e overlayText (com align, fontSize, textColor) imprime um rótulo de substituição como [REDACTED]:

const doc = Document.OpenFile('memo.pdf');
const page = doc.Pages[0];

page.AddRedact({
  rect: [216, 548, 460, 566],
  fill: [0, 0, 0],
  overlayText: '[REDACTED]',
  align: 'center',
  fontSize: 9,
  textColor: [1, 1, 1],
});

Etapa 4: Aplicar Redações

Page.ApplyRedactions() reescreve destrutivamente o fluxo de conteúdo — os glifos dentro de cada RedactAnnotation marcado na página desaparecem para sempre, e as marcas aplicadas são removidas. Marcas adicionadas após esta chamada permanecem não aplicadas: o valor sob elas ainda é lido e ainda pode ser copiado e selecionado:

page.ApplyRedactions();
doc.WriteTo('memo-redacted.pdf');

Problemas Comuns e Soluções

Uma marca de redação mostra a caixa preta, mas o texto subjacente ainda pode ser copiado. Page.ApplyRedactions() nunca foi chamada (ou foi chamada antes da marca ser adicionada). Marcar com AddRedact() sozinho apenas desenha uma anotação sobre a região — o conteúdo abaixo é destruído apenas uma vez ApplyRedactions() executa.

ApplyRedactions() removeu conteúdo que a marca’s rect não cobriu. rect é a região exata reescrita — texto ou imagens que apenas se sobrepõem parcialmente ainda podem ser parcialmente destruídos na borda. Marque o tamanho generosamente ao redor do conteúdo-alvo.

Os resultados da pesquisa não podem ser passados diretamente para Page.AddRedact(). Um acerto de Page.SearchAnnotationText() carrega metadados de anotação, não a geometria da página — não tem a mesma forma que o rect an AddRedact() marca espera. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) são os pontos de entrada de redação por pesquisa de texto, e ambos também estão disponíveis no Document nível para varrer cada página em uma única chamada.

Uma redação sobrevive à criptografia inesperadamente. Redação e criptografia são operações independentes — aplique as redações antes de salvar com encrypt opções se o objetivo for tanto remover o conteúdo quanto restringir o acesso ao que resta; aplicar na ordem inversa não desfaz um salvamento já criptografado.

Perguntas Frequentes

Qual é a diferença entre marcar e aplicar uma redação?

AddRedact() apenas cria uma anotação descrevendo onde uma redação está planejada — o conteúdo coberto permanece intocado e ainda pode ser selecionado/copíavel até que ApplyRedactions() seja executado e reescreva a página de forma destrutiva.

Posso fazer redação buscando texto em vez de especificar um retângulo?

Sim — Page.MarkRedactText(find, opts) marca cada correspondência de find para aplicação posterior, e Page.RedactText(find, opts) marca e aplica em uma única chamada. Ambos também existem em Document para varrer todo o documento.

O ApplyRedactions() afeta anotações que não sejam as marcas de redação?

Não — ele reescreve o fluxo de conteúdo sob suas próprias marcas de RedactAnnotation; outros tipos de anotação na página não são alterados por esta chamada.

A redação é reversível?

Não — ApplyRedactions() é destrutivo. Mantenha o arquivo original se o conteúdo não redigido precisar ser recuperado posteriormente.

Ver também

 Português