Hur man arbetar med stilar i .NET

Hur man arbetar med stilar i .NET

Den här guiden visar hur du söker upp, tillämpar och skapar stycke-, tecken-, tabell- och liststilar i Aspose.Words FOSS för .NET, med Style, StyleCollection, och TableStyle klasser. Den behandlar läsning av ett dokuments stilsamling, pålitlig uppslagning av stilar över språk, tillämpning av stilar på stycken och körningar, skapande och kopiering av stilar samt konfiguration av regionsspecifik villkorsstyrd formatering av tabellstilar.

Steg-för-steg-guide

Steg 1: Installera paketet

Aspose.Words FOSS för .NET har ännu inte publicerat ett NuGet paket – bygg biblioteket från källkoden istället. Klona https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git, bygg sedan Aspose.Words.sln i Release-konfiguration med .NET SDK och referera den resulterande Aspose.Words samlingen från ditt projekt. Biblioteket riktar sig mot .NET Standard 2.0, så det körs på .NET Framework 4.6.2+ och .NET 6/8/10.


Steg 2: Importera nödvändiga klasser

Lägg till en using Aspose.Words; direktiv – Style, StyleCollection, TableStyle, StyleType, StyleIdentifier, ConditionalStyle, ConditionalStyleCollection och ConditionalStyleType finns alla i Aspose.Words namnrymden tillsammans med Document.


Steg 3: Läs ett dokuments stilsamling

Document.Styles returnerar en StyleCollection – varje inbyggd och användardefinierad Style som är knuten till dokumentet. StyleCollection.Count rapporterar hur många stilar den innehåller, och DefaultFont / DefaultParagraphFormat beskriver den dokumentomfattande standardformateringen som nytt innehåll ärver innan någon explicit stil tillämpas.


Steg 4: Sök upp en stil på ett tillförlitligt sätt

Hämta en stil med dess visningsnamn med hjälp av StyleCollection-indexeraren, styles[name]. För inbyggda stilar, föredra samma indexerare med ett StyleIdentifier enum-värde istället – styles[sti] – namn är lokalanpassade, men StyleIdentifier-värden är inte det, så uppslagning med identifierare fungerar på samma sätt oavsett dokumentets språk. Kontrollera Style.Aliases för alternativa namn som Word känner igen för samma stil om indexeraren inte hittar det du förväntar dig, och kontrollera Style.BuiltIn innan du tar bort eller byter namn på en stil programatiskt, eftersom inbyggda stilar ofta refereras till med namn på andra ställen i dokumentet.


Steg 5: Tillämpa en stil på stycken eller körningar

Formateringsobjekt som bär en stil exponerar både en Style-egenskap (själva Style-objektet) och en StyleName-egenskap (en genväg som löser upp eller skapar en stil efter namn). Ange ParagraphFormat.Style eller ParagraphFormat.StyleName för att tillämpa en stycke-stil, och Font.Style eller Font.StyleName för att tillämpa en teckenstil på ett runs formatering. Att tilldela StyleName ett namn som ännu inte finns i samlingen skapar den stilen – bekräfta först att stilen finns med StyleCollection-indexeraren, eller tilldela Style-objektet direkt, om det inte är avsedd funktion.


Steg 6: Bygg stilhierarkier

Läs BaseStyleName för att hitta den stil som en given stil ärver odefinierad formatering från, LinkedStyleName för en ihopparad stycke-/teckenstil (såsom Word definierar för inbyggda stilar som en rubrik och dess länkade teckenstil), och NextParagraphStyleName för den stil som Word tilldelar ett nytt stycke som skrivs efter ett stycke som använder denna stil. Ange BaseStyleName när du definierar en uppsättning relaterade stilar – till exempel en familj av rubrikstilar som alla ska ärva teckensnittsval från en basstil – istället för att upprepa samma formatering på varje stil.


Steg 7: Skapa eller kopiera en stil

Anropa StyleCollection.Add(type, name) med en StyleType (Paragraph, Character, Table eller List) och ett namn för att skapa en ny, tom stil, sätt sedan dess Font och ParagraphFormat egenskaper efter behov. För att duplicera en befintlig stil – inklusive en från en annan Documents StyleCollection – anropa StyleCollection.AddCopy(style) istället för att manuellt läsa av och återapplicera varje formateringsegenskap. Anropa Style.Remove() för att ta bort en stil från dess samling.


Steg 8: Konfigurera tabellstilar och villkorlig formatering

TableStyle utökar Style med tabellayoutsegenskaper – Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment och de fyra utfyllningsegenskaperna (LeftPadding, RightPadding, TopPadding, BottomPadding) – samt RowStripe och ColumnStripe, som styr hur många rader eller kolumner ett bandningsmönster upprepas över. För formatering per region, konfigurera TableStyle.ConditionalStyles – en ConditionalStyleCollection som innehåller en ConditionalStyle per region: FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding och de fyra hörncellerna (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). Varje ConditionalStyle har sina egna Font, ParagraphFormat, Shading, Borders och cellutfyllning, med Type som rapporterar vilken ConditionalStyleType region den representerar; ställ in formatering på dessa regioner snarare än på enskilda tabellrader för att få bandad, rubrikrad- eller hörncellsformatering som överlever tabellredigeringar.


Steg 9: Återställ eller ta bort formatering

Anropa ConditionalStyle.ClearFormatting() för att återställa en villkorlig region, eller ConditionalStyleCollection.ClearFormatting() för att återställa alla regioner på en TableStyle på en gång. StyleCollection.ClearQuickStyleGallery() tar bort alla stilar från Word-gränssnittets snabbstils-galleri utan att radera själva stilarna – användbart för att minska galleriet utan att röra dokumentinnehållet.

Vanliga problem och lösningar

StyleCollection indexer returnerar null för en namnuppslagning Stilnamnet finns inte i detta dokument, eller så har en inbyggd stil ännu inte använts, så Word har inte materialiserat den. Kontrollera Style.Aliases för alternativa namn, eller använd the StyleCollection indexer med en StyleIdentifier för inbyggda stilar istället.

Inställning av StyleName skapar oväntat en ny stil StyleName skapar den namngivna stilen om den inte redan finns i samlingen. Använd StyleCollection indexer först för att bekräfta att stilen finns, eller tilldela Style objektet direkt via Style egenskapen istället för StyleName.

Tabellbandning visas inte efter att ha tillämpat en TableStyle De villkorliga formateringsområdena – OddRowBanding, EvenRowBanding, och liknande – konfigurerades aldrig på TableStyle.ConditionalStyles. Ställ in formatering på den relevanta ConditionalStyle poster i ConditionalStyleCollection.

En stiländring påverkar inte innehåll som redan använder stilen Direkt (manuell) formatering som tillämpas ovanpå stilen har företräde framför stilens egna inställningar. Rensa direkt formatering på de påverkade körningarna eller styckena, eller ställ in Style.AutomaticallyUpdate så att stilen omdefinierar sig själv utifrån den manuella formateringen.

En inbyggd stiluppslagning misslyckas i ett dokument som skapats på ett annat språk Den StyleCollection indexer matchar på visningsnamnet, som är lokalanpassat, när den anropas med ett namn. Använd samma indexer med det motsvarande StyleIdentifier enum-värde istället, eftersom den identifieraren är språkoberoende.

Vanliga frågor

Hur får jag samlingen av alla stilar i ett dokument?

Läs Document.Styles, som returnerar en StyleCollection som innehåller alla inbyggda och användardefinierade Style i det dokumentet.

Vad är skillnaden mellan Style och StyleIdentifier?

Style är det faktiska stilobjektet med dess formatering; StyleIdentifier är ett lokalt oberoende enum-värde som används för att slå upp en specifik inbyggd stil oavsett dokumentets språk, via StyleCollection indexeraren.

Hur skiljer sig tabellstilar från paragraf- eller teckenstilar?

TableStyle är en underklass av Style som lägger till tabell-layout-egenskaper (Alignment, CellSpacing, padding) och en ConditionalStyles samling för regionsspecifik formatering såsom bandade rader, rubrikrader och hörnceller – formateringskoncept som inte gäller för paragraf- eller teckenstilar.

Kan jag skapa en helt ny stil istället för att ändra en befintlig?

Ja – anropa StyleCollection.Add(type, name) med önskad StyleType och ett nytt namn för att skapa en tom stil, och sätt sedan dess formateringsegenskaper (Font, ParagraphFormat och så vidare för paragraf- eller teckenstilar).

Hur duplicerar jag en stil, inklusive från ett annat dokument?

Anropa StyleCollection.AddCopy(style), och skicka ett Style objekt – som kan komma från en annan Documents StyleCollection – för att lägga till en kopia av den i mål-samlingen.

Se även

 Svenska