Redactor

Redactor class

Representa una clase principal que controla el proceso de redacción de documentos, lo que permite abrir, redactar y guardar documentos.

public sealed class Redactor : IDisposable, IPreviewable

Constructores

Nombre Descripción
Redactor(Stream) Inicializa una nueva instancia deRedactor clase usando stream.
Redactor(string) Inicializa una nueva instancia deRedactor clase usando la ruta del archivo.
Redactor(Stream, LoadOptions) Inicializa una nueva instancia deRedactor clase para un documento protegido por contraseña usando stream.
Redactor(string, LoadOptions) Inicializa una nueva instancia deRedactor class para un documento protegido por contraseña utilizando su ruta.
Redactor(Stream, LoadOptions, RedactorSettings) Inicializa una nueva instancia deRedactorclass para un documento protegido por contraseña usando stream y settings.
Redactor(string, LoadOptions, RedactorSettings) Inicializa una nueva instancia deRedactor class para un documento protegido por contraseña utilizando su ruta y configuración.

Métodos

Nombre Descripción
Apply(Redaction) Aplica una redacción al documento.
Apply(RedactionPolicy) Aplica una política de redacción al documento.
Apply(Redaction[]) Aplica un conjunto de redacciones al documento.
Dispose() Libera recursos.
GeneratePreview(PreviewOptions) Genera imágenes de vista previa de páginas específicas en un formato de imagen determinado.
GetDocumentInfo() Obtiene la información general sobre el documento: tamaño, número de páginas, etc.
Save() Guarda el documento en un archivo con las siguientes opciones: AddSuffix = true, RasterizeToPDF = true.
Save(SaveOptions) Guarda el documento en un archivo.
Save(Stream, RasterizationOptions) Guarda el documento en un flujo, incluida la ubicación personalizada.

Observaciones

Aprende más

Ejemplos

El siguiente ejemplo demuestra la aplicación de una sola redacción al documento.

El siguiente ejemplo demuestra la aplicación de una lista de redacciones al documento.

El siguiente ejemplo muestra cómo aplicar una política de redacción a todos los archivos dentro de una carpeta de entrada determinada y guardarlos en una de las carpetas de salida, para archivos actualizados correctamente y para archivos fallidos.

El siguiente ejemplo muestra cómo abrir documentos protegidos con contraseña usando LoadOptions.

El siguiente ejemplo muestra cómo guardar un documento usando SaveOptions.

using (Redactor redactor = new Redactor(@"D:\\test.docx"))
{
   RedactorChangeLog result = redactor.Apply(new RegexRedaction(LookupStrings.SSNRegexPattern, new ReplacementOptions("[ssn]")));
   if (result.Status != RedactionStatus.Failed)
   {
      redactor.Save();
   };
}
using (Redactor redactor = new Redactor(@"D:\\test.docx"))
{
   var redactionList = new Redaction[] 
   {
      new ExactPhraseRedaction(LookupStrings.ClientName, new ReplacementOptions("[client]")),
      new ExactPhraseRedaction(LookupStrings.ClientAddress, new ReplacementOptions(System.Drawing.Color.Red)),
      new RegexRedaction(LookupStrings.SSNRegexPattern, new ReplacementOptions("[ssn]")),
      new RegexRedaction(LookupStrings.BankCardRegexPattern, new ReplacementOptions(System.Drawing.Color.Blue)),
      // ... otras redacciones
      new DeleteAnnotationRedaction("(?im:(use|show|describe))"),
      new EraseMetadataRedaction(MetadataFilter.Author),
      new MetadataSearchRedaction(LookupStrings.CompanyName, "--company--") 
   }; 
   RedactorChangeLog result = redactor.Apply(redactionList);
   // falso, si al menos una redacción falló
   if (result.Status != RedactionStatus.Failed)
   {
      redactor.Save();
   };
}
RedactionPolicy policy = RedactionPolicy.Load("RedactionPolicy.xml");
foreach (var fileEntry in Directory.GetFileNames("C:\\Inbound")) 
{
     using (Redactor redactor = new Redactor(Path.Combine("C:\\Inbound\\", fileEntry)))
     {
    	     RedactorChangeLog result = redactor.Apply(policy);
    	     String resultFolder = result.Status != RedactionStatus.Failed ? "C:\\Outbound\\Done\\" : "C:\\Outbound\\Failed\\";
    	     using (Stream fileStream = File.Open(Path.Combine(resultFolder, fileEntry), FileMode.Open, FileAccess.ReadWrite))
   	     {
               redactor.Save(fileStream, new RasterizationOptions() { Enabled = false });
   	     }        
     }
}   
LoadOptions loadOptions = new LoadOptions("mypassword");
using (Redactor redactor = new Redactor(@"C:\sample.pdf", loadOptions))
{
    // Aquí podemos usar la instancia del documento para realizar redacciones
}
    using (Redactor redactor = new Redactor(@"C:\sample.pdf"))
    {
       // La redacción del documento va aquí
       // ...
    
       // Guardar el documento con las opciones predeterminadas (convertir páginas en imágenes, guardar como PDF)
       redactor.Save();
    
       // Guardar el documento en formato original sobrescribiendo el archivo original
       redactor.Save(new SaveOptions() { AddSuffix = false, RasterizeToPDF = false });
    
       // Guardar el documento en el archivo "*_Redacted.*" en formato original
       redactor.Save(new SaveOptions() { AddSuffix = true, RasterizeToPDF = false });
    
       // Guarde el documento en "*_AnyText.*" (por ejemplo, marca de tiempo en lugar de "AnyText") en su nombre de archivo sin rasterizar
       redactor.Save(new SaveOptions(false, "AnyText"));
    }    

Ver también