ToString

ToString(SaveFormat)

将节点的内容导出为指定格式的字符串。

public string ToString(SaveFormat saveFormat)

返回值

指定格式的节点内容。

例子

显示在节点上调用 GetText 和 ToString 方法之间的区别。

Document doc = new Document();

DocumentBuilder builder = new DocumentBuilder(doc);
builder.InsertField("MERGEFIELD Field");

// GetText 将检索可见文本以及字段代码和特殊字符。
Assert.AreEqual("\u0013MERGEFIELD Field\u0014«Field»\u0015\u000c", doc.GetText());

// 如果保存为传递的保存格式,ToString 将为我们提供文档的外观。
Assert.AreEqual("«Field»\r\n", doc.ToString(SaveFormat.Text));

将节点的内容导出为 HTML 格式的字符串。

Document doc = new Document(MyDir + "Document.docx");

Node node = doc.LastSection.Body.LastParagraph;

// 当我们使用 html SaveFormat 重载调用 ToString 方法时,
// 它将节点的内容转换为其原始 html 表示形式。
Assert.AreEqual("<p style=\"margin-top:0pt; margin-bottom:8pt; line-height:108%; font-size:12pt\">" +
                "<span style=\"font-family:'Times New Roman'\">Hello World!</span>" +
                "</p>", node.ToString(SaveFormat.Html));

// 我们还可以使用 SaveOptions 对象修改此转换的结果。
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.ExportRelativeFontSize = true;

Assert.AreEqual("<p style=\"margin-top:0pt; margin-bottom:8pt; line-height:108%\">" +
                "<span style=\"font-family:'Times New Roman'\">Hello World!</span>" +
                "</p>", node.ToString(saveOptions));

演示如何提取属于列表项的所有段落的列表标签。

Document doc = new Document(MyDir + "Rendering.docx");
doc.UpdateListLabels();

NodeCollection paras = doc.GetChildNodes(NodeType.Paragraph, true);

// 查找是否有段落列表。在我们的文档中,我们的列表使用简单的阿拉伯数字,
// 从三点开始到六点结束。
foreach (Paragraph paragraph in paras.OfType<Paragraph>().Where(p => p.ListFormat.IsListItem))
{
    Console.WriteLine($"List item paragraph #{paras.IndexOf(paragraph)}");

    // 这是我们把这个节点输出为文本格式时获取到的文本。
     // 此文本输出将省略列表标签。修剪任何段落格式字符。
    string paragraphText = paragraph.ToString(SaveFormat.Text).Trim();
    Console.WriteLine($"\tExported Text: {paragraphText}");

    ListLabel label = paragraph.ListLabel;

    // 这获取段落在列表当前级别中的位置。如果我们有一个包含多个级别的列表,
    // 这将告诉我们它在该级别上的位置。
    Console.WriteLine($"\tNumerical Id: {label.LabelValue}");

    // 将它们组合在一起以在输出中包含列表标签和文本。
    Console.WriteLine($"\tList label combined with text: {label.LabelString} {paragraphText}");
}

也可以看看


ToString(SaveOptions)

使用指定的保存选项将节点的内容导出到字符串中。

public string ToString(SaveOptions saveOptions)
范围类型描述
saveOptionsSaveOptions指定控制节点保存方式的选项。

返回值

指定格式的节点内容。

例子

将节点的内容导出为 HTML 格式的字符串。

Document doc = new Document(MyDir + "Document.docx");

Node node = doc.LastSection.Body.LastParagraph;

// 当我们使用 html SaveFormat 重载调用 ToString 方法时,
// 它将节点的内容转换为其原始 html 表示形式。
Assert.AreEqual("<p style=\"margin-top:0pt; margin-bottom:8pt; line-height:108%; font-size:12pt\">" +
                "<span style=\"font-family:'Times New Roman'\">Hello World!</span>" +
                "</p>", node.ToString(SaveFormat.Html));

// 我们还可以使用 SaveOptions 对象修改此转换的结果。
HtmlSaveOptions saveOptions = new HtmlSaveOptions();
saveOptions.ExportRelativeFontSize = true;

Assert.AreEqual("<p style=\"margin-top:0pt; margin-bottom:8pt; line-height:108%\">" +
                "<span style=\"font-family:'Times New Roman'\">Hello World!</span>" +
                "</p>", node.ToString(saveOptions));

也可以看看