Trabalhando com listas

Uma lista em um documento Microsoft Word é um conjunto de propriedades de formatação de lista. As listas podem ser usadas em seus documentos para formatar, organizar e enfatizar o texto. As listas são uma ótima maneira de organizar dados em documentos e facilitam a compreensão dos pontos principais pelos leitores

Cada lista pode ter até 9 níveis e propriedades de formatação, como estilo de número, valor inicial, recuo, posição de tabulação, etc., são definidas separadamente para cada nível.

No Aspose.Words, o trabalho com listas é representado pelo módulo Lists. Contudo, o objeto List sempre pertence à coleção ListCollection.

Este tópico descreve como trabalhar programaticamente com listas usando Aspose.Words

Criando listas aplicando formatação de lista

Aspose.Words permite a fácil criação de listas aplicando formatação de lista. DocumentBuilder fornece a propriedade DocumentBuilder.list_format que retorna um objeto ListFormat. Este objeto possui vários métodos para iniciar e terminar uma lista e para aumentar/diminuir o recuo. Existem dois tipos gerais de listas em Microsoft Word: com marcadores e numeradas.

O marcador ou número e a formatação são adicionados ao parágrafo atual e a todos os parágrafos adicionais criados usando DocumentBuilder até que ListFormat.remove_numbers seja chamado para interromper a formatação da lista com marcadores.

Nos documentos do Word, as listas podem consistir em até nove níveis. A formatação da lista para cada nível especifica qual marcador ou número é usado, recuo à esquerda, espaço entre o marcador e o texto, etc. Os métodos a seguir alteram o nível da lista e aplicam as propriedades de formatação do novo nível:

Os métodos alteram o nível da lista e aplicam as propriedades de formatação do novo nível.

O exemplo abaixo mostra como construir uma lista multinível.

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
builder = aw.DocumentBuilder(doc)
builder.list_format.apply_number_default()
builder.writeln("Item 1")
builder.writeln("Item 2")
builder.list_format.list_indent()
builder.writeln("Item 2.1")
builder.writeln("Item 2.2")
builder.list_format.list_indent()
builder.writeln("Item 2.2.1")
builder.writeln("Item 2.2.2")
builder.list_format.list_outdent()
builder.writeln("Item 2.3")
builder.list_format.list_outdent()
builder.writeln("Item 3")
builder.list_format.remove_numbers()
doc.save(docs_base.artifacts_dir + "DocumentFormatting.multilevel_list_formatting.docx")

Especifique a formatação para um nível de lista

Os objetos no nível da lista são criados automaticamente quando uma lista é criada. Use as propriedades e métodos da classe ListLevel para controlar a formatação de níveis individuais de uma lista.

Lista de reinicialização para cada seção

Você pode reiniciar uma lista para cada seção usando a propriedade Propriedade is_restart_at_each_section. Observe que esta opção é suportada apenas nos formatos de documento RTF, DOC e DOCX. Esta opção será gravada em DOCX somente se OoxmlCompliance for superior a Ecma376.

O exemplo de código a seguir mostra como criar uma lista e reiniciá-la para cada seção:

# For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-Python-via-.NET
doc = aw.Document()
doc.lists.add(aw.lists.ListTemplate.NUMBER_DEFAULT)
list = doc.lists[0]
list.is_restart_at_each_section = True
builder = aw.DocumentBuilder(doc)
builder.list_format.list = list
for i in range(1, 45) :
builder.writeln(f"List Item {i}")
if i == 15 :
builder.insert_break(aw.BreakType.SECTION_BREAK_NEW_PAGE)
# IsRestartAtEachSection will be written only if compliance is higher then OoxmlComplianceCore.ecma_376.
options = aw.saving.OoxmlSaveOptions()
options.compliance = aw.saving.OoxmlCompliance.ISO29500_2008_TRANSITIONAL
doc.save(docs_base.artifacts_dir + "WorkingWithList.restart_list_at_each_section.docx", options)