使用 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

从 OneNote 文档中提取所有文本

我们可以按照下面给出的步骤轻松地从 OneNote 文档中提取所有文本:

  1. 首先,使用 Document 类加载 OneNote 文件。
  2. 之后,调用 GetChildNodes 方法,将 RichText 作为 NodeType 提取文本。
  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 文档中提取所有文本。

从 OneNote 文档的特定页面获取文本

我们可以按照以下步骤从 OneNote 文档的特定页面中提取文本:

  1. 首先,使用 Document 类加载 OneNote 文件。
  2. 接下来,调用 GetChildNodes 方法,将 Page 作为 NodeType 以提取页面。
  3. 之后,使用 GetChildNodes 方法获取文本项列表,其中 RichText 为 NodeType
  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);
    }
}

从 OneNote 文档中提取图像

我们还可以按照以下步骤从 OneNote 文档中提取图像:

  1. 首先,使用 Document 类加载 OneNote 文件。
  2. 之后,使用 GetChildNodes 方法获取图像列表,其中 ImageNodeType
  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 文档中提取图像。此外,您可以使用 documentation 了解更多关于 Aspose.Note for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。

也可以看看