GroupDocs.Redaction for .NET 26.6 現已推出。此版本讓從串流或檔案開啟文件時可以明確指定格式,並引入一套獨立於 System.Drawing 的全新繪圖 API,以提升跨平台相容性。

修正與增強

  • [增強] 從串流或檔案路徑開啟文件時可指定檔案類型。 (REDACTIONNET-572)
  • [增強] 移除對 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();
}

如何取得更新

更多資訊