Redaction
Redaction
Esta página cubre la eliminación permanente de contenido de una página PDF. Aspose.PDF FOSS para TypeScript ofrece dos flujos de trabajo de redacción: un flujo de dos fases marcar-luego-aplicar que revisas antes de confirmar, y un flujo inmediato de una sola llamada. Ambos están disponibles en Page para una sola página y en Document para todo el documento.
Marcado y aplicación de redacciones
Page.AddRedact() marca una región rectangular con una anotación /Redact — el contenido subyacente permanece intacto y aún se puede copiar-seleccionar. Nada se elimina realmente hasta que se ejecuta Page.ApplyRedactions(): reescribe de forma destructiva el flujo de contenido para cada marca /Redact en la página, pinta la superposición de cada marca (su relleno /IC y /OverlayText), elimina las marcas y devuelve el número de redacciones aplicadas. Las marcas añadidas después de que se llame a ApplyRedactions() permanecen sin aplicar.
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);Redacción inmediata
Page.Redact() y Page.RedactText() combinan el marcado y la aplicación en una única llamada: eliminan realmente el texto e imágenes cubiertas, podan los recursos que la eliminación deja huérfanos, y pintan una caja de marcador opaca sobre cada región — sin paso ApplyRedactions() separado y sin nada que revisar primero. Page.Redact() recibe una lista explícita de regiones Rect; Page.RedactText() encuentra y redacta cada ocurrencia de una cadena de búsqueda o RegExp, de la misma manera que busca Page.SearchAnnotationText(). Ambos aceptan un objeto RedactOptions que controla el marcador color, si debe scrubMetadata, y si debe keepAnnotations que se superponga a una región redactada.
Debido a que eliminan el contenido inmediatamente sin paso de revisión, prefiere AddRedact() + ApplyRedactions() cuando una marca debe ser inspeccionable antes de confirmarse, y Redact() / RedactText() cuando las regiones o términos de búsqueda ya se saben que son seguros para eliminar.
Redactar un documento completo
Los mismos dos flujos de trabajo existen en Document, aplicados a todas las páginas a la vez: Document.MarkRedactText() marca cada aparición de un término de búsqueda en todas las páginas, Document.ApplyRedactions() aplica todas las marcas en el documento, y Document.Redact() / Document.RedactText() redactan inmediatamente las regiones de una sola página o un término de búsqueda en todo el documento, reflejando sus equivalentes Page.
Consejos y mejores prácticas
- Utilice
AddRedact()+ApplyRedactions()cuando una redacción deba ser revisable antes de que tenga efecto; utiliceRedact()/RedactText()cuando las regiones ya estén confirmadas como seguras para eliminarse inmediatamente. - Añada todas las marcas
AddRedact()de una página antes de invocarApplyRedactions(); las marcas añadidas después no se incluyen en esa llamada y permanecen sin aplicar. - Pase
scrubMetadata: trueenRedactOptions/ApplyRedactionsOptionscuando el contenido redactado también pueda estar presente en los metadatos del documento (/Infoo XMP). RedactText()yMarkRedactText()buscan con las mismas reglas de coincidencia queSearchAnnotationText()/Search, por lo que una cadena de búsqueda que no coincida allí también fallará al redactar.
Problemas comunes
| Problema | Causa | Solución |
|---|---|---|
| La marca de redacción no tiene efecto | Page.ApplyRedactions() nunca se llamó | Llame a Page.AddRedact() para cada marca primero, luego Page.ApplyRedactions() una vez |
| El contenido sigue recuperable después de una marca | La marca usó AddRedact() (solo marca) sin una llamada posterior a ApplyRedactions() | Llame a ApplyRedactions(), o use Redact() / RedactText() para la eliminación en una sola llamada |
| El texto redactado reaparece en los metadatos del documento extraído | scrubMetadata no se estableció | Pase { scrubMetadata: true } en el objeto de opciones |
ApplyRedactions() devuelve 0 | No existían marcas /Redact en la página cuando se llamó | Confirme que AddRedact() (o MarkRedactText()) se ejecutó primero y apuntó a la misma página |
FAQ
¿Cuál es la diferencia entre AddRedact y Redact?
AddRedact() solo marca una región — el contenido sigue presente y seleccionable para copiar hasta que se ejecuta ApplyRedactions(). Redact() elimina el contenido en la misma llamada, sin un paso de aplicación separado.
¿Puedo redactar buscando texto en lugar de especificar coordenadas?
Sí. RedactText() encuentra y redacta inmediatamente cada aparición de una cadena de búsqueda o RegExp; MarkRedactText() hace lo mismo pero solo marca las coincidencias, dejándolas para una llamada posterior de ApplyRedactions().
¿La redacción funciona en todo el documento o solo una página a la vez?
Ambos. Page.Redact() / Page.ApplyRedactions() y sus hermanos operan en una página; Document.Redact() / Document.ApplyRedactions() y sus hermanos operan en todas las páginas.
¿Las anotaciones cercanas a una región redactada también se eliminan?
Solo si los dejas ser. Pasa keepAnnotations: true en el objeto de opciones para preservar las anotaciones que se superponen a una región redactada en lugar de eliminarlas junto con ella.
API Reference Resumen
| Clase/Método | Descripción |
|---|---|
Page.AddRedact() | Marcar una región rectangular con una anotación /Redact, sin eliminar el contenido todavía |
Page.ApplyRedactions() | Eliminar de forma destructiva cada región marcada en la página y devolver el recuento aplicado |
Page.Redact() | Eliminar inmediatamente el contenido en las regiones dadas, sin un paso de aplicación separado |
Page.RedactText() | Buscar y redactar inmediatamente cada aparición de una cadena de búsqueda o RegExp |
Page.MarkRedactText() | Buscar y marcar (sin aplicar) cada aparición de una cadena de búsqueda o RegExp |
Document.ApplyRedactions() | Aplicar cada marca /Redact en todo el documento |
Document.Redact() / Document.RedactText() | Redactar inmediatamente regiones en una página, o un término de búsqueda en todas las páginas |
Document.MarkRedactText() | Marcar cada aparición de un término de búsqueda en todas las páginas |