GroupDocs.Redaction for .NET 26.6 现已发布。此版本简化了从流和文件中打开文档并显式指定格式的方式,并引入了一个独立于 System.Drawing 的全新绘图 API,以提升跨平台兼容性。

修复与增强

  • [Enhancement] 在从流或文件路径打开文档时指定文件类型。 (REDACTIONNET-572)
  • [Enhancement] 摒弃 System.Drawing,提升跨平台兼容性。 (REDACTIONNET-799)

新增内容?

此版本聚焦于两个方面:简化集成并为更广泛的平台支持做好准备。

使用 LoadOptions.FileType 指定文档格式

打开文档时,GroupDocs.Redaction 通常会自动检测其格式。这在文件扩展名正确时效果良好,但在没有文件名的流或扩展名与实际内容不匹配时可能会失败。

26.6 版新增了 LoadOptions.FileType 属性以及 LoadOptions(FileType) 构造函数。将 FileType 设置为受支持的常量(如 FileType.DOCXFileType.PDF),库将使用该格式打开文档,而不进行二进制格式检测。当未指定 FileType 或保持为 FileType.Unknown 时,行为保持不变。

GroupDocs.Redaction.Options.Drawing 中的跨平台绘图类型

之前的多个脱敏选项依赖于 System.Drawing 类型(ColorPointSizeRectangleFont)。这些类型并非在所有平台上都可用,且会在 Linux 及容器化环境中增加部署难度。

全新的 GroupDocs.Redaction.Options.Drawing 命名空间提供了 ColorPointSizeRectangleFontFontStyle 类型供公共 API 使用。新的重载在 ReplacementOptionsRegionReplacementOptionsImageAreaRedactionPageAreaFilterTextFragment 以及相关类中接受这些类型。

使用 System.Drawing 的现有代码仍可编译运行。相应成员已标记为过时,建议在后续更新中迁移到新类型。

公共 API 更改

新增

  • LoadOptions.FileType 属性
  • LoadOptions(FileType fileType) 构造函数
  • GroupDocs.Redaction.Options.Drawing 中的绘图类型:ColorPointSizeRectangleFontFontStyle
  • 接受 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.ColorGroupDocs.Redaction.Options.Drawing.Size 的重载
  • RegionReplacementOptions(System.Drawing.Color, System.Drawing.Font, string) — 改用接受 GroupDocs.Redaction.Options.Drawing.ColorGroupDocs.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.PointGroupDocs.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();
}

如何获取更新

了解更多