在 C# 2 中创建 OneNote 文件

Aspose.Note for .NET 是一个功能丰富的 OneNote 文档操作 API,可让您使用 C# 或 VB.NET 以编程方式创建、阅读和转换 OneNote 文档。在 上一篇文章 中,我们介绍了如何使用 Aspose.Note for .NET 来转换、读取和解析 OneNote 文档。今天,我们将了解如何使用 C# 从头开始创建 OneNote 文档。

MS OneNote 为您提供了一种以数字笔记 (.ONE) 的形式组织和管理信息的方法。 OneNote 文档中的页面用于包含用户自定义的内容,可能包括文本、表格、图像、列表等。在本文中,我们将介绍在 OneNote 文档中创建页面及其内容的所有基本方面.

使用 C# 创建 OneNote (.ONE) 文档

让我们首先创建一个只有页面标题的空 OneNote 文档。以下是创建空白页的 OneNote 文档并将其保存为 .one 文件的步骤。

  • 创建 Document 类的实例。
  • 通过使用 Document 类的对象初始化 Page 对象来创建一个新页面。
  • 使用 Page.Title 属性设置页面的标题。
  • 调用 Document.AppendChild() 方法并传递 Page 对象。
  • 最后,使用 Document.Save() 方法保存 OneNote 文档。

下面的代码示例展示了如何使用 C# 创建一个空的 OneNote 文档。

// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

// 创建 Document 类的对象
Document doc = new Aspose.Note.Document();
// 初始化 Page 类对象
Aspose.Note.Page page = new Aspose.Note.Page(doc);

// 文档中所有文本的默认样式。
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
// 设置页面标题属性
page.Title = new Title(doc)
{
    TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
    TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
    TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
};
// 在文档中追加页面节点
doc.AppendChildLast(page);

dataDir = dataDir + "CreateDocWithPageTitle_out.one";
// 保存 OneNote 文档
doc.Save(dataDir);

使用 C# 将页面添加到 OneNote 文档

在本节中,我们将先一步,在 OneNote 文档的页面中添加文本。 OneNote 文档中的页面可以是主页面,也可以是子页面。例如,您正在创建一份年度报告,其中进一步包含月度报告的小节。在这种情况下,您可以将报告的描述放在主页上,将月度报告放在子页面上。在 OneNote 文档中,这可以使用页面级别来处理。

以下是在 OneNote 文档中创建页面的步骤。

  • 使用 Document 类创建一个新的 OneNote 文档。
  • 为文档创建新页面并使用 Page 类设置它们的级别。
  • 使用 Outline 和 OutlineElement 类来创建笔记。
  • 使用 Page.AppendChildLast() 方法向页面添加注释。
  • 使用 Document.AppendChildLast() 方法将页面添加到 OneNote 文档。
  • 使用 Document.Save() 方法保存文档。

以下代码示例演示如何使用 C# 创建页面并将其添加到 OneNote 文档。

// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_Pages();

// 创建 Document 类的对象
Document doc = new Document();
// 初始化 Page 类对象并设置其级别
Aspose.Note.Page page1 = new Aspose.Note.Page(doc) { Level = 1 };
// 初始化 Page 类对象并设置其级别
Aspose.Note.Page page2 = new Aspose.Note.Page(doc) { Level = 2 };
// 初始化 Page 类对象并设置其级别
Aspose.Note.Page page3 = new Aspose.Note.Page(doc) { Level = 1 };

/*---------- Adding nodes to first Page ----------*/
Outline outline = new Outline(doc);
OutlineElement outlineElem = new OutlineElement(doc);
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
RichText text = new RichText(doc) { Text = "First page.", ParagraphStyle = textStyle };
outlineElem.AppendChildLast(text);
outline.AppendChildLast(outlineElem);
page1.AppendChildLast(outline);

/*---------- Adding nodes to second Page ----------*/
var outline2 = new Outline(doc);
var outlineElem2 = new OutlineElement(doc);
var textStyle2 = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
var text2 = new RichText(doc) { Text = "Second page.", ParagraphStyle = textStyle2 };
outlineElem2.AppendChildLast(text2);
outline2.AppendChildLast(outlineElem2);
page2.AppendChildLast(outline2);

/*---------- Adding nodes to third Page ----------*/
var outline3 = new Outline(doc);
var outlineElem3 = new OutlineElement(doc);
var textStyle3 = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
var text3 = new RichText(doc) { Text = "Third page.", ParagraphStyle = textStyle3 };
outlineElem3.AppendChildLast(text3);
outline3.AppendChildLast(outlineElem3);
page3.AppendChildLast(outline3);

/*---------- Add pages to the OneNote Document ----------*/
doc.AppendChildLast(page1);
doc.AppendChildLast(page2);
doc.AppendChildLast(page3);

dataDir = dataDir + "CreateDocWithRootAndSubPages_out.one";
// 保存 OneNote 文档
doc.Save(dataDir);

使用 C# 将图像插入 OneNote 文档

您还可以将图像插入 OneNote 页面。以下是创建包含图像的 OneNote 文档的步骤。

  • 为新的 OneNote 文档创建 Document 类的实例。
  • 使用 Page 类为文档创建一个新页面。
  • 创建 Image 类的新实例并使用图像的路径对其进行初始化。
  • 使用 OutlineElement.AppendChildLast() 方法将图像添加到页面。
  • 使用 Document.AppendChildLast() 方法将页面添加到文档。
  • 保存 OneNote 文档。

以下代码示例展示了如何使用 C# 将图像插入到 OneNote 文档中。

// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_Images();

// 创建 Document 类的对象
Document doc = new Document();
// 初始化 Page 类对象
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// 初始化 Outline 类对象并设置偏移属性
Outline outline = new Outline(doc) { VerticalOffset = 0, HorizontalOffset = 0 };
// 初始化 OutlineElement 类对象
OutlineElement outlineElem = new OutlineElement(doc);
// 通过文件路径加载图像。
Aspose.Note.Image image = new Aspose.Note.Image(doc, dataDir + "image.jpg");
// 设置图像对齐
image.Alignment = HorizontalAlignment.Right;
// 添加图片
outlineElem.AppendChildLast(image);
// 添加大纲元素
outline.AppendChildLast(outlineElem);
// 添加大纲节点
page.AppendChildLast(outline);
// 添加页面节点
doc.AppendChildLast(page);

dataDir = dataDir + "BuildDocAndInsertImage_out.one";
// 保存 OneNote 文档
doc.Save(dataDir);

使用 C# 将表格添加到 OneNote 文档

表格是一种以行和列的形式组织和汇总数据的好方法。除了高效的组织外,表格还可以让您快速找到所需的数据。 OneNote 文档也支持表格。以下是在 OneNote 文档中添加表格的步骤。

  • 使用 Document 类创建一个新的 OneNote 文档。
  • 使用 Page 类创建一个新页面。
  • 分别使用 TableRow 和 TableCell 类添加新的表格行和表格单元格。
  • 使用 TableCell.AppendChildLast 方法将元素插入表格单元格。
  • 使用 TableRow.AppendChildLast() 方法将单元格添加到表格行。
  • 创建 Table 类的实例并向其添加表行。
  • 使用 OutlineElement 和 Outline 类将表格添加到页面。
  • 将页面添加到文档并使用 Document.Save() 方法保存文档。

以下代码示例演示如何使用 C# 将表格添加到 OneNote 文档。

// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_Tables();

// 创建 Document 类的对象
Document doc = new Document();
// 初始化 Page 类对象
Aspose.Note.Page page = new Aspose.Note.Page(doc);

// 初始化 TableRow 类对象
TableRow row1 = new TableRow(doc);
// 初始化 TableCell 类对象
TableCell cell11 = new TableCell(doc);
TableCell cell12 = new TableCell(doc);
TableCell cell13 = new TableCell(doc);

// 在表格单元格中附加大纲元素
cell11.AppendChildLast(GetOutlineElementWithText(doc, "cell_1.1"));
cell12.AppendChildLast(GetOutlineElementWithText(doc, "cell_1.2"));
cell13.AppendChildLast(GetOutlineElementWithText(doc, "cell_1.3"));
// 表格单元格到行
row1.AppendChildLast(cell11);
row1.AppendChildLast(cell12);
row1.AppendChildLast(cell13);

// 初始化 TableRow 类对象
TableRow row2 = new TableRow(doc);
// 初始化 TableCell 类对象
TableCell cell21 = new TableCell(doc);
TableCell cell22 = new TableCell(doc);
TableCell cell23 = new TableCell(doc);

// 在表格单元格中附加大纲元素
cell21.AppendChildLast(GetOutlineElementWithText(doc, "cell_2.1"));
cell22.AppendChildLast(GetOutlineElementWithText(doc, "cell_2.2"));
cell23.AppendChildLast(GetOutlineElementWithText(doc, "cell_2.3"));

// 将表格单元格附加到行
row2.AppendChildLast(cell21);
row2.AppendChildLast(cell22);
row2.AppendChildLast(cell23);

// 初始化 Table 类对象并设置列宽
Table table = new Table(doc)
{
    IsBordersVisible = true,
    Columns = { new TableColumn { Width = 200 }, new TableColumn { Width = 200 }, new TableColumn { Width = 200 } }
};
// 将表格行附加到表格
table.AppendChildLast(row1);
table.AppendChildLast(row2);

// 初始化大纲对象
Outline outline = new Outline(doc);
// 初始化 OutlineElement 对象
OutlineElement outlineElem = new OutlineElement(doc);
// 将表格添加到大纲元素节点
outlineElem.AppendChildLast(table);
// 将大纲元素添加到大纲
outline.AppendChildLast(outlineElem);
// 向页面节点添加大纲
page.AppendChildLast(outline);
// 将页面添加到文档节点
doc.AppendChildLast(page);
dataDir = dataDir + "InsertTable_out.one";
doc.Save(dataDir);

使用 C# 在 OneNote 文档中插入标签

标签用于对 OneNote 文档中的笔记进行分类或优先级排序。您可以将标签应用于文本或段落以快速查找或过滤相关注释。以下是在 OneNote 文档中创建和添加标签的步骤。

  • 创建 Document 类的实例。
  • 使用 Page 类创建一个新页面。
  • 初始化 Outline 和 OutlineElement 对象。
  • 创建一个新的 RichText 对象并设置其文本和其他属性。
  • 使用 RichText.Tags.Add() 方法向文本添加标签。
  • 将文本附加到页面。
  • 将页面添加到 OneNote 文档并保存。

以下代码示例展示了如何使用 C# 向 OneNote 文档中的文本添加标签。

// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_Tags();

// 创建 Document 类的对象
Document doc = new Document();
// 初始化 Page 类对象
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// 初始化大纲类对象
Outline outline = new Outline(doc);
// 初始化 OutlineElement 类对象
OutlineElement outlineElem = new OutlineElement(doc);
ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
RichText text = new RichText(doc) { Text = "OneNote text.", ParagraphStyle = textStyle };
text.Tags.Add(new NoteTag
{
    Icon = TagIcon.YellowStar,
});

// 添加文本节点
outlineElem.AppendChildLast(text);
// 添加大纲元素节点
outline.AppendChildLast(outlineElem);
// 添加大纲节点
page.AppendChildLast(outline);
// 添加页面节点
doc.AppendChildLast(page);

dataDir = dataDir + "AddTextNodeWithTag_out.one";
// 保存 OneNote 文档
doc.Save(dataDir);

最后但并非最不重要的一点,让我们看看如何使用以下步骤将超链接插入到 OneNote 文档。

  • 创建 Document 类的实例。
  • 使用 Page 类为文档创建一个新页面。
  • 使用 TextStyle 类设置超链接的文本样式及其 URL。
  • 创建 RichText 类的实例,添加其文本并使用先前为超链接创建的文本样式对其进行初始化。
  • 将文本添加到 OneNote 文档的页面。
  • 将文档另存为 .one 文件。

以下代码示例演示如何使用 C# 插入指向 OneNote 文档的超链接。

// 文档目录的路径。
string dataDir = RunExamples.GetDataDir_Tasks();

// 创建 Document 类的对象
Document doc = new Document();
// 初始化 Page 类对象
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// 初始化 Title 类对象
Title title = new Title(doc);

ParagraphStyle defaultTextStyle = new ParagraphStyle
{
    FontName = "Arial",
    FontSize = 10,
    FontColor = SystemColors.WindowText
};
RichText titleText = new RichText(doc)
{
    Text = "Title!",
    ParagraphStyle = defaultTextStyle
};
Outline outline = new Outline(doc)
{
    MaxWidth = 200,
    MaxHeight = 200,
    VerticalOffset = 100,
    HorizontalOffset = 100
};
OutlineElement outlineElem = new OutlineElement(doc);
TextStyle textStyleRed = new TextStyle
{
    FontColor = Color.Red,
    FontName = "Arial",
    FontSize = 10,
    RunIndex = 8//this style will be applied to 0-7 characters.
};
TextStyle textStyleHyperlink = new TextStyle
{
    RunIndex = 17,//this style will be applied to 8-16 characters.
    IsHyperlink = true,
    HyperlinkAddress = "www.google.com"
};
RichText text = new RichText(doc)
{
    Text = "This is hyperlink. This text is not a hyperlink.",
    ParagraphStyle = defaultTextStyle,
    Styles = { textStyleRed, textStyleHyperlink }
};

title.TitleText = titleText;
page.Title = title;
outlineElem.AppendChildLast(text);
// 添加大纲元素
outline.AppendChildLast(outlineElem);
// 添加大纲节点
page.AppendChildLast(outline);
// 添加页面节点
doc.AppendChildLast(page);

dataDir = dataDir + "AddHyperlink_out.one";
// 保存 OneNote 文档
doc.Save(dataDir);

结论

在本文中,您学习了如何使用 C# 从头开始创建 OneNote (.ONE) 文档。此外,本文还介绍了如何以编程方式将页面、图像、表格、标签和超链接插入 OneNote 文档。您可以使用 文档 探索 Aspose.Note for .NET 的其他有趣功能。

相关文章