מבוא

Aspose.Words FOSS עבור .NET כולל את מודל האובייקטים לעיצוב טקסט זהה למנוע המסחרי Aspose.Words: Font עבור תכונות ברמת ריצה, ParagraphFormat עבור תכונות ברמת פסקה, ListFormat עבור רשימות ממוספרות ובולטים, FrameFormat עבור מסגרות טקסט ממוקמות, ו-Range.Replace עבור חיפוש והחלפה. מדריך זה מתמקד ספציפית בשכבה זו — עיצוב וכתיבה מחדש של טקסט שכבר קיים במסמך — ולא בבניית מבנה המסמך מאפס (ראו את פוסט המבוא לקבלת סקירה של השחרור).

הספרייה מורשית ברישיון MIT ללא תלותיות מקומיות ומכוונת ל-.NET Standard 2.0, ולכן היא פועלת על .NET Framework 4.6.2+ ו-.NET 6, 8, ו-10. התקינו אותה דרך NuGet, או בנו אותה מהמקור (ראו את התחלה מהירה למטה). כל מה שמתואר כאן פועל נגד .docx, .docm, .dotx, .dotm, וקבצי Flat OPC שנטענים עם new Document(fileName), או נגד מסמכים שנבנים בזיכרון עם DocumentBuilder.

מאחר ש-Aspose.Words FOSS עבור .NET הוא הבסיס האמיתי של הקוד Aspose.Words מצומצם לליבה חופשית ולא כתיבה מחדש, מודל האובייקטים של Font, ParagraphFormat, ListFormat ו-FrameFormat מועבר ישירות למנוע המסחרי Aspose.Words עבור .NET אם פרויקט מאוחר יותר זקוק לפריסת עמודים, רינדור, או למפענחים נוספים של פורמטים שהגרסה הזאת אינה כוללת.


תכונות מרכזיות

עיצוב ברמת ריצה עם גופן

כל Run חושף את המאפיין Font, ו-DocumentBuilder.Font מגדיר את הגופן שיוחל על הטקסט שייכתב לאחר מכן. מלבד ה-Bold, Italic, ו-Underline המובהרים (enum של Underline עם ערכים כולל Single, Double, Dotted, Dash, Wavy, והגרסאות *Heavy שלהם), Font מכסה את StrikeThrough, DoubleStrikeThrough, Superscript, Subscript, SmallCaps, AllCaps, Hidden, Shadow, Outline, Emboss, Engrave, Color, HighlightColor, Spacing, Position, Kerning, Scaling, ו-EmphasisMark. Font.Style, Font.StyleName, ו-Font.StyleIdentifier מקשרים רץ חזרה לסגנון תו, ו-Font.ClearFormatting() מאפס עיצוב ישיר של רץ בחזרה לברירות המחדל של הסגנון שלו. DocumentBuilder גם חושף את Bold, Italic, ו-Underline ישירות כקיצורים, בנוסף ל-PushFont() ו-PopFont() לשמירת ושחזור מצב הגופן הנוכחי של הבונה סביב שינוי עיצוב זמני.

עיצוב פסקה עם ParagraphFormat

ParagraphFormat (ניתן להגיע דרך Paragraph.ParagraphFormat או DocumentBuilder.ParagraphFormat) שולט ביישור דרך האינום ParagraphAlignment (Left, Center, Right, Justify, Distributed, בתוספת וריאנטים של קשידה ערבית וגרסאות מבוזרות בתאילנד), הזחה דרך LeftIndent, RightIndent, ו-FirstLineIndent (עם מקבילים CharacterUnit* לפריסות מזרח-אסייתיות), וריווח דרך SpaceBefore, SpaceAfter, ו-LineSpacingRule/LineSpacing. התנהגות העימוד נשלטת באמצעות KeepTogether, KeepWithNext, PageBreakBefore, ו-WidowControl, ו-Bidi מסמן פסקה כימין-לשמאל. נקודות העצירה המותאמות אישית קיימות ב-ParagraphFormat.TabStops, TabStopCollection של עצמים TabStop, שכל אחד כולל Position, TabAlignment (Left, Center, Right, Decimal, Bar), ו-TabLeader (None, Dots, Dashes, Line, Heavy, MiddleDot). כפי ש-Font עושה, ParagraphFormat.Style ו-StyleName מקשרים את הפסקה ל-Style בשם, ו-ClearFormatting() מנקה עיצוב פסקה ישיר.

רשימות עם ListFormat

ListFormat (ב-Paragraph.ListFormat או DocumentBuilder.ListFormat) מיישם עיצוב רשימה על פסקה: ApplyBulletDefault() ו-ApplyNumberDefault() מעבירים אותה לרשימה עם תבליטים או ממוספרת ברירת מחדל, RemoveNumbers() מסיר את עיצוב הרשימה לחלוטין, ו-ListIndent()/ListOutdent() מעבירים אותה בין רמות רשימה. ListFormat.List מחזיר את ההגדרה הבסיסית של List, ו-ListFormat.ListLevel מחזיר את ה-ListLevel בתוקף עבור הפסקה הזו, שמכילה הגדרות לכל רמה כגון NumberStyle, NumberFormat, Alignment (‏ListLevelAlignment של Left, Center, או Right), StartAt, RestartAfterLevel, Font ספציפית לרמה, ו-TrailingCharacter (‏ListTrailingCharacter של Tab, Space, או Nothing) השולטת בפער בין תווית הרשימה לטקסט הפסקה. הגדרות רשימה חדשות נוצרות מ-ListCollection.Add(listTemplate) באמצעות אחת מהתבניות המובנות של ListTemplate (BulletDefault, NumberArabicDot, NumberUppercaseRomanDot, וכדומה), או AddSingleLevelList לרשימה חד-רמתית; רשימות המסמך מתוארכות דרך Document.Lists.

מסגרות טקסט עם FrameFormat

Paragraph.FrameFormat הוא אובייקט דיווח לקריאה בלבד: כל מאפיין בו משקף של פסקה נוכחי מצב מסגרת במקום לאפשר לך להגדיר אותו ישירות. IsFrame מדווח האם הפסקה היא כרגע מסגרת; Width, Height, ו HeightRule מדווח על הגודל שלו; HorizontalPosition ו VerticalPosition, יחד עם RelativeHorizontalPosition ו RelativeVerticalPosition, דווח היכן הוא מעוגן יחסית לדף, לשוליים, לעמוד או לפסקה; ו HorizontalDistanceFromText/VerticalDistanceFromText דווח על הפער בין המסגרת לטקסט הגוף הסביבתי. HorizontalAlignment ו VerticalAlignment דווח כיצד התוכן מיושר בתוך המסגרת.

חיפוש והחלפה עם טווח ו-IReplacingCallback

Range.Replace — זמין ב-Document.Range עבור מעבר על כל המסמך, או ב-Range של כל צומת — כולל עומסים לזוג תבנית/החלפה פשוט וזוג תבנית/החלפה משולב עם מופע של FindReplaceOptions, התומך בהתאמה מבוססת regex. FindReplaceOptions.MatchCase ו-FindWholeWordsOnly מצמצמים מה נחשב להתאמה; Direction (FindReplaceDirection.Forward או Backward) מגדיר סדר סריקה; ApplyFont ו-ApplyParagraphFormat מאפשרים למעבר החלפה להעביר עיצוב לטקסט ההחלפה; וקבוצה של דגלי Ignore* (IgnoreDeleted, IgnoreInserted, IgnoreFields, IgnoreFieldCodes, IgnoreFootnotes, IgnoreStructuredDocumentTags, IgnoreShapes, IgnoreOfficeMath) מוחקים קטגוריות תוכן ספציפיות מההתאמה. עבור לוגיקת החלפה שמחרוזת קבועה אינה יכולה לבטא, מיישמים את IReplacingCallback.Replacing(args) ומגדירים אותו כ-FindReplaceOptions.ReplacingCallback (או מעבירים אותו לאחד מהקונסטרוקטורים של FindReplaceOptions המקבלים callback ישירות); הפרמטר args הוא ReplacingArgs שחושף את Match, MatchNode, MatchOffset, ואת מחרוזת Replacement שניתנת להגדרה כך שה-callback יכול לחשב ערך לכל התאמה. enum קשור ReplaceAction (Replace, Skip, Stop) מתאר את התוצאות האפשריות להתאמה בודדת במהלך הפעולה.


התחלה מהירה

Aspose.Words FOSS עבור .NET זמין דרך NuGet:

dotnet add package Aspose.Words.FOSS

כדי לבנות מהמקור במקום זאת:

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

אז הוסף הפנייה לפרויקט ל-Aspose.Words.csproj. כדי לעצב טקסט בזמן הכתיבה, קבע את מאפייני DocumentBuilder.Font (Bold, Italic, Underline), מאפייני DocumentBuilder.ParagraphFormat (Alignment, הזחות, ריווח), ו-DocumentBuilder.ListFormat (ApplyBulletDefault(), ApplyNumberDefault()) לפני קריאה ל-Write(), Writeln() או InsertParagraph() — הבונה מיישמת את מצב העיצוב הנוכחי על כל מה שנכתב עד לשינוי נוסף, או לעטוף שינוי זמני ב-PushFont()/PopFont(). כדי לעצב מחדש או לשכתב טקסט שכבר נמצא במסמך, פתח אותו עם new Document(fileName) וקרא ל-Range.Replace() על doc.Range — אם דרך ההצפה הפשוטה של תבנית/החלפה, או ההצפה שמקבלת FindReplaceOptions עם MatchCase, FindWholeWordsOnly, או IReplacingCallback מותאם אישית — ואז Save() את התוצאה.


פורמטים נתמכים

פורמטסיומתקראכתוב
DOCX.docx
DOCM.docm
DOTX.dotx
DOTM.dotm
Flat OPC (כל הווריאנטים)(שונות)
Markdown.md
Text.txt

מחלקות העיצוב שלמעלה פועלות באותו אופן ללא קשר לאיזה מהפורמטים האלה נטען המסמך או נשמר. גרסה זו אינה תומכת ב-DOC, RTF, ODT, HTML, EPUB, MHTML, MOBI, AZW3, או WordML לקריאה או כתיבה, וכמו כן אינה תומכת ב-PDF, XPS, או ייצוא תמונות, מכיוון שסידור העמוד והצגת התוכן נמצאים מחוץ לתחום הפעולה שלה.


קוד פתוח ורישוי

Aspose.Words FOSS עבור .NET נמצא תחת רישיון MIT, חינמי לשימוש מסחרי ואישי ללא תמלוגים או מגבלות הפצה מחדש. הקוד המלא, כולל המימושים של Font, ParagraphFormat, ListFormat, FrameFormat ו-Range המתוארים למעלה, זמין בGitHub בAspose.Words FOSS עבור .NET repository.


התחלה

משאבים קשורים