DetectNumberingWithWhitespaces

TxtLoadOptions.DetectNumberingWithWhitespaces property

允许指定从纯文本格式导入文档时如何识别编号列表项。 默认值为真的

public bool DetectNumberingWithWhitespaces { get; set; }

评论

如果该选项设置为错误的,当列表编号以 点、右括号或项目符号(例如“•”、“*”、“-”或“o”)结尾时,列表识别算法会检测列表段落。

如果该选项设置为真的,空格也用作列表编号分隔符: 阿拉伯风格编号 (1., 1.1.2.) 的列表识别算法同时使用空格和点 (".") 符号。

例子

演示如何在加载纯文本文档时检测列表。

// 在字符串中创建一个纯文本文档,其中包含四个单独的部分,我们可以将其解释为列表,
// 使用不同的分隔符。将纯文本文档加载到“Document”对象中后,
// Aspose.Words 将始终检测前三个列表并添加一个“List”对象
// 对于每个文档的“Lists”属性。
const string textDoc = "Full stop delimiters:\n" +
                       "1. First list item 1\n" +
                       "2. First list item 2\n" +
                       "3. First list item 3\n\n" +
                       "Right bracket delimiters:\n" +
                       "1) Second list item 1\n" +
                       "2) Second list item 2\n" +
                       "3) Second list item 3\n\n" +
                       "Bullet delimiters:\n" +
                       "• Third list item 1\n" +
                       "• Third list item 2\n" +
                       "• Third list item 3\n\n" +
                       "Whitespace delimiters:\n" +
                       "1 Fourth list item 1\n" +
                       "2 Fourth list item 2\n" +
                       "3 Fourth list item 3";

// 创建一个“TxtLoadOptions”对象,我们可以将其传递给文档的构造函数
// 修改我们加载纯文本文档的方式。
TxtLoadOptions loadOptions = new TxtLoadOptions();

// 将“DetectNumberingWithWhitespaces”属性设置为“true”以检测编号项目
// 使用空格分隔符,例如我们文档中的第四个列表,作为列表。
// 这也可能错误地将以数字开头的段落检测为列表。
// 将“DetectNumberingWithWhitespaces”属性设置为“false”
// 不从带有空格分隔符的编号项创建列表。
loadOptions.DetectNumberingWithWhitespaces = detectNumberingWithWhitespaces;

Document doc = new Document(new MemoryStream(Encoding.UTF8.GetBytes(textDoc)), loadOptions);

if (detectNumberingWithWhitespaces)
{
    Assert.AreEqual(4, doc.Lists.Count);
    Assert.True(doc.FirstSection.Body.Paragraphs.Any(p => p.GetText().Contains("Fourth list") && ((Paragraph)p).IsListItem));
}
else
{
    Assert.AreEqual(3, doc.Lists.Count);
    Assert.False(doc.FirstSection.Body.Paragraphs.Any(p => p.GetText().Contains("Fourth list") && ((Paragraph)p).IsListItem));
}

也可以看看