在 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 類的對像初始化 Page 對象來創建新頁面。
  • 使用 Page.Title 屬性設置頁面的標題。
  • 調用 Document.AppendChild() 方法並傳遞 Page 對象。
  • 最後,使用 Document.Save() 方法保存 OneNote 文檔。

下面的代碼示例展示瞭如何使用 C# 創建一個空的 OneNote 文檔。

// 文檔目錄的路徑。
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

// 創建文檔類的對象
Document doc = new Aspose.Note.Document();
// 初始化頁麵類對象
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 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 doc = new Document();
// 初始化頁麵類對象
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 doc = new Document();
// 初始化頁麵類對象
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 文檔中創建和添加標籤的步驟。

  • 創建文檔類的實例。
  • 使用 Page 類創建一個新頁面。
  • 初始化 Outline 和 OutlineElement 對象。
  • 創建一個新的 RichText 對象並設置其文本和其他屬性。
  • 使用 RichText.Tags.Add() 方法向文本添加標籤。
  • 將文本附加到頁面。
  • 將頁面添加到 OneNote 文檔並保存。

下面的代碼示例展示瞭如何使用 C# 為 OneNote 文檔中的文本添加標籤。

// 文檔目錄的路徑。
string dataDir = RunExamples.GetDataDir_Tags();

// 創建文檔類的對象
Document doc = new Document();
// 初始化頁麵類對象
Aspose.Note.Page page = new Aspose.Note.Page(doc);
// 初始化 Outline 類對象
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 文檔中。

  • 創建文檔類的實例。
  • 使用 Page 類為文檔創建一個新頁面。
  • 使用 TextStyle 類設置超鏈接的文本樣式及其 URL。
  • 創建 RichText 類的實例,添加其文本並使用先前為超鏈接創建的文本樣式對其進行初始化。
  • 向 OneNote 文檔的頁面添加文本。
  • 將文檔另存為 .one 文件。

下面的代碼示例演示如何使用 C# 插入指向 OneNote 文檔的超鏈接。

// 文檔目錄的路徑。
string dataDir = RunExamples.GetDataDir_Tasks();

// 創建文檔類的對象
Document doc = new Document();
// 初始化頁麵類對象
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 的其他有趣功能。

相關文章