Como trabalhar com texto em .NET

Como trabalhar com texto em .NET

Este guia mostra como trabalhar com texto em Aspose.Words FOSS para .NET: formatar a fonte de um run, formatar um parágrafo, encontrar e substituir texto com Range, adicionar um comentário e transformar um parágrafo em um item de lista. Aspose.Words FOSS para .NET está disponível via NuGet ou compilando a partir do código-fonte.

Guia Passo a Passo

Etapa 1: Obter a Biblioteca

Clone o repositório e compile Aspose.Words.sln na configuração Release, então adicione uma referência de projeto a Aspose.Words.csproj do seu próprio projeto .NET, conforme descrito no guia de Instalação. Adicione using Aspose.Words; no topo de qualquer arquivo que trabalhe com texto.


Etapa 2: Formatar a Fonte de um Run

Um Run é um trecho de texto que compartilha um conjunto de formatação; sua propriedade Text contém o conteúdo em texto simples e sua propriedade Font (um objeto Font) contém a formatação a nível de caractere — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, e StrikeThrough, entre outros. Font.ClearFormatting() redefine um run para os padrões. Os runs de um parágrafo estão disponíveis através de sua propriedade Runs, um RunCollection. Definir propriedades de fonte em DocumentBuilder.Font antes de escrever novo texto costuma ser mais simples do que formatar objetos Run individuais depois.


Etapa 3: FormatAR um Parágrafo

Paragraph.ParagraphFormat (um objeto ParagraphFormat) controla o layout ao nível de parágrafo: Alignment, recuos (LeftIndent, RightIndent, FirstLineIndent), espaçamento (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule) e comportamento de paginação (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() redefine esses valores para o padrão, e Paragraph.JoinRunsWithSameFormatting() mescla runs adjacentes que carregam formatação idêntica — útil após uma série de edições programáticas deixar um parágrafo com mais runs do que o necessário.


Etapa 4: Localizar e Substituir Texto com Intervalo

Todo nó que contém conteúdo — um Document, Section, Paragraph ou Run — expõe um Range. Range.Text devolve o texto simples de tudo dentro desse intervalo, e Range.Replace(pattern, replacement) realiza uma busca e substituição limitada a esse intervalo: invoque-o no Range de um Paragraph para alterar o texto em apenas um parágrafo, ou em Document.Range para pesquisar todo o documento. Range.Delete() remove o conteúdo do intervalo completamente.


Etapa 5: Adicionar um Comentário

Construa um Comment com new Comment(doc, author, initial, dateTime), defina seu texto com SetText(text), e então insira-o na árvore como qualquer outro nó. Comment.AddReply(author, initial, dateTime, text) anexa uma resposta em thread — que é um Comment — e RemoveReply(reply) / RemoveAllReplies() removem as respostas. Os comentários de um documento são reunidos em um CommentCollection.


Etapa 6: Transformar um Parágrafo em um Item de Lista

Paragraph.ListFormat (um objeto ListFormat) relata e controla se um parágrafo participa de uma lista: IsListItem e ListLevelNumber relatam seu estado atual. ApplyBulletDefault() transforma o parágrafo em um item com marcadores padrão e ApplyNumberDefault() em um item numerado padrão; ListIndent() / ListOutdent() alteram seu nível de aninhamento, e RemoveNumbers() o transforma de volta em um parágrafo simples.

Problemas Comuns e Soluções

Formatando um Run’s fonte não altera o texto adjacente. O texto adjacente é diferente Run com o seu próprio Font instância. Ou localize e formate cada afetado Run, ou defina a formatação em DocumentBuilder.Font antes de escrever novo texto.

Range.Replace altera texto fora da área pretendida. Replace foi chamado em Document.Range em vez do intervalo de um nó mais estreito. Chame-o no específico Paragraph or Section cujo texto deve mudar.

Um parágrafo parece um item de lista com marcadores, mas IsListItem is false. A marcação é texto digitado, não formatação real de lista. Aplique-a com ListFormat.ApplyBulletDefault() em vez disso.

O documento acaba com muito mais Run nodes do que o esperado. Edições programáticas pequenas e repetidas dividem runs sem reuni-los novamente. Chame Paragraph.JoinRunsWithSameFormatting() após um lote de edições.

Perguntas Frequentes

Qual é a diferença entre Run e Paragraph?

Um Run é um trecho de texto que compartilha um conjunto de formatação de caracteres (Font). Um Paragraph é o nó composto que contém uma ou mais sequências mais formatação de nível de parágrafo (ParagraphFormat).

Como leio todo o texto em um documento ou em uma única seção?

Leia a propriedade Text do Range desse nó — document.Range.Text ou section.Range.Text.

Como substituo texto dentro de apenas um parágrafo, não de todo o documento?

Chame Replace(pattern, replacement) no Range desse Paragraph, não em Document.Range.

Como respondo a um comentário existente?

Chame Comment.AddReply(author, initial, dateTime, text) na instância original de Comment.

Como transformo um item de lista numerada de volta em um parágrafo simples?

Chame RemoveNumbers() no ListFormat deste parágrafo.

Ver também

 Português