Redacción Permanente de PDFs bajo LOPDGDD: Cumplimiento AEPD con IronPDF y C
IronPDF permite a los desarrolladores de C# eliminar permanentemente texto y regiones confidenciales de documentos PDF. En España, la redacción correcta de datos personales es un requisito de cumplimiento bajo la LOPDGDD (Ley Orgánica de Protección de Datos y Garantía de Derechos Digitales): la AEPD (Agencia Española de Protección de Datos) ha sancionado organizaciones donde la "redacción" era un simple recuadro negro visual superpuesto sobre texto accesible, en lugar de una eliminación permanente de la estructura del documento.
La redacción en IronPDF no superpone texto: elimina permanentemente la información confidencial de la estructura interna del PDF, garantizando que no pueda recuperarse mediante extracción de texto, herramientas forenses ni acceso directo al objeto PDF.
Inicio rápido: Redactar datos personales en PDFs bajo LOPDGDD
Elimine datos personales de documentos PDF de forma permanente con los métodos de redacción de IronPDF. Esta guía muestra cómo cargar un PDF, aplicar la redacción y guardar el documento actualizado.
-
Instala IronPDF con el Administrador de Paquetes NuGet
PM > Install-Package IronPdf -
Copie y ejecute este fragmento de código.
IronPdf.PdfDocument doc = IronPdf.PdfDocument.FromFile("document.pdf"); doc.RedactTextOnAllPages("sensitive info"); doc.SaveAs("redacted_document.pdf"); -
Despliegue para probar en su entorno real
Comienza a usar IronPDF en tu proyecto hoy mismo con una prueba gratuita
Flujo de trabajo mínimo (5 pasos)
- Descargar la biblioteca C# para redactar texto y regiones en PDFs
- Preparar el documento PDF con datos personales para su redacción
- Utilice el método
RedactTextOnAllPagespara redactar texto en todo el documento - Utilice el método
RedactRegionsOnAllPagespara redactar regiones en todas las páginas - Guardar el documento PDF redactado como nuevo fichero
Por qué la redacción superficial viola la LOPDGDD
La AEPD ha publicado resoluciones de sanción contra organizaciones que entregaron PDFs donde los datos personales (DNI, números de cuenta, domicilios) estaban visualmente ocultos con recuadros negros pero recuperables al copiar el texto del documento. Este tipo de "redacción" —una superposición gráfica sin eliminación del contenido subyacente— no cumple con el principio de minimización de datos del RGPD europeo ni con la LOPDGDD.
IronPDF utiliza una redacción real: los métodos RedactTextOnAllPages y RedactRegionsOnAllPages eliminan el contenido de la estructura interna del PDF, no solo lo tapan visualmente. El texto redactado no puede recuperarse mediante ningún método técnico estándar.
¿Cómo redactar texto de PDFs en C#?
La redacción de texto es directa con IronPDF. Use el método RedactTextOnAllPages para eliminar una frase de todo el documento. Usamos un documento PDF de ejemplo.
:path=/static-assets/pdf/content-code-examples/how-to/redact-text-redact-text.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
// Redact 'Alaric' phrase from all pages
pdf.RedactTextOnAllPages("Alaric");
pdf.SaveAs("redacted.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
' Redact 'Alaric' phrase from all pages
pdf.RedactTextOnAllPages("Alaric")
pdf.SaveAs("redacted.pdf")
¿Qué aspecto tiene el PDF redactado?
PDF resultado de redactar la frase Alaric de todas las páginas.
Use los métodos RedactTextOnPage y RedactTextOnPages para redactar texto de una o múltiples páginas, respectivamente.
Parámetros de control de la redacción de texto
ReplaceText: cadena de texto a redactar.CaseSensitive: booleano que indica si la búsqueda distingue mayúsculas. Valor predeterminado: falso.OnlyMatchWholeWords: booleano que especifica si solo deben coincidir palabras completas. Valor predeterminado: verdadero.DrawRectangles: booleano que determina si se dibujan rectángulos negros en las áreas redactadas. Valor predeterminado: verdadero.ReplacementText: texto de sustitución. Valor predeterminado:"*".
Ejemplo completo con parámetros personalizados:
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("confidential_report.pdf");
// Redact with custom parameters
pdf.RedactTextOnAllPages("SSN: 123-45-6789",
caseSensitive: true,
onlyMatchWholeWords: false,
drawRectangles: true,
replacementText: "[REDACTED]");
// Redact multiple sensitive items
string[] sensitiveTerms = { "salary", "password", "credit card" };
foreach (string term in sensitiveTerms)
{
pdf.RedactTextOnAllPages(term, caseSensitive: false);
}
pdf.SaveAs("fully_redacted_report.pdf");
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("confidential_report.pdf");
// Redact with custom parameters
pdf.RedactTextOnAllPages("SSN: 123-45-6789",
caseSensitive: true,
onlyMatchWholeWords: false,
drawRectangles: true,
replacementText: "[REDACTED]");
// Redact multiple sensitive items
string[] sensitiveTerms = { "salary", "password", "credit card" };
foreach (string term in sensitiveTerms)
{
pdf.RedactTextOnAllPages(term, caseSensitive: false);
}
pdf.SaveAs("fully_redacted_report.pdf");
Imports IronPdf
Dim pdf As PdfDocument = PdfDocument.FromFile("confidential_report.pdf")
' Redact with custom parameters
pdf.RedactTextOnAllPages("SSN: 123-45-6789",
caseSensitive:=True,
onlyMatchWholeWords:=False,
drawRectangles:=True,
replacementText:="[REDACTED]")
' Redact multiple sensitive items
Dim sensitiveTerms As String() = {"salary", "password", "credit card"}
For Each term As String In sensitiveTerms
pdf.RedactTextOnAllPages(term, caseSensitive:=False)
Next
pdf.SaveAs("fully_redacted_report.pdf")
Redacción de Facturae XML embebido: Caso de uso España
Cuando se genera un PDF/A-3b con XML de Facturae embebido para envío a FACe (portal B2G de la Administración española), puede ser necesario redactar datos personales del receptor antes de compartir el documento con terceros. En este caso, la redacción por región es especialmente útil para eliminar el bloque de datos del receptor sin afectar el XML embebido.
¿Cómo eliminar regiones específicas de un PDF?
Redactar regiones específicas en documentos es altamente efectivo. Invoque el método RedactRegionsOnAllPages con el objeto RectangleF para redactar la región del documento objetivo.
:path=/static-assets/pdf/content-code-examples/how-to/redact-text-redact-region.cs
using IronPdf;
using IronSoftware.Drawing;
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");
RectangleF rectangle = new RectangleF(5, 700, 50, 50);
// Redact region on coordinates(5,700) with width and height 50 pixels
pdf.RedactRegionsOnAllPages(rectangle);
pdf.SaveAs("redactedRegion.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")
Private rectangle As New RectangleF(5, 700, 50, 50)
' Redact region on coordinates(5,700) with width and height 50 pixels
pdf.RedactRegionsOnAllPages(rectangle)
pdf.SaveAs("redactedRegion.pdf")
Redacción regional avanzada
Para documentos complejos con múltiples regiones:
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
PdfDocument pdf = PdfDocument.FromFile("form_with_signatures.pdf");
// Redact multiple regions
List<RectangleF> regionsToRedact = new List<RectangleF>
{
new RectangleF(100, 200, 200, 50), // Signature area
new RectangleF(100, 300, 200, 100), // Address block
new RectangleF(350, 150, 150, 150) // Photo ID area
};
foreach (var region in regionsToRedact)
{
pdf.RedactRegionsOnAllPages(region);
}
// Redact regions on specific pages only
pdf.RedactRegionOnPage(0, new RectangleF(50, 50, 100, 30)); // Page 1 header
pdf.RedactRegionOnPages(new[] { 2, 3, 4 }, new RectangleF(400, 700, 150, 50)); // Footer on pages 3-5
pdf.SaveAs("form_redacted.pdf");
using IronPdf;
using IronSoftware.Drawing;
using System.Collections.Generic;
PdfDocument pdf = PdfDocument.FromFile("form_with_signatures.pdf");
// Redact multiple regions
List<RectangleF> regionsToRedact = new List<RectangleF>
{
new RectangleF(100, 200, 200, 50), // Signature area
new RectangleF(100, 300, 200, 100), // Address block
new RectangleF(350, 150, 150, 150) // Photo ID area
};
foreach (var region in regionsToRedact)
{
pdf.RedactRegionsOnAllPages(region);
}
// Redact regions on specific pages only
pdf.RedactRegionOnPage(0, new RectangleF(50, 50, 100, 30)); // Page 1 header
pdf.RedactRegionOnPages(new[] { 2, 3, 4 }, new RectangleF(400, 700, 150, 50)); // Footer on pages 3-5
pdf.SaveAs("form_redacted.pdf");
Imports IronPdf
Imports IronSoftware.Drawing
Imports System.Collections.Generic
Dim pdf As PdfDocument = PdfDocument.FromFile("form_with_signatures.pdf")
' Redact multiple regions
Dim regionsToRedact As New List(Of RectangleF) From {
New RectangleF(100, 200, 200, 50), ' Signature area
New RectangleF(100, 300, 200, 100), ' Address block
New RectangleF(350, 150, 150, 150) ' Photo ID area
}
For Each region In regionsToRedact
pdf.RedactRegionsOnAllPages(region)
Next
' Redact regions on specific pages only
pdf.RedactRegionOnPage(0, New RectangleF(50, 50, 100, 30)) ' Page 1 header
pdf.RedactRegionOnPages(New Integer() {2, 3, 4}, New RectangleF(400, 700, 150, 50)) ' Footer on pages 3-5
pdf.SaveAs("form_redacted.pdf")
¿Qué aspecto tiene la redacción regional?
PDF resultante de redactar una región en las coordenadas (5,700) con un ancho y una altura de 50 píxeles.
¿Cuándo usar redacción regional frente a redacción de texto?
Redacción regional es ideal cuando:
- Es necesario eliminar imágenes, logotipos o elementos gráficos
- El contenido sensible incluye notas manuscritas, firmas o el bloque de datos del receptor en un Facturae
- Se trata de formularios con diseño fijo
- Se desea redactar secciones enteras independientemente del contenido textual
Redacción de texto es mejor cuando:
- Se buscan palabras clave o frases específicas (DNI, NIF, IBAN)
- El contenido a redactar aparece en varios lugares del documento
- Es necesario distinguir entre mayúsculas y minúsculas o palabras completas
- La estructura del documento varía de un fichero a otro
Prácticas recomendadas para el cumplimiento LOPDGDD
Al implementar la redacción en sus aplicaciones bajo el marco de la LOPDGDD:
- Guardar siempre en un nuevo fichero: nunca sobrescriba el documento original para mantener una pista de auditoría
- Verificar la completitud de la redacción: compruebe la salida para asegurarse de que todos los datos personales se han eliminado permanentemente
- Redactar también los metadatos: recuerde editar y eliminar metadatos que puedan contener información personal como el nombre del autor o el título del documento
- Probar los cálculos de coordenadas: al usar redacción por región, pruebe sus cálculos en diferentes tamaños y orientaciones de página
- Documentar el proceso: mantenga registro de qué datos se redactaron, cuándo y por qué, como parte de su Registro de Actividades de Tratamiento exigido por la LOPDGDD
Para otras necesidades de procesamiento de documentos, explore cómo extraer texto e imágenes de los PDF antes de aplicar la redacción.
¿Listo para ver qué más puede hacer? Consulte nuestra página de tutoriales: Editar PDFs
Preguntas Frecuentes
¿Por qué la redacción superficial con recuadros negros viola la LOPDGDD?
La AEPD ha sancionado organizaciones que entregaron PDFs donde los datos personales (DNI, cuentas bancarias, domicilios) estaban visualmente ocultos con recuadros negros pero eran recuperables al copiar el texto. Este tipo de redacción no cumple el principio de minimización de datos del RGPD ni la LOPDGDD. IronPDF usa redacción real: los métodos RedactTextOnAllPages y RedactRegionsOnAllPages eliminan el contenido de la estructura interna del PDF, no solo lo superponen.
¿Cómo redacto datos personales de un PDF bajo LOPDGDD en C#?
Cargue el documento con PdfDocument.FromFile, use RedactTextOnAllPages para texto específico (DNI, NIF, IBAN, domicilio) o RedactRegionsOnAllPages para bloques completos, y guarde con SaveAs en un fichero nuevo. Documente qué datos se redactaron, cuándo y por qué en su Registro de Actividades de Tratamiento exigido por la LOPDGDD.
¿Puedo redactar el bloque de datos del receptor en un PDF con Facturae XML embebido?
Sí. La redacción por región (RedactRegionsOnAllPages con un RectangleF) permite eliminar el bloque visual del receptor sin modificar el XML Facturae embebido. Esto es útil cuando el PDF con Facturae enviado a FACe debe compartirse con terceros con datos del receptor redactados en la representación visual.
¿Cuándo usar redacción de texto frente a redacción de región?
Use RedactTextOnAllPages cuando busque palabras clave específicas (DNI, NIF, IBAN) o frases que aparecen en varios lugares. Use RedactRegionsOnAllPages cuando necesite eliminar imágenes, firmas, el bloque del receptor en una factura Facturae o secciones completas independientemente del contenido textual.
¿Qué prácticas exige la LOPDGDD para el archivo de documentos redactados?
La LOPDGDD requiere guardar siempre en un nuevo fichero (preservar el original como auditoría), verificar que todos los datos personales se eliminaron permanentemente, redactar también metadatos del PDF que puedan contener información personal, y documentar el proceso en el Registro de Actividades de Tratamiento de su organización.

