Introducere

Aspose.Words FOSS pentru .NET include același model de obiecte de formatare a textului ca motorul comercial Aspose.Words: Font pentru atribute la nivel de rulă, ParagraphFormat pentru atribute la nivel de paragraf, ListFormat pentru liste numerotate și cu marcatori, FrameFormat pentru cadre de text poziționate și Range.Replace pentru căutare-și-înlocuire. Acest ghid se concentrează în mod specific pe acel strat — formatarea și rescrierea textului care există deja într-un document — mai degrabă decât pe construirea structurii unui document de la zero (see the introduction post for an overview of the release).

Biblioteca este licențiată sub MIT, fără dependențe native și vizează .NET Standard 2.0, astfel că rulează pe .NET Framework 4.6.2+ și .NET 6, 8 și 10. Instalați-o prin NuGet, sau construiți-o din sursă (consultați Pornire rapidă mai jos). Tot ce este descris aici funcționează cu .docx, .docm, .dotx, .dotm și fișiere Flat OPC încărcate cu new Document(fileName), sau cu documente construite în memorie cu DocumentBuilder.

Deoarece Aspose.Words FOSS pentru .NET este baza de cod Aspose.Words autentică redusă la un nucleu gratuit, mai degrabă decât o rescriere, modelul de obiecte Font, ParagraphFormat, ListFormat și FrameFormat se transferă direct la Aspose.Words comercial pentru .NET dacă un proiect are nevoie ulterior de aranjament de pagină, randare sau conversiile de format suplimentare pe care această ediție le exclude.


Caracteristici principale

Formatare la nivel de rulă cu Font

Fiecare Run expune o proprietate Font, iar DocumentBuilder.Font stabilește fontul care va fi aplicat textului scris în continuare. În afara evidentei Bold, Italic și Underline (un enum Underline cu valori incluzând Single, Double, Dotted, Dash, Wavy și variantele lor *Heavy), Font acoperă StrikeThrough, DoubleStrikeThrough, Superscript, Subscript, SmallCaps, AllCaps, Hidden, Shadow, Outline, Emboss, Engrave, Color, HighlightColor, Spacing, Position, Kerning, Scaling și EmphasisMark. Font.Style, Font.StyleName și Font.StyleIdentifier leagă o rulă de un stil de caracter, iar Font.ClearFormatting() resetează formatarea directă a unei rulari la valorile implicite ale stilului său. DocumentBuilder expune, de asemenea, Bold, Italic și Underline direct ca scurtături, plus PushFont() și PopFont() pentru a salva și restaura starea curentă a fontului constructorului în jurul unei modificări temporare de formatare.

Formatarea paragrafelor cu ParagraphFormat

ParagraphFormat (accesibil prin Paragraph.ParagraphFormat sau DocumentBuilder.ParagraphFormat) controlează alinierea prin enumul ParagraphAlignment (Left, Center, Right, Justify, Distributed, plus variantele arabe kashida și thailandeze distribuite), indentarea prin LeftIndent, RightIndent și FirstLineIndent (cu echivalente CharacterUnit* pentru aranjamentele est-asiatice), și spațierea prin SpaceBefore, SpaceAfter și LineSpacingRule/LineSpacing. Comportamentul de paginare este controlat cu KeepTogether, KeepWithNext, PageBreakBefore și WidowControl, iar Bidi marchează un paragraf ca fiind de la dreapta la stânga. Tab-urile personalizate sunt stocate în ParagraphFormat.TabStops, un TabStopCollection de obiecte TabStop, fiecare având un Position, un TabAlignment (Left, Center, Right, Decimal, Bar) și un TabLeader (None, Dots, Dashes, Line, Heavy, MiddleDot). La fel ca Font, ParagraphFormat.Style și StyleName leagă paragraful de un Style denumit, iar ClearFormatting() șterge formatarea directă a paragrafului.

Liste cu ListFormat

ListFormat (pe Paragraph.ListFormat sau DocumentBuilder.ListFormat) aplică formatarea de listă unui paragraf: ApplyBulletDefault() și ApplyNumberDefault() îl transformă într-o listă cu puncte sau numerotată implicită, RemoveNumbers() elimină complet formatarea de listă, iar ListIndent()/ListOutdent() îl mută între nivelurile listei. ListFormat.List returnează definiția de bază List, iar ListFormat.ListLevel returnează ListLevel în vigoare pentru acel paragraf, care conține setări pe nivel, cum ar fi NumberStyle, NumberFormat, Alignment (un ListLevelAlignment de Left, Center sau Right), StartAt, RestartAfterLevel, un Font specific nivelului și TrailingCharacter (un ListTrailingCharacter de Tab, Space sau Nothing) care controlează spațiul dintre eticheta listei și textul paragrafului. Noile definiții de listă provin din ListCollection.Add(listTemplate) utilizând una dintre presetările încorporate ListTemplate (BulletDefault, NumberArabicDot, NumberUppercaseRomanDot și altele), sau AddSingleLevelList pentru o listă cu un singur nivel; listele unui document sunt enumerate prin Document.Lists.

Cadre de text cu FrameFormat

Paragraph.FrameFormat este un obiect de raportare numai-citire: fiecare proprietate de pe el reflectă a unui paragraf curent starea cadrului în loc să vă permită să o setați direct. IsFrame raportează dacă paragraful este în prezent un cadru; Width, Height, și HeightRule raportează dimensiunea sa; HorizontalPosition și VerticalPosition, împreună cu RelativeHorizontalPosition și RelativeVerticalPosition, raportați unde este ancorat în raport cu pagina, marginea, coloana sau paragraful; și HorizontalDistanceFromText/VerticalDistanceFromText raportați spațiul dintre cadru și textul corpului înconjurător. HorizontalAlignment și VerticalAlignment raportați cum se aliniază conținutul în interiorul cadrului.

Căutare și înlocuire cu Range și IReplacingCallback

Range.Replace — disponibil pe Document.Range pentru o trecere prin întregul document, sau pe Range al oricărui nod — are suprasarcini pentru o pereche simplă model/înlocuire și pentru o pereche model/înlocuire combinată cu o instanță FindReplaceOptions, suportând potrivirea bazată pe expresii regulate. FindReplaceOptions.MatchCase și FindWholeWordsOnly restricționează ce este considerat potrivire; Direction (FindReplaceDirection.Forward sau Backward) stabilește ordinea de scanare; ApplyFont și ApplyParagraphFormat permit unei treceri de înlocuire să transfere formatarea pe textul înlocuit; și un set de steaguri Ignore* (IgnoreDeleted, IgnoreInserted, IgnoreFields, IgnoreFieldCodes, IgnoreFootnotes, IgnoreStructuredDocumentTags, IgnoreShapes, IgnoreOfficeMath) exclud categorii specifice de conținut din potrivire. Pentru logica de înlocuire pe care un șir fix nu o poate exprima, implementați IReplacingCallback.Replacing(args) și setați-o ca FindReplaceOptions.ReplacingCallback (sau transmite-o unuia dintre constructorii FindReplaceOptions care acceptă direct un callback); parametrul args este un ReplacingArgs care expune Match, MatchNode, MatchOffset și un șir Replacement setabil, astfel încât callback-ul să poată calcula o valoare pentru fiecare potrivire. Un ReplaceAction enum asociat (Replace, Skip, Stop) descrie rezultatele posibile pentru o singură potrivire în timpul operației.


Pornire rapidă

Aspose.Words FOSS pentru .NET este disponibil prin NuGet:

dotnet add package Aspose.Words.FOSS

Pentru a compila din sursă în schimb:

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

Apoi adăugați o referință de proiect la Aspose.Words.csproj. Pentru a formata textul în timp ce îl creați, setați proprietățile DocumentBuilder.Font (Bold, Italic, Underline), proprietățile DocumentBuilder.ParagraphFormat (Alignment, indentări, spațiere) și DocumentBuilder.ListFormat (ApplyBulletDefault(), ApplyNumberDefault()) înainte de a apela Write(), Writeln() sau InsertParagraph() — constructorul aplică starea curentă de formatare la tot ce este scris până când o schimbați din nou, sau înfășurați o modificare temporară în PushFont()/PopFont(). Pentru a reformata sau rescrie textul deja existent într-un document, deschideți-l cu new Document(fileName) și apelați Range.Replace() pe doc.Range — fie supraîncărcarea simplă model/înlocuire, fie supraîncărcarea care primește un FindReplaceOptions cu MatchCase, FindWholeWordsOnly sau un IReplacingCallback personalizat — apoi Save() rezultatul.


Formate suportate

FormatExtensieCiteșteScrie
DOCX.docx
DOCM.docm
DOTX.dotx
DOTM.dotm
Flat OPC (toate variantele)(diverse)
Markdown.md
Text.txt

Clasele de formatare de mai sus se aplică în același mod, indiferent de formatul din care este încărcat sau în care este salvat un document. Această ediție nu suportă DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3 sau WordML pentru citire sau scriere și nu suportă PDF, XPS sau export de imagini, deoarece aranjarea paginii și redarea sunt în afara domeniului său.


Open Source & Licențiere

Aspose.Words FOSS pentru .NET este lansat sub licența MIT, gratuit pentru utilizare comercială și personală, fără redevențe sau restricții de redistribuire. Codul sursă complet, inclusiv implementările Font, ParagraphFormat, ListFormat, FrameFormat și Range descrise mai sus, este disponibil pe GitHub în Aspose.Words FOSS pentru depozitul .NET.


Începeți

Resurse conexe