Cum să lucrați cu textul în .NET
Acest ghid arată cum să lucraţi cu textul în Aspose.Words FOSS pentru .NET: formatarea fontului unui run, formatarea unui paragraf, căutarea și înlocuirea textului cu Range, adăugarea unui comentariu și transformarea unui paragraf într-un element de listă. Aspose.Words FOSS pentru .NET este disponibil prin NuGet sau prin compilare din sursă.
Ghid pas cu pas
Pasul 1: Obţineţi biblioteca
Clonați depozitul și construiți Aspose.Words.sln în configurația Release, apoi adăugați o referință de proiect la Aspose.Words.csproj din propriul dumneavoastră proiect .NET, așa cum este descris în ghidul de instalare. Adăugați using Aspose.Words; în partea de sus a oricărui fișier care lucrează cu text.
Pasul 2: Formataţi fontul unui Run
Un Run este o secţiune de text care partajează acelaşi set de formatare; proprietatea sa Text conţine conţinutul textului simplu și proprietatea sa Font (un obiect Font) conţine formatarea la nivel de caracter — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, și StrikeThrough printre altele. Font.ClearFormatting() resetează un run la valorile implicite. Run-urile unui paragraf sunt disponibile prin proprietatea sa Runs, un RunCollection. Setarea proprietăţilor de font pe DocumentBuilder.Font înainte de a scrie text nou este de obicei mai simplă decât formatarea individuală a obiectelor Run ulterior.
Pasul 3: Formatează un paragraf
Paragraph.ParagraphFormat (un obiect ParagraphFormat) controlează aspectul la nivel de paragraf: Alignment, indentări (LeftIndent, RightIndent, FirstLineIndent), spațiere (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule) și comportamentul de paginare (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() resetează acestea la valorile implicite, iar Paragraph.JoinRunsWithSameFormatting() îmbină rulurile adiacente care au formatări identice — util după ce o serie de editări programatice lasă un paragraf cu mai multe ruluri decât este necesar.
Pasul 4: Găsește și înlocuiește text cu interval
Fiecare nod care conține conținut — un Document, Section, Paragraph sau Run — expune un Range. Range.Text returnează textul simplu al tot ce se află în acel interval, iar Range.Replace(pattern, replacement) efectuează o căutare-și-înlocuire limitată la acel interval: apelează-l pe Paragraph’s Range pentru a schimba textul doar într-un paragraf, sau pe Document.Range pentru a căuta în întregul document. Range.Delete() elimină conținutul intervalului complet.
Pasul 5: Adaugă un comentariu
Construiește un Comment cu new Comment(doc, author, initial, dateTime), setează-i textul cu SetText(text), apoi inserează-l în arbore ca pe orice alt nod. Comment.AddReply(author, initial, dateTime, text) atașează un răspuns în serie — care este și el un Comment — și RemoveReply(reply) / RemoveAllReplies() îndepărtează răspunsurile. Comentariile unui document sunt colectate într-un CommentCollection.
Pasul 6: Transformă un paragraf într-un element de listă
Paragraph.ListFormat (un obiect ListFormat) raportează și controlează dacă un paragraf participă la o listă: IsListItem și ListLevelNumber raportează starea curentă. ApplyBulletDefault() transformă paragraful într-un element cu bullet implicit și ApplyNumberDefault() într-un element numerotat implicit; ListIndent() / ListOutdent() modifică nivelul de imbricare, iar RemoveNumbers() îl transformă înapoi într-un paragraf simplu.
Probleme comune și remedieri
Formatarea unuia Run’s font nu schimbă textul adiacent. Textul adiacent este diferit Run cu propriul său Font instanță. Fie localizaţi şi formataţi fiecare afectat Run, sau setaţi formatarea pe DocumentBuilder.Font înainte de a scrie text nou.
Range.Replace modifică textul în afara zonei vizate. Replace a fost apelat pe Document.Range în loc de intervalul unui nod mai restrâns. Apelaţi-l pe cel specific Paragraph or Section al cărui text ar trebui să se schimbe.
Un paragraf arată ca un element de listă cu marcatori, dar IsListItem is false. Marcatorul este text tastat, nu o formată reală de listă. Aplică-l cu ListFormat.ApplyBulletDefault() în schimb.
Documentul se termină cu mult mai multe Run noduri decât se aștepta. Editările programatice mici repetate separă secvențele fără a le reuni. Apelează Paragraph.JoinRunsWithSameFormatting() după un lot de editări.
Întrebări frecvente
Care este diferența dintre Run și Paragraph?
Un Run este o porțiune de text care împărtășește un set de formatare a caracterelor (Font). Un Paragraph este nodul compozit care conține unul sau mai multe run-uri plus formatare la nivel de paragraf (ParagraphFormat).
Cum pot citi tot textul dintr-un document sau dintr-o singură secțiune?
Citește proprietatea Text a Range acelui nod — document.Range.Text sau section.Range.Text.
Cum pot înlocui textul dintr-un singur paragraf, nu din întregul document?
Apelează Replace(pattern, replacement) pe Range al Paragraph, nu pe Document.Range.
Cum pot răspunde la un comentariu existent?
Apelează Comment.AddReply(author, initial, dateTime, text) pe instanța originală Comment.
Cum pot transforma un element de listă numerotată înapoi într-un paragraf simplu?
Apelează RemoveNumbers() pe ListFormat acelui paragraf.