在 C# 中從 OneNote 中提取文本和圖像

我們在 OneNote 文檔中收集、組織和協作筆記和想法。它是一種用於記錄筆記並與其他 OneNote 用戶共享的數字筆記本。在某些情況下,我們可能需要在不使用 MS OneNote 的情況下以編程方式從 OneNote 文檔中提取文本或圖像。在本文中,我們將學習如何使用 C# 從 OneNote 中提取文本和圖像。

本文應涵蓋以下主題:

從 OneNote 中提取文本和圖像的 C# API

為了從 OneNote 文檔中提取文本和圖像,我們將使用 Aspose.Note for .NET API。它是一個功能豐富的 OneNote 文檔操作 API,可讓您以編程方式創建、讀取和轉換 OneNote 文檔。請 下載 API 的 DLL 或使用 NuGet 安裝它。

PM> Install-Package Aspose.Note

C# 從 OneNote 中提取所有文本

我們可以按照下面給出的步驟輕鬆地從 OneNote 文檔中提取所有文本:

  1. 首先,使用 Document 類加載一個 OneNote 文件。
  2. 之後,以RichText為NodeType調用GetChildNodes方法提取文本。
  3. 最後,顯示提取的文本。

下面的代碼示例展示瞭如何使用 C# 從 OneNote 文件中提取所有文本。

// 此代碼示例演示如何從 OneNote 文檔中提取所有文本。
// 將文檔加載到 Aspose.Note 中。
Document oneFile = new Document(@"C:\Files\Note\Aspose.one");

// 檢索文本
string text = string.Join(Environment.NewLine, oneFile.GetChildNodes<RichText>().Select(e => e.Text)) + Environment.NewLine;

// 打印文本
Console.WriteLine(text);
從 OneNote 文檔中提取所有文本。

從 OneNote 文檔中提取所有文本。

C# 從 OneNote 的特定頁面中提取文本

我們可以按照以下步驟從 OneNote 文檔的特定頁面中提取文本:

  1. 首先,使用 Document 類加載一個 OneNote 文件。
  2. 接下來,以PageNodeType調用GetChildNodes方法來提取頁面。
  3. 之後,使用 RichText 作為 NodeTypeGetChildNodes 方法獲取文本項列表。
  4. 最後,顯示提取的文本。

下面的代碼示例展示瞭如何使用 C# 從 OneNote 文件的特定頁面中提取文本。

// 此代碼示例演示如何從特定頁面獲取文本。
// 從頁面節點列表中獲取第一頁
var page = oneFile.GetChildNodes<Page>().FirstOrDefault();

if (page != null)
{
    // 檢索文本
    IList<RichText> textNodes = page.GetChildNodes<RichText>();

    foreach (RichText t in textNodes)
    {
        // 打印文本
        Console.WriteLine(t.Text);
    }
}

在 C# 中從 OneNote 中提取圖像

我們也可以按照以下步驟從 OneNote 文檔中提取圖片:

  1. 首先,使用 Document 類加載一個 OneNote 文件。
  2. 之後,使用 GetChildNodes 方法獲取圖像列表,其中 Image 作為 NodeType
  3. 最後,顯示圖像屬性並保存到本地磁盤。

下面的代碼示例展示瞭如何使用 C# 從 OneNote 文件中提取圖像。

// 此代碼示例演示如何提取所有圖像。
// 獲取所有圖像節點
IList<Aspose.Note.Image> nodes = oneFile.GetChildNodes<Aspose.Note.Image>();

foreach (Aspose.Note.Image image in nodes)
{
    Console.WriteLine("Width: {0}", image.Width);
    Console.WriteLine("Height: {0}", image.Height);
    Console.WriteLine("OriginalWidth: {0}", image.OriginalWidth);
    Console.WriteLine("OriginalHeight: {0}", image.OriginalHeight);
    Console.WriteLine("FileName: {0}", image.FileName);
    Console.WriteLine("LastModifiedTime: {0}", image.LastModifiedTime);

    using (MemoryStream stream = new MemoryStream(image.Bytes))
    {
        using (Bitmap bitMap = new Bitmap(stream))
        {
            // 將圖像字節保存到文件
            bitMap.Save(String.Format(@"C:\Files\Note\" + "{0}", Path.GetFileName(image.FileName)));
        }
    }

    Console.WriteLine("Image saved!");
    Console.WriteLine();
}
從 OneNote 文檔中提取圖像。

從 OneNote 文檔中提取圖像。

獲得免費許可證

您可以 獲得免費的臨時許可證 來試用該庫,而沒有評估限制。

結論

在本文中,我們學習瞭如何從 OneNote 文檔或文檔的特定頁面中提取文本。我們還了解瞭如何以編程方式從 OneNote 文檔中提取圖像。此外,您可以使用 文檔 了解有關 Aspose.Note for .NET API 的更多信息。如有任何歧義,請隨時在論壇上與我們聯繫。

也可以看看