עבודה עם טקסט
עבודה עם טקסט
הטקסט במסמך Word מאורגן לצמתים Run (תווים רצופים החולקים את אותה עיצוב גופן) הקבוצים בתוך צמתים Paragraph. Aspose.Words FOSS עבור .NET חושף את שניהם ישירות, יחד עם Font לעיצוב תווים, ParagraphFormat לעיצוב ברמת פסקה, ו-Range לקריאה או החלפת טקסט על כל חלק מהעץ. מדריך זה מכסה רצים וגופנים, עיצוב פסקאות, קריאה והחלפת טקסט, הערות, ועיצוב רשימות ברמת פסקה.
רצים ועיצוב תווים
Run מייצג קטע טקסט שחולק סט עיצוב יחיד; המאפיין Text שלו מכיל את תוכן הטקסט הפשוט והמִאפיין Font שלו (אובייקט Font) מכיל עיצוב ברמת תו — Name, Size, Bold, Italic, Underline, Color, HighlightColor, Subscript/Superscript, StrikeThrough, ועוד רבים. Font.ClearFormatting() מאפסת את גופן הרץ לברירות המחדל. הרצים של פסקה זמינים דרך המאפיין Runs שלה, RunCollection.
פסקאות ועיצוב פסקאות
Paragraph הוא צומת מורכב המכיל את הרצים (וכן תוכן פנימי נוסף) של פסקה אחת; הפסקאות של מסמך או גוף נחשפות כ־ParagraphCollection (Body.Paragraphs). Paragraph.ParagraphFormat (אובייקט ParagraphFormat) שולט בתצורת רמת הפסקה — Alignment, הזחות (LeftIndent, RightIndent, FirstLineIndent), ריווח (SpaceBefore, SpaceAfter, LineSpacing, LineSpacingRule), והתנהגות עימוד (KeepTogether, KeepWithNext, PageBreakBefore, WidowControl). ParagraphFormat.ClearFormatting() מאפסת את אלה לברירות המחדל, ו-Paragraph.JoinRunsWithSameFormatting() ממזגת רצפים סמוכים שנושאים עיצוב זהה.
קריאה והחלפת טקסט עם טווח
כל צומת שמכיל תוכן — Document, Section, Paragraph או Run — חושף Range. Range.Text מחזיר את הטקסט הפשוט של כל מה שנמצא בטווח הזה, ו-Range.Replace(pattern, replacement) מבצע חיפוש והחלפה המוגבל רק לטווח הזה, כך שאתה יכול, למשל, להחליף טקסט בתוך פסקה אחת מבלי לשנות את שאר המסמך. Range.Delete() מסיר לחלוטין את תוכן הטווח.
Comments
צומת Comment מעוגן הערה למיקום בטקסט; בנה אחת עם new Comment(doc, author, initial, dateTime) וקבע את טקסט הגוף שלה עם SetText(text), ואז הכנס אותה למסמך כמו כל צומת אחר. Comment.AddReply(author, initial, dateTime, text) מצרף תגובה משורשרת, ו-RemoveReply(reply) / RemoveAllReplies() מסירים אותם. ההערות של מסמך נאספות ב-CommentCollection.
עיצוב רשימות ברמת הפסקה
Paragraph.ListFormat (אובייקט ListFormat) מדווח ושולט האם פסקה היא חלק מרשימה: IsListItem ו-ListLevelNumber מדווחים על המצב הנוכחי שלה, ApplyBulletDefault() ו-ApplyNumberDefault() הופכים פסקה לפריט רשימה מודגש או ממוספר ברירת מחדל, ListIndent() / ListOutdent() משנים את רמת הקידוד של הרשימה, ו-RemoveNumbers() מחזיר אותה לפסקה רגילה.
טיפים ושיטות העבודה הטובות ביותר
- הגדר את מאפייני הגופן ב-
DocumentBuilder.Fontלפני כתיבת הטקסט עם הבונה, במקום לכתוב את הטקסט תחילה ולבצע עיצוב מחדש של עצמיםRunבודדים אחר כך. - הגבל את
Range.Replaceלטווח הקטן ביותר שמכסה את מה שאתה באמת רוצה לשנות — קרא לו בטווח שלParagraphאו שלSectionבמקום על כל המסמך כאשר השינוי אינו אמור לחול על כל המסמך. - הפעל את
Paragraph.JoinRunsWithSameFormatting()לאחר סדרת עריכות תוכנתיות כדי למנוע מבנה רץ מפוצל בצורה מיותרת. - השתמש ב-
ListFormat.ApplyBulletDefault()/ApplyNumberDefault()לקבלת רשימה ברירת מחדל מהירה במקום לבנות הגדרות רשימה ידנית כאשר ברירות המחדל המובנות מספיקות. - קרא את תוצאות
Comment.AddReplyכצמתיםCommentעצמם — תגובות הן אובייקטי תגובה מלאים, ולא מחרוזות רגילות.
בעיות נפוצות
| בעיה | סיבה | תיקון |
|---|---|---|
עיצוב של Run’s Font אינו משנה חזותית את הטקסט הסמוך | הטקסט הסמוך נמצא ב-Run שונה עם מופע Font משלו | אתר ועצב כל Run מושפע, או הגדר עיצוב דרך DocumentBuilder.Font לפני הכתיבה |
Range.Replace משנה טקסט מחוץ לאזור המיועד | הפעולה Replace נקראה על Document.Range במקום על טווח של צומת צומצם | קרא לReplace על ה-Paragraph הספציפי, Section, או על Range של צומת אחרת |
פסקה נראית כפריט ברשימה אך IsListItem אינה נכונה | התבליט/המספר הוא טקסט ידני, לא עיצוב רשימה אמיתי | החל עיצוב רשימה אמיתי באמצעות ListFormat.ApplyBulletDefault() או ApplyNumberDefault() במקום תווים מוקלדים |
למסמך יש הרבה יותר צמתים של Run מהצפוי | עריכות קטנות חוזרות מפצלות רצפים מבלי לאחד אותם מחדש | קרא לParagraph.JoinRunsWithSameFormatting() לאחר קבוצות של עריכות |
FAQ
מה ההבדל בין Run ל-Paragraph?
Run הוא מקטע טקסט שחולק קבוצת עיצוב תווים אחת (Font); Paragraph הוא הצומת המשולב המכיל רץ אחד או יותר (וכן תוכן פנימי נוסף) ועוד עיצוב ברמת פסקה (ParagraphFormat).
איך אני קורא את כל הטקסט במסמך או בחלק?
קרא את המאפיין Text של Range של הצומת — לדוגמה, document.Range.Text או section.Range.Text.
כיצד למצוא ולהחליף טקסט בפסקה אחת בלבד?
הפעל את Replace(pattern, replacement) על Range של Paragraph במקום על Document.Range.
איך להוסיף הערה למסמך?
צור אותו בעזרת new Comment(doc, author, initial, dateTime), הגדר את הטקסט שלו בעזרת SetText(text), והכנס אותו לעץ; השב אליו בעזרת Comment.AddReply(author, initial, dateTime, text).
איך להפוך פסקה לפריט ברשימת תבליטים?
הפעל את ApplyBulletDefault() על ListFormat של הפסקה; השתמש בApplyNumberDefault() עבור רשימה ממוספרת במקום זאת.
API Reference סיכום
| מחלקה/מתודה | תיאור |
|---|---|
Run | קטע טקסט החולק קבוצה אחת של עיצוב תווים. |
Font | עיצוב ברמת התו — שם, גודל, מודגש, נטוי, צבע, ועוד. |
Paragraph | צומת מורכב המכיל את הרצפים והעיצוב של פסקה אחת. |
ParagraphFormat | עיצוב ברמת הפסקה — יישור, הזחות, ריווח, דפדוף. |
ParagraphCollection | אוסף Typed של צמתים Paragraph, לדוגמה Body.Paragraphs. |
Range | אזור רציף במסמך; תומך ב-Text, Replace ו-Delete. |
Comment | הערה משורשרת שמעוגנת במיקום בטקסט. |
CommentCollection | אוסף ההערות של המסמך. |
ListFormat | שולט אם וכיצד פסקה משתתפת ברשימה. |