כיצד לעבוד עם טקסט ב-.NET
מדריך זה מציג כיצד לעבוד עם טקסט ב-Aspose.Words FOSS עבור .NET: עיצוב גופן של רצף, עיצוב פסקה, חיפוש והחלפת טקסט עם Range, הוספת הערה, והפיכת פסקה לפריט רשימה. Aspose.Words FOSS עבור .NET זמין דרך NuGet או על-ידי בנייה מהמקור.
מדריך שלב אחרי שלב
שלב 1: קבל את הספרייה
שכפל את המאגר ובנה Aspose.Words.sln בהגדרת Release, לאחר מכן הוסף הפנייה לפרויקט אל Aspose.Words.csproj מהפרויקט שלך .NET, כפי שמתואר ב מדריך ההתקנה. הוסף using Aspose.Words; בתחילת כל קובץ שעובד עם טקסט.
שלב 2: עצב את גופן הרצף
Run הוא קטע טקסט המשותף למערך עיצוב אחד; המאפיין Text שלו מכיל את תוכן הטקסט הפשוט והמאפיין Font שלו (אובייקט Font) מכיל עיצוב ברמת התו — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, ו-StrikeThrough בין היתר. Font.ClearFormatting() מאפס רצף לברירות המחדל. הרצפים של פסקה זמינים דרך המאפיין Runs שלה, שהוא RunCollection. הגדרת מאפייני גופן על DocumentBuilder.Font לפני כתיבת טקסט חדש היא בדרך כלל פשוטה יותר מאשר לעצב אובייקטים Run בודדים אחרי שהטקסט נכתב.
שלב 3: עיצוב פסקה
Paragraph.ParagraphFormat (אובייקט ParagraphFormat) שולט בתצורת רמת הפסקה: Alignment, מרווחים (LeftIndent, RightIndent, FirstLineIndent), ריווח (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), והתנהגות עימוד (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() מאפס את אלו לברירות המחדל, ו-Paragraph.JoinRunsWithSameFormatting() ממזג רצפים סמוכים הנושאים פורמט זהה — שימושי לאחר סדרת עריכות תכנותיות שמותירות פסקה עם יותר רצפים מהנדרש.
שלב 4: חיפוש והחלפת טקסט בטווח
כל צומת נושא תוכן — Document, Section, Paragraph או Run — חושף Range. Range.Text מחזיר את הטקסט הפשוט של כל מה שנמצא בטווח זה, ו-Range.Replace(pattern, replacement) מבצע חיפוש והחלפה המוגבל רק לטווח זה: קרא לו על Range של Paragraph כדי לשנות טקסט בפסקה אחת בלבד, או על Document.Range כדי לחפש בכל המסמך. Range.Delete() מסיר את תוכן הטווח לחלוטין.
שלב 5: הוספת תגובה
בנה Comment עם new Comment(doc, author, initial, dateTime), הגדר את הטקסט שלו באמצעות SetText(text), ואז הוסף אותו לעץ כמו כל צומת אחר. Comment.AddReply(author, initial, dateTime, text) מצרף תגובה משורשרת — שהיא בעצמה Comment — ו-RemoveReply(reply) / RemoveAllReplies() מסירים תגובות בחזרה. תגובות של מסמך נאספות ב-CommentCollection.
שלב 6: הפיכת פסקה לפריט רשימה
Paragraph.ListFormat (אובייקט ListFormat) מדווח ושולט האם פסקה משתתפת ברשימה: IsListItem ו-ListLevelNumber מדווחים על המצב הנוכחי שלה. ApplyBulletDefault() הופך את הפסקה לפריט תבליטים ברירת מחדל ו-ApplyNumberDefault() לפריט ממוספר ברירת מחדל; ListIndent() / ListOutdent() משנים את רמת ההזחה שלה, ו-RemoveNumbers() מחזיר אותה לפסקה רגילה.
בעיות נפוצות ותיקונים
עיצוב אחד Runהגופן של ’s אינו משנה את הטקסט הסמוך. הטקסט הסמוך הוא שונה Run בעל שלו Font מופע. או לאתר ולעצב כל המושפע Run, או להגדיר עיצוב על DocumentBuilder.Font לפני כתיבת טקסט חדש.
Range.Replace משנה טקסט מחוץ לאזור המתוכנן. Replace הופעל על Document.Range במקום טווח של צומת צר יותר. קראו לו על ה-specific Paragraph or Section שֶׁהַטֶקְסְט שֶׁלּוֹ צריך להשתנות.
פסקה נראית כמו פריט ברשימה עם תבליט אך IsListItem is false. התבליט הוא טקסט מוקלד, לא עיצוב רשימה אמיתי. יש ליישם אותו עם ListFormat.ApplyBulletDefault() במקום זאת.
המסמך מסתיים עם הרבה יותר Run צמתים ממה שציפו. עריכות תכנותיות קטנות חוזרות פוצעות רצפים מבלי לאחד אותם מחדש. יש לקרוא Paragraph.JoinRunsWithSameFormatting() לאחר קבוצת עריכות.
שאלות נפוצות
מה ההבדל בין Run ל-Paragraph?
Run הוא קטע טקסט שמשתף קבוצה אחת של עיצוב תווים (Font). Paragraph הוא צומת מורכב שמכיל אחד או יותר של ריצות בתוספת עיצוב ברמת פסקה (ParagraphFormat).
איך אני קורא את כל הטקסט במסמך או בחלק יחיד?
קרא את המאפיין Text של ה-Range של הצומת — document.Range.Text או section.Range.Text.
איך אני מחליף טקסט בתוך פסקה אחת בלבד, ולא במסמך כולו?
הפעול את Replace(pattern, replacement) על Range של ה-Paragraph הזה, ולא על Document.Range.
איך אני משיב לתגובה קיימת?
הפעול את Comment.AddReply(author, initial, dateTime, text) על המופע המקורי של Comment.
איך אני ממיר פריט ברשימה ממוספרת חזרה לפסקה רגילה?
קרא RemoveNumbers() על ListFormat של הפסקה הזאת.