Inleiding
Aspose.Words FOSS voor .NET omvat hetzelfde objectmodel voor tekstopmaak als de commerciële Aspose.Words engine: Font voor run-niveau attributen, ParagraphFormat voor alinea-niveau attributen, ListFormat voor genummerde en opsommingstekens lijsten, FrameFormat voor gepositioneerde tekstkaders, en Range.Replace voor zoeken-en-vervangen. Deze gids richt zich specifiek op die laag — het opmaken en herschrijven van tekst die al in een document bestaat — in plaats van het vanaf nul opbouwen van de documentstructuur (zie het introductie-post voor een overzicht van de release).
De bibliotheek is MIT-gelicenseerd zonder native afhankelijkheden en richt zich op .NET Standard 2.0, zodat hij draait op .NET Framework 4.6.2+ en .NET 6, 8 en 10. Installeer het via NuGet, of bouw het vanuit de bron (zie Snelstart hieronder). Alles wat hier beschreven wordt werkt met .docx, .docm, .dotx, .dotm en Flat OPC-bestanden geladen met new Document(fileName), of met documenten die in het geheugen zijn opgebouwd met DocumentBuilder.
Omdat Aspose.Words FOSS voor .NET de echte Aspose.Words codebase is, gereduceerd tot een gratis core in plaats van een herschrijving, wordt het Font, ParagraphFormat, ListFormat en FrameFormat objectmodel direct overgenomen in de commerciële Aspose.Words voor .NET als een project later paginalay-out, rendering of de extra formaatconversies nodig heeft die deze editie uitsluit.
Belangrijkste functies
Run-niveau opmaak met lettertype
Elke Run biedt een Font eigenschap, en DocumentBuilder.Font stelt het lettertype in dat wordt toegepast op de daarna geschreven tekst. Naast de voor de hand liggende Bold, Italic en Underline (een Underline enum met waarden waaronder Single, Double, Dotted, Dash, Wavy, en hun *Heavy varianten), behandelt Font StrikeThrough, DoubleStrikeThrough, Superscript, Subscript, SmallCaps, AllCaps, Hidden, Shadow, Outline, Emboss, Engrave, Color, HighlightColor, Spacing, Position, Kerning, Scaling en EmphasisMark. Font.Style, Font.StyleName en Font.StyleIdentifier koppelen een run terug aan een tekenstijl, en Font.ClearFormatting() reset de directe opmaak van een run naar de standaardwaarden van de stijl. DocumentBuilder biedt ook Bold, Italic en Underline direct als sneltoetsen, plus PushFont() en PopFont() om de huidige lettertype-status van de builder op te slaan en te herstellen rond een tijdelijke opmaakwijziging.
Alinea-opmaak met ParagraphFormat
ParagraphFormat (bereikbaar via Paragraph.ParagraphFormat of DocumentBuilder.ParagraphFormat) regelt de uitlijning via de ParagraphAlignment enum (Left, Center, Right, Justify, Distributed, plus Arabische kashida- en Thais-gedistribueerde varianten), inspringen via LeftIndent, RightIndent en FirstLineIndent (met CharacterUnit* equivalenten voor Oost-Aziatische lay-outs), en spatiëring via SpaceBefore, SpaceAfter en LineSpacingRule/LineSpacing. Paginering wordt gecontroleerd met KeepTogether, KeepWithNext, PageBreakBefore en WidowControl, en Bidi markeert een alinea als rechts-naar-links. Aangepaste tabstops staan in ParagraphFormat.TabStops, een TabStopCollection van TabStop objecten, elk met een Position, een TabAlignment (Left, Center, Right, Decimal, Bar), en een TabLeader (None, Dots, Dashes, Line, Heavy, MiddleDot). Zoals bij Font, koppelen ParagraphFormat.Style en StyleName de alinea aan een benoemde Style, en ClearFormatting() verwijdert directe alinea-opmaak.
Lijsten met ListFormat
ListFormat (op Paragraph.ListFormat of DocumentBuilder.ListFormat) past lijstopmaak toe op een alinea: ApplyBulletDefault() en ApplyNumberDefault() schakelen deze naar een standaard opsomming met opsommingstekens of een genummerde lijst, RemoveNumbers() verwijdert de lijstopmaak volledig, en ListIndent()/ListOutdent() verplaatsen deze tussen lijstniveaus. ListFormat.List geeft de onderliggende List definitie terug, en ListFormat.ListLevel geeft de ListLevel terug die van toepassing is op die alinea, die per-niveau instellingen bevat zoals NumberStyle, NumberFormat, Alignment (een ListLevelAlignment van Left, Center of Right), StartAt, RestartAfterLevel, een niveau-specifieke Font, en TrailingCharacter (een ListTrailingCharacter van Tab, Space of Nothing) die de ruimte tussen het lijstlabel en de alinea-tekst regelt. Nieuwe lijstdefinities komen van ListCollection.Add(listTemplate) met gebruik van een van de ingebouwde ListTemplate presets (BulletDefault, NumberArabicDot, NumberUppercaseRomanDot en soortgelijke), of AddSingleLevelList voor een één-nivo lijst; de lijsten van een document worden opgesomd via Document.Lists.
Tekstframes met FrameFormat
Paragraph.FrameFormat is een alleen-lezen rapportage-object: elke eigenschap ervan weerspiegelt een alinea’s huidige frame-status in plaats van je toe te staan het direct in te stellen. IsFrame rapporteert of de alinea momenteel een frame is; Width, Height, en HeightRule rapporteert de grootte; HorizontalPosition en VerticalPosition, samen met RelativeHorizontalPosition en RelativeVerticalPosition, rapporteer waar het is verankerd ten opzichte van de pagina, marge, kolom of alinea; en HorizontalDistanceFromText/VerticalDistanceFromText rapporteer de ruimte tussen het frame en de omringende hoofdtekst. HorizontalAlignment en VerticalAlignment rapporteer hoe de inhoud uitgelijnd is binnen het frame.
Zoeken en vervangen met bereik en IReplacingCallback
Range.Replace — beschikbaar op Document.Range voor een doorloop van het volledige document, of op de Range van elk knooppunt — heeft overloads voor een eenvoudig patroon/vervangingspaar en voor een patroon/vervangingspaar gecombineerd met een FindReplaceOptions instantie, die regex-gebaseerde matching ondersteunt. FindReplaceOptions.MatchCase en FindWholeWordsOnly beperken wat als een overeenkomst telt; Direction (FindReplaceDirection.Forward of Backward) bepaalt de scanvolgorde; ApplyFont en ApplyParagraphFormat laten een vervangingspass de opmaak overbrengen op de vervangende tekst; en een set van Ignore* vlaggen (IgnoreDeleted, IgnoreInserted, IgnoreFields, IgnoreFieldCodes, IgnoreFootnotes, IgnoreStructuredDocumentTags, IgnoreShapes, IgnoreOfficeMath) sluiten specifieke inhoudscategorieën van de overeenkomst uit. Voor vervangingslogica die een vaste tekenreeks niet kan uitdrukken, implementeer IReplacingCallback.Replacing(args) en stel deze in als FindReplaceOptions.ReplacingCallback (of geef deze door aan een van de FindReplaceOptions constructors die een callback direct accepteren); de args parameter is een ReplacingArgs die Match, MatchNode, MatchOffset blootlegt, en een instelbare Replacement tekenreeks zodat de callback een waarde per overeenkomst kan berekenen. Een verwante ReplaceAction enum (Replace, Skip, Stop) beschrijft de mogelijke uitkomsten voor een enkele overeenkomst tijdens de bewerking.
Snelstart
Aspose.Words FOSS voor .NET is beschikbaar via NuGet:
dotnet add package Aspose.Words.FOSSOm in plaats daarvan vanuit de bron te bouwen:
git clone https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git
cd Aspose.Words-FOSS-for-.NET
dotnet build Aspose.Words.sln -c Release
Voeg vervolgens een projectreferentie toe aan Aspose.Words.csproj. Om tekst te formatteren terwijl je deze maakt, stel DocumentBuilder.Font eigenschappen (Bold, Italic, Underline), DocumentBuilder.ParagraphFormat eigenschappen (Alignment, inspringingen, spatiëring), en DocumentBuilder.ListFormat (ApplyBulletDefault(), ApplyNumberDefault()) in voordat je Write(), Writeln() of InsertParagraph() aanroept — de builder past zijn huidige formatteringsstatus toe op alles wat geschreven wordt totdat je het opnieuw wijzigt, of wikkel een tijdelijke wijziging in PushFont()/PopFont(). Om tekst die al in een document staat te herformatteren of te herschrijven, open je deze met new Document(fileName) en roep je Range.Replace() aan op doc.Range — ofwel de eenvoudige patroon/vervangings-overload, of de overload die een FindReplaceOptions neemt met MatchCase, FindWholeWordsOnly, of een aangepaste IReplacingCallback — en vervolgens Save() je het resultaat.
Ondersteunde indelingen
| Formaat | Extensie | Lezen | Schrijf |
|---|---|---|---|
| DOCX | .docx | ✓ | ✓ |
| DOCM | .docm | ✓ | ✓ |
| DOTX | .dotx | ✓ | ✓ |
| DOTM | .dotm | ✓ | ✓ |
| Flat OPC (alle varianten) | (diverse) | ✓ | ✓ |
| Markdown | .md | ✓ | ✓ |
| Text | .txt | ✓ | ✓ |
De bovenstaande formatteringsklassen werken op dezelfde manier, ongeacht uit welk van deze indelingen een document wordt geladen of waarin het wordt opgeslagen. Deze editie ondersteunt geen DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3, of WordML voor lezen of schrijven, en ondersteunt geen PDF, XPS, of afbeeldingsexport, omdat paginalay-out en rendering buiten de reikwijdte ervan vallen.
Open source & licenties
Aspose.Words FOSS voor .NET is uitgebracht onder de MIT-licentie, gratis voor commercieel en persoonlijk gebruik zonder royalty’s of beperkingen op herdistributie. De volledige broncode, inclusief de Font, ParagraphFormat, ListFormat, FrameFormat en Range implementaties die hierboven worden beschreven, is beschikbaar op GitHub in de Aspose.Words FOSS voor .NET repository.