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.
- Para iniciar uma lista com marcadores, ligue para ListFormat.apply_bullet_default.
- Para iniciar uma lista numerada, ligue para ListFormat.apply_number_default.
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:
- Para aumentar o nível da lista do parágrafo atual em um nível, chame ListFormat.list_indent
- Para diminuir o nível da lista do parágrafo atual em um nível, chame ListFormat.list_outdent
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) |