GroupDocs.Redaction for .NET 26.6 теперь доступен. Этот релиз упрощает открытие документов из потоков и файлов с явным указанием формата, а также вводит новый API рисования, независимый от System.Drawing, чтобы улучшить кроссплатформенную совместимость.

Исправления и улучшения

  • [Enhancement] Указание типа файла при открытии документа из потока или пути к файлу. (REDACTIONNET-572)
  • [Enhancement] Переход от System.Drawing для повышения кроссплатформенной совместимости. (REDACTIONNET-799)

Что нового?

Этот релиз сосредоточен на двух областях, упрощающих интеграцию и готовящих API к более широкой поддержке платформ.

Указание формата документа с помощью LoadOptions.FileType

При открытии документа GroupDocs.Redaction обычно автоматически определяет его формат. Это работает хорошо для файлов с правильным расширением, но может не сработать для потоков без имени файла или когда расширение не соответствует реальному содержимому.

Версия 26.6 добавляет свойство LoadOptions.FileType и конструктор LoadOptions(FileType). Установите FileType в поддерживаемую константу, например FileType.DOCX или FileType.PDF, и библиотека откроет документ, используя указанный формат, без выполнения бинарного определения формата. Поведение по умолчанию остаётся прежним, если FileType не указан или остаётся FileType.Unknown.

Кроссплатформенные типы рисования в GroupDocs.Redaction.Options.Drawing

Ранее несколько параметров редактирования полагались на типы System.Drawing (Color, Point, Size, Rectangle, Font). Эти типы недоступны на всех платформах и могут усложнять развертывание в Linux и контейнеризованных средах.

Новый неймспейс GroupDocs.Redaction.Options.Drawing предоставляет типы Color, Point, Size, Rectangle, Font и FontStyle для использования в публичном API. Новые перегрузки принимают эти типы в ReplacementOptions, RegionReplacementOptions, ImageAreaRedaction, PageAreaFilter, TextFragment и связанных классах.

Существующий код, использующий System.Drawing, продолжит компилироваться и работать. Соответствующие члены помечены как устаревшие и должны быть мигрированы на новые типы в будущих обновлениях.

Изменения публичного API

Добавлено

  • Свойство LoadOptions.FileType
  • Конструктор LoadOptions(FileType fileType)
  • Типы рисования в GroupDocs.Redaction.Options.Drawing: Color, Point, Size, Rectangle, Font, FontStyle
  • Новые перегрузки, принимающие типы из GroupDocs.Redaction.Options.Drawing

Устарело

  • ReplacementOptions.BoxColor — используйте ReplacementOptions.BoxFillColor вместо него
  • ReplacementOptions(System.Drawing.Color) — используйте ReplacementOptions(GroupDocs.Redaction.Options.Drawing.Color) вместо него
  • RegionReplacementOptions.FillColor — используйте RegionReplacementOptions.AreaFillColor вместо него
  • RegionReplacementOptions.Size — используйте RegionReplacementOptions.AreaSize вместо него
  • RegionReplacementOptions(System.Drawing.Color, System.Drawing.Size) — используйте перегрузку с GroupDocs.Redaction.Options.Drawing.Color и GroupDocs.Redaction.Options.Drawing.Size вместо неё
  • RegionReplacementOptions(System.Drawing.Color, System.Drawing.Font, string) — используйте перегрузку с GroupDocs.Redaction.Options.Drawing.Color и GroupDocs.Redaction.Options.Drawing.Font вместо неё
  • ImageAreaRedaction.TopLeft — используйте ImageAreaRedaction.TopLeftPosition вместо него
  • ImageAreaRedaction(System.Drawing.Point, RegionReplacementOptions) — используйте перегрузку с GroupDocs.Redaction.Options.Drawing.Point вместо неё
  • PageAreaFilter.Rectangle — используйте PageAreaFilter.AreaRectangle вместо него
  • PageAreaFilter(System.Drawing.Point, System.Drawing.Size) — используйте перегрузку с GroupDocs.Redaction.Options.Drawing.Point и GroupDocs.Redaction.Options.Drawing.Size вместо неё
  • TextFragment.Rectangle — используйте TextFragment.BoundingRectangle вместо него
  • TextFragment(string, System.Drawing.Rectangle) — используйте TextFragment(string, GroupDocs.Redaction.Options.Drawing.Rectangle) вместо него
  • IImageFormatInstance.EditArea(System.Drawing.Point, RegionReplacementOptions) — используйте перегрузку с GroupDocs.Redaction.Options.Drawing.Point вместо неё

Примеры кода

Открытие документа с явным указанием типа файла

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();
}

Использование GroupDocs.Redaction.Options.Drawing вместо System.Drawing

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

// Раньше: 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();
}

// Раньше: 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();
}

Как получить обновление

  • NuGet – Обновите до последней версии пакета GroupDocs.Redaction for .NET через NuGet
  • Прямая загрузка – Скачайте сборки GroupDocs.Redaction со страницы GroupDocs.Redaction for .NET 26.6

Узнать больше