Cum să lucrați cu stiluri în .NET

Cum să lucrați cu stiluri în .NET

Acest ghid arată cum să cauți, să aplici și să creezi stiluri de paragraf, caracter, tabel și listă în Aspose.Words FOSS pentru .NET, utilizând Style, StyleCollection, și TableStyle clase. Acoperă citirea colecției de stiluri a unui document, căutarea stilurilor în mod fiabil în diferite limbi, aplicarea stilurilor la paragrafe și fragmente, crearea și copierea stilurilor și configurarea formatării condiționate pe regiuni pentru stilurile de tabel.

Ghid pas cu pas

Pasul 1: Instalaţi pachetul

Aspose.Words FOSS for .NET încă nu publică un pachet NuGet – construiţi biblioteca din sursă în schimb. Clonaţi https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, apoi construiţi Aspose.Words.sln în configuraţia Release cu SDK-ul .NET şi referiţi asamblarea Aspose.Words rezultată din proiectul dumneavoastră. Biblioteca vizează .NET Standard 2.0, deci rulează pe .NET Framework 4.6.2+ şi .NET 6/8/10.


Pasul 2: Importaţi clasele necesare

Adăugaţi o directivă using Aspose.Words; – Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection şi ConditionalStyleType se află toate în spaţiul de nume Aspose.Words alături de Document.


Pasul 3: Citește colecția de stiluri a unui document

Document.Styles returnează un StyleCollection – fiecare Style încorporat și definit de utilizator atașat documentului. StyleCollection.Count raportează câte stiluri conține, iar DefaultFont / DefaultParagraphFormat descriu formatarea implicită la nivel de document pe care noul conținut o moștenește înainte de a se aplica vreun stil explicit.


Pasul 4: Caută un stil în mod fiabil

Recuperează un stil prin numele său afișat utilizând indexatorul StyleCollection, styles[name]. Pentru stilurile încorporate, preferă același indexator cu o valoare enum StyleIdentifier — styles[sti] — numele sunt localizate, dar valorile StyleIdentifier nu sunt, astfel încât căutarea după identificator funcționează în același mod indiferent de limba documentului. Verifică Style.Aliases pentru nume alternative pe care Word le recunoaște pentru același stil dacă indexatorul nu găsește ceea ce te aștepți, și verifică Style.BuiltIn înainte de a elimina sau redenumi un stil programatic, deoarece stilurile încorporate sunt adesea referențiate prin nume în alte părți ale documentului.


Pasul 5: Aplică un stil la paragrafe sau la run-uri

Obiectele de formatare care conțin un stil expun atât o proprietate Style (obiectul Style în sine), cât și o proprietate StyleName (o scurtătură care rezolvă sau creează un stil după nume). Setează ParagraphFormat.Style sau ParagraphFormat.StyleName pentru a aplica un stil de paragraf, și Font.Style sau Font.StyleName pentru a aplica un stil de caracter la formatarea unui run. Atribuirea lui StyleName cu un nume care nu există deja în colecție creează acel stil — confirmă mai întâi că stilul există cu indexatorul StyleCollection, sau atribuie direct obiectul Style, dacă acesta nu este comportamentul dorit.


Pasul 6: Construiește ierarhii de stiluri

Citește BaseStyleName pentru a găsi stilul de la care un stil dat moștenește formatarea nedefinită, LinkedStyleName pentru un stil de paragraf/caracter asociat (așa cum Word definește stilurile încorporate, de exemplu un titlu și stilul său de caracter legat), și NextParagraphStyleName pentru stilul pe care Word îl atribuie unui paragraf nou tastat după unul care folosește acest stil. Setează BaseStyleName când definești un set de stiluri legate — cum ar fi o familie de stiluri de titlu care ar trebui să moștenească toate alegerile de font de la un stil de bază — în loc să repeți aceeași formatare pentru fiecare stil.


Pasul 7: Creare sau copiere a unui stil

Apelează StyleCollection.Add(type, name) cu un StyleType (Paragraph, Character, Table sau List) și un nume pentru a crea un stil nou, gol, apoi setează proprietățile Font și ParagraphFormat după necesitate. Pentru a duplica un stil existent — inclusiv unul din StyleCollection al unui alt Document — apelează StyleCollection.AddCopy(style) în loc să citești și să reaplici manual fiecare proprietate de formatare. Apelează Style.Remove() pentru a șterge un stil din colecția sa.


Pasul 8: Configurarea stilurilor de tabel și a formatării condiționale

TableStyle extinde Style cu proprietăți de aranjament al tabelului — Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment, și cele patru proprietăți de padding (LeftPadding, RightPadding, TopPadding, BottomPadding) — plus RowStripe și ColumnStripe, care controlează de câte rânduri sau coloane se repetă un model de bandă. Pentru formatarea pe regiuni, configurează TableStyle.ConditionalStyles — un ConditionalStyleCollection care conține un ConditionalStyle pentru fiecare regiune: FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, și cele patru celule de colț (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Fiecare ConditionalStyle are propriile Font, ParagraphFormat, Shading, Borders și padding de celulă, cu Type raportând ce regiune ConditionalStyleType reprezintă; aplică formatarea pe aceste regiuni în loc de rândurile individuale ale tabelului pentru a obține formatare de bandă, de rând antet sau de celulă de colț care supraviețuiește editărilor tabelului.


Pasul 9: Resetarea sau eliminarea formatării

Apelează ConditionalStyle.ClearFormatting() pentru a reseta o regiune condițională, sau ConditionalStyleCollection.ClearFormatting() pentru a reseta toate regiunile de pe un TableStyle simultan. StyleCollection.ClearQuickStyleGallery() elimină toate stilurile din galeria rapidă de stiluri a interfeței Word fără a șterge stilurile în sine — util pentru a micșora galeria fără a afecta conținutul documentului.

Probleme comune și soluții

StyleCollection indexer returnează null pentru o căutare de nume Numele stilului nu există în acest document sau un stil încorporat nu a fost încă utilizat, astfel că Word nu l-a materializat. Verifică Style.Aliases pentru nume alternative sau folosește the StyleCollection indexer cu un StyleIdentifier pentru stiluri încorporate în schimb.

Setarea StyleName creează în mod neașteptat un stil nou StyleName creează stilul numit dacă nu există deja în colecție. Utilizați StyleCollection indexer mai întâi pentru a confirma că stilul există, sau atribuiți Style obiectul direct prin Style proprietatea în loc de StyleName.

Bandarea tabelului nu apare după aplicarea unui TableStyle Regiunile de formatare condiționată – OddRowBanding, EvenRowBanding, și similare – nu au fost niciodată configurate în TableStyle.ConditionalStyles. Setează formatarea pe elementele relevante ConditionalStyle intrări în ConditionalStyleCollection.

O modificare a stilului nu afectează conținutul care deja utilizează stilul Formatarea directă (manuală) aplicată peste stil are prioritate față de setările proprii ale stilului. Elimină formatarea directă din segmentele sau paragrafele afectate, sau setează Style.AutomaticallyUpdate pentru ca stilul să se redefinească din acea formatare manuală.

Căutarea unui stil încorporat eșuează într-un document redactat într-o altă limbă The StyleCollection indexer-ul se potrivește pe numele afișat, care este localizat, când este apelat cu un nume. Folosiți același indexer cu valoarea enum corespunzătoare StyleIdentifier valoarea enum în schimb, deoarece acel identificator este independent de locale.

Întrebări frecvente

Cum pot obține colecția tuturor stilurilor dintr-un document?

Citiți Document.Styles, care returnează un StyleCollection ce conține toate Style încorporate și definite de utilizator din acel document.

Care este diferența dintre Style și StyleIdentifier?

Style este obiectul de stil real cu formatarea sa; StyleIdentifier este o valoare enum independentă de limbă folosită pentru a căuta un stil încorporat specific, indiferent de limba documentului, prin indexatorul StyleCollection.

Cum diferă stilurile de tabel de stilurile de paragraf sau de caracter?

TableStyle este o subclasă a Style care adaugă proprietăți de aranjament al tabelului (Alignment, CellSpacing, padding) și o colecție ConditionalStyles pentru formatare specifică regiunii, cum ar fi rânduri în bandă, rânduri de antet și celule de colț – concepte de formatare care nu se aplică stilurilor de paragraf sau de caracter.

Pot crea un stil complet nou în loc să modific unul existent?

Da – apelează StyleCollection.Add(type, name) cu StyleType dorit și un nume nou pentru a crea un stil gol, apoi setează proprietățile sale de formatare (Font, ParagraphFormat și așa mai departe pentru stilurile de paragraf sau de caracter).

Cum pot duplica un stil, inclusiv dintr-un alt document?

Apelează StyleCollection.AddCopy(style), trecând un obiect Style – care poate proveni dintr-un Document diferit al StyleCollection – pentru a adăuga o copie a acestuia în colecția țintă.

Vezi și:

 Română