Cómo redactar contenido PDF en TypeScript

Cómo redactar contenido PDF en TypeScript

Esta guía muestra cómo redactar contenido PDF con Aspose.PDF FOSS para TypeScript. Page.AddRedact() marca una región; Page.ApplyRedactions() reescribe de forma destructiva el flujo de contenido para que los glifos bajo cada región marcada desaparezcan. Las marcas que no se apliquen permanecen como anotaciones ordinarias y seleccionables para copiar. Requiere Node.js 22 o posterior.

Guía paso a paso

Paso 1: Instalar el paquete

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 la instalación importando la clase Document en un nuevo archivo TypeScript — esta línea debería resolverse sin error una vez que el paquete esté instalado:

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

Paso 2: Importar clases requeridas

Importa Document para abrir el archivo; AddRedact() y ApplyRedactions() se llaman directamente sobre las instancias de Page que devuelve:

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

Paso 3: Marcar una región para la redacción

Page.AddRedact(opts) dibuja un RedactAnnotation sobre rect. fill establece el color pintado sobre la región una vez aplicado, y overlayText (con align, fontSize, textColor) imprime una etiqueta de reemplazo 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],
});

Paso 4: Aplicar redacciones

Page.ApplyRedactions() reescribe destructivamente el flujo de contenido — los glifos dentro de cada RedactAnnotation marcado en la página desaparecen para siempre, y las marcas aplicadas se eliminan. Las marcas añadidas después de esta llamada permanecen sin aplicar: el valor bajo ellas sigue siendo legible y todavía se puede copiar y seleccionar:

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

Problemas comunes y soluciones

Una marca de redacción muestra el cuadro negro pero el texto subyacente aún puede copiarse. Page.ApplyRedactions() nunca se llamó (o se llamó antes de que se añadiera la marca). Marcado con AddRedact() por sí solo solo dibuja una anotación sobre la región — el contenido subyacente se destruye solo una vez ApplyRedactions() se ejecuta.

ApplyRedactions() el contenido eliminado de la marca rect no cubrió. rect es la región exacta reescrita — texto o imágenes que solo se superponen parcialmente pueden seguir siendo destruidos parcialmente en el límite. Tamaña las marcas generosamente alrededor del contenido objetivo.

Los resultados de búsqueda no pueden pasarse directamente a Page.AddRedact(). Una coincidencia de Page.SearchAnnotationText() lleva metadatos de anotación, no geometría de página — no tiene la misma forma que el rect an AddRedact() mark espera. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) son los puntos de entrada de redactado por búsqueda de texto, y ambos también están disponibles en el Document nivel para procesar todas las páginas en una sola llamada.

Un redactado sobrevive al cifrado inesperadamente. El redactado y el cifrado son operaciones independientes — aplique los redactados antes de guardar con encrypt opciones si el objetivo es tanto eliminar el contenido como restringir el acceso a lo que queda; aplicar en el otro orden no revierte una guardada ya cifrada.

Preguntas Frecuentes

¿Cuál es la diferencia entre marcar y aplicar una redacción?

AddRedact() solo crea una anotación que describe dónde se planea una redacción — el contenido cubierto permanece intacto y todavía se puede seleccionar/copiar hasta que ApplyRedactions() se ejecute y reescriba la página de forma destructiva.

¿Puedo redactar buscando texto en lugar de especificar un rectángulo?

Sí — Page.MarkRedactText(find, opts) marca cada coincidencia de find para su aplicación posterior, y Page.RedactText(find, opts) marca y aplica en una sola llamada. Ambos también existen en Document para barrer todo el documento.

¿Afecta ApplyRedactions() a anotaciones diferentes de las marcas de redacción?

No — reescribe el flujo de contenido bajo sus propias marcas RedactAnnotation; los demás tipos de anotaciones en la página no son modificados por esta llamada.

¿Es reversible una redacción?

No — ApplyRedactions() es destructivo. Conserva el archivo original si el contenido sin redactar necesita ser recuperable más adelante.

Ver también

 Español