我们在 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 文档中提取所有文本:
- 首先,使用 Document 类加载 OneNote 文件。
- 之后,调用 GetChildNodes 方法,将 RichText 作为 NodeType 提取文本。
- 最后,显示提取的文本。
以下代码示例展示了如何使用 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 文档的特定页面中提取文本:
- 首先,使用 Document 类加载 OneNote 文件。
- 接下来,调用 GetChildNodes 方法,将 Page 作为 NodeType 以提取页面。
- 之后,使用 GetChildNodes 方法获取文本项列表,其中 RichText 为 NodeType。
- 最后,显示提取的文本。
以下代码示例演示如何使用 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 文档中提取图像:
- 首先,使用 Document 类加载 OneNote 文件。
- 之后,使用 GetChildNodes 方法获取图像列表,其中 Image 为 NodeType。
- 最后,显示图像属性并保存到本地磁盘。
以下代码示例展示了如何使用 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 文档中提取图像。此外,您可以使用 documentation 了解更多关于 Aspose.Note for .NET API 的信息。如有任何歧义,请随时在 论坛 上与我们联系。