GroupDocs.Redaction for .NET 26.6 è ora disponibile. Questa versione semplifica l’apertura di documenti da stream e file con un formato esplicito e introduce una nuova API di disegno indipendente da System.Drawing per migliorare la compatibilità cross‑platform.

Correzioni e miglioramenti

  • [Enhancement] Specificare il tipo di file quando si apre un documento da uno stream o da un percorso file. (REDACTIONNET-572)
  • [Enhancement] Migrare da System.Drawing per migliorare la compatibilità cross‑platform. (REDACTIONNET-799)

Novità

Questa release si concentra su due aree che semplificano l’integrazione e preparano l’API a un supporto più ampio delle piattaforme.

Specificare il formato del documento con LoadOptions.FileType

Quando si apre un documento, GroupDocs.Redaction normalmente ne rileva automaticamente il formato. Questo funziona bene per i file con estensione corretta, ma può fallire per gli stream privi di nome file o quando l’estensione non corrisponde al contenuto reale.

La versione 26.6 aggiunge la proprietà LoadOptions.FileType e un costruttore LoadOptions(FileType). Impostate FileType su una costante supportata, ad esempio FileType.DOCX o FileType.PDF, e la libreria aprirà il documento usando quel formato senza eseguire il rilevamento binario del formato. Il comportamento predefinito rimane invariato quando FileType non è specificato o rimane FileType.Unknown.

Tipi di disegno cross‑platform in GroupDocs.Redaction.Options.Drawing

Diversi parametri di redazione si basavano in precedenza sui tipi di System.Drawing (Color, Point, Size, Rectangle, Font). Questi tipi non sono disponibili su tutte le piattaforme e possono complicare il deployment su Linux e in ambienti containerizzati.

Il nuovo namespace GroupDocs.Redaction.Options.Drawing fornisce i tipi Color, Point, Size, Rectangle, Font e FontStyle da utilizzare nell’API pubblica. I nuovi overload accettano questi tipi in ReplacementOptions, RegionReplacementOptions, ImageAreaRedaction, PageAreaFilter, TextFragment e classi correlate.

Il codice esistente che utilizza System.Drawing continua a compilare ed eseguire. I membri corrispondenti sono contrassegnati come obsoleti e dovrebbero essere migrati ai nuovi tipi negli aggiornamenti futuri.

Modifiche all’API pubblica

Aggiunte

  • Proprietà LoadOptions.FileType
  • Costruttore LoadOptions(FileType fileType)
  • Tipi di disegno in GroupDocs.Redaction.Options.Drawing: Color, Point, Size, Rectangle, Font, FontStyle
  • Nuovi overload che accettano i tipi di GroupDocs.Redaction.Options.Drawing

Obsoleti

  • ReplacementOptions.BoxColor — usare ReplacementOptions.BoxFillColor
  • ReplacementOptions(System.Drawing.Color) — usare ReplacementOptions(GroupDocs.Redaction.Options.Drawing.Color)
  • RegionReplacementOptions.FillColor — usare RegionReplacementOptions.AreaFillColor
  • RegionReplacementOptions.Size — usare RegionReplacementOptions.AreaSize
  • RegionReplacementOptions(System.Drawing.Color, System.Drawing.Size) — usare l’overload con GroupDocs.Redaction.Options.Drawing.Color e GroupDocs.Redaction.Options.Drawing.Size
  • RegionReplacementOptions(System.Drawing.Color, System.Drawing.Font, string) — usare l’overload con GroupDocs.Redaction.Options.Drawing.Color e GroupDocs.Redaction.Options.Drawing.Font
  • ImageAreaRedaction.TopLeft — usare ImageAreaRedaction.TopLeftPosition
  • ImageAreaRedaction(System.Drawing.Point, RegionReplacementOptions) — usare l’overload con GroupDocs.Redaction.Options.Drawing.Point
  • PageAreaFilter.Rectangle — usare PageAreaFilter.AreaRectangle
  • PageAreaFilter(System.Drawing.Point, System.Drawing.Size) — usare l’overload con GroupDocs.Redaction.Options.Drawing.Point e GroupDocs.Redaction.Options.Drawing.Size
  • TextFragment.Rectangle — usare TextFragment.BoundingRectangle
  • TextFragment(string, System.Drawing.Rectangle) — usare TextFragment(string, GroupDocs.Redaction.Options.Drawing.Rectangle)
  • IImageFormatInstance.EditArea(System.Drawing.Point, RegionReplacementOptions) — usare l’overload con GroupDocs.Redaction.Options.Drawing.Point

Esempi di codice

Aprire un documento con un tipo di file esplicito

using System.IO;
using GroupDocs.Redaction.Options;
using GroupDocs.Redaction.Redactions;

using (Stream stream = File.OpenRead("sample.docx"))
{
    using (Redactor redactor = new Redactor(stream, new LoadOptions(FileType.DOCX)))
    {
        redactor.Apply(new DeleteAnnotationRedaction());
        redactor.Save();
    }
}

using (Redactor redactor = new Redactor("sample.pdf", new LoadOptions(FileType.PDF)))
{
    redactor.Apply(new ExactPhraseRedaction("Test", new ReplacementOptions("[redacted]")));
    redactor.Save();
}

Utilizzare GroupDocs.Redaction.Options.Drawing al posto di System.Drawing

using GroupDocs.Redaction.Options.Drawing;
using GroupDocs.Redaction.Redactions;

// Precedentemente: new ReplacementOptions(System.Drawing.Color.Red)
using (Redactor redactor = new Redactor("sample.docx"))
{
    redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(Color.Red)));
    redactor.Save();
}

// Precedentemente: new ImageAreaRedaction(new System.Drawing.Point(516, 311),
//     new RegionReplacementOptions(System.Drawing.Color.Blue, new System.Drawing.Size(170, 35)))
using (Redactor redactor = new Redactor("sample.jpg"))
{
    redactor.Apply(new ImageAreaRedaction(new Point(516, 311),
        new RegionReplacementOptions(Color.Blue, new Size(170, 35))));
    redactor.Save();
}

Come ottenere l’aggiornamento

  • NuGet – Aggiornare al pacchetto più recente GroupDocs.Redaction for .NET tramite NuGet
  • Download diretto – Scaricare gli assembly di GroupDocs.Redaction dalla pagina GroupDocs.Redaction for .NET 26.6

Per saperne di più