עבודה עם סגנונות

עבודה עם סגנונות

עבודה עם סגנונות

מדריך זה מציג כיצד לעבוד עם סגנונות פסקה, תו, טבלה ורשימה ב Aspose.Words קוד פתוח חופשי עבור .NET — חיפוש ויישום של סגנונות מובנים ומותאמים אישית, והגדרת עיצוב מותנה לפי אזור על סגנונות טבלה.

אובייקט Style מייצג סגנון יחיד מובנה או מוגדר על ידי המשתמש — אוסף בעל שם של עיצוב פסקה, גופן ועיצוב רשימות ש-Word מחיל כאשר פסקה או רצף מוקצים לסגנון זה. כל מסמך חושף את הסגנונות שלו דרך המאפיין Document.Styles, שמחזיר StyleCollection. סגנונות טבלה מיוצגים על ידי TableStyle, תת-מחלקה של Style שמוסיפה עיצוב ספציפי לטבלה ועיצוב מותנה לפי אזור באמצעות ConditionalStyleCollection.


סוגי סגנונות וזיהוי

לכל Style יש מאפיין Type מסוג StyleType, שהוא אחד מ-Paragraph, Character, Table או List — המתאים לארבעת סוגי הסגנונות ש-Word תומך בהם. סגנונות מובנים נושאים גם ערך enum StyleIdentifier שאינו תלוי במיקום (לדוגמה ערכים המתאימים לכותרות, הדגשה וסגנונות קישורים) כך שהקוד יכול לחפש סגנון מובנה מבלי להסתמך על שם התצוגה שלו בשפה מסוימת. שם קריא לבני אדם של סגנון זמין דרך Style.Name, ו-Style.Aliases מחזיר כל שם חלופי שה-Word מזהה עבור אותו סגנון. Style.BuiltIn מדווח האם הסגנון מגיע עם Word עצמו או מוגדר במסמך, ו-Style.IsHeading מדווח האם הסגנון הוא אחד מסגנונות הכותרת המובנים.

גישה וניהול אוסף הסגנונות

StyleCollection הוא האוסף של כל אובייקטי Style — מובנים ומותאמים אישית — המחוברים למסמך, הנגיש דרך Document.Styles. ניתן לאחזר סגנון לפי שם התצוגה שלו באמצעות האינדקסר StyleCollection — styles[name] — או לאחזר סגנון מובנה לפי StyleIdentifier שאינו תלוי במיקום באמצעות אותו אינדקסר — styles[sti] — שהינו אמין יותר מחיפוש בשם בין מסמכים שנכתבו בשפות שונות. סגנונות חדשים נוצרות באמצעות StyleCollection.Add(type, name), תוך ציון StyleType ושם, וניתן לשכפל סגנון קיים אל האוסף באמצעות StyleCollection.AddCopy(style). StyleCollection.Count מדווח כמה סגנונות מכיל המסמך, והאוסף גם חושף את DefaultFont ו-DefaultParagraphFormat, המתארים את העיצוב ברירת המחדל ברמת המסמך שהקוד החדש יורש לפני שמוחל סגנון מפורש. StyleCollection.ClearQuickStyleGallery() מסיר את כל הסגנונות מתצוגת הסגנונות המהירה של ממשק Word מבלי למחוק את הסגנונות עצמם.

החלת סגנונות על פסקאות והרצות

עצמים פורמטיים שיכולים לשאת סגנון חושפים גם מאפיין Style (העצם Style עצמו) וגם מאפיין StyleName (קיצור שמפענח או יוצר סגנון לפי שם). ParagraphFormat.Style ו-ParagraphFormat.StyleName מחילים סגנון פסקה, בעוד Font.Style ו-Font.StyleName מחילים סגנון תו על העיצוב של הרצה. המאפיינים LinkedStyleName, BaseStyleName ו-NextParagraphStyleName של סגנון מתארים איך הוא קשור לסגנונות אחרים: BaseStyleName מציין את הסגנון שממנו הוא יורש עיצוב שלא הוגדר, LinkedStyleName מציין סגנון פסקה/תו משותף (כפי ש-Word עושה עבור סגנונות מובנים כמו Heading 1 והסגנון המקושר שלו), ו-NextParagraphStyleName מציין את הסגנון ש-Word מקצה לפסקה חדשה המוקלדת אחרי פסקה שמשתמשת בסגנון זה.

סגנונות טבלאות ועיצוב מותנה

TableStyle מרחיב את Style עם תכונות פריסת טבלה כגון Alignment, CellSpacing, LeftIndent, Shading, VerticalAlignment, ו-padding (LeftPadding, RightPadding, TopPadding, BottomPadding), בנוסף ל-RowStripe ול-ColumnStripe, השולטות על כמה שורות או עמודות דפוס הפסים חוזר. מעבר לעיצוב טבלה אחיד, TableStyle.ConditionalStyles מחזיר ConditionalStyleCollection המחזיק ConditionalStyle אחת לכל אזור בטבלה — FirstRow, LastRow, FirstColumn, LastColumn, OddRowBanding, EvenRowBanding, OddColumnBanding, EvenColumnBanding, וארבעת התאים הפינות (TopLeftCell, TopRightCell, BottomLeftCell, BottomRightCell). כל ConditionalStyle נושא את ה-Font, ParagraphFormat, Shading, Borders שלו וכן padding של התא, והמאפיין Type שלו מדווח איזו אזור ConditionalStyleType הוא מייצג. ConditionalStyle.ClearFormatting() ו-ConditionalStyleCollection.ClearFormatting() מאפסים עיצוב לאזור אחד או לכל קבוצת האזורים המותנים.

מטא-נתוני סגנון ודגלי התנהגות

מספר מאפיינים בוליאניים ומספריים ב-Style שולטים באופן שבו Word מתייחס לסגנון בממשק המשתמש שלו ולא באופן שבו הוא מציג: Locked מונע שינוי הסגנון כאשר הגנת העיצוב פעילה, IsQuickStyle שולט האם הוא מופיע בגלריית הסגנונות המהירה, AutomaticallyUpdate גורם לסגנון להגדיר את עצמו מחדש מהעיצוב הישיר שהוחל ידנית, SemiHidden ו-UnhideWhenUsed שולטות בנראות ברשימת הסגנונות לפני ואחרי השימוש הראשון, ו-Priority משפיע על סדר המיון בגלריה. סגנון חושף גם את המאפיינים List ו-ListFormat כאשר הוא מגדיר מספור רשימות, ו-Style.Remove() מוחק את הסגנון מ-StyleCollection שלו.


טיפים ושיטות עבודה מומלצות

  • עדיף להשתמש במאגר StyleCollection עם ערך StyleIdentifier במקום לחפש לפי שם בעת מציאת סגנון מובנה — שמות מתורגמים, אך ערכי StyleIdentifier אינם.
  • הגדר את BaseStyleName לבניית היררכיות סגנונות (למשל, קבוצת סגנונות כותרת שכל אחד מהם יורש בחירות גופן מסגנון בסיס אחד) במקום לחזור על העיצוב בכל סגנון.
  • כאשר מעתיקים סגנון בין מסמכים, השתמש ב-StyleCollection.AddCopy(style) במקום לקרוא וליישם ידנית כל תכונת עיצוב.
  • הגדר אזורי TableStyle.ConditionalStyles עבור טבלאות מפוסלות במקום לעצב ידנית שורות מתחלפות בקוד — העיצוב של כל אזור ConditionalStyle מוחל על בסיס ConditionalStyleType שלו, ולא על-ידי קביעת עיצוב ישיר לשורות בודדות.
  • בדוק את Style.BuiltIn לפני שמסירים או משנים שם של סגנון בצורה תכנותית; סגנונות מובנים בדרך כלל מוזכרים בשם במקומות אחרים במסמך.

בעיות נפוצות

בעיהסיבהתיקון
StyleCollection האינדקסר מחזיר null עבור חיפוש שםשם הסגנון אינו קיים במסמך זה, או שסגנון מובנה עדיין לא שומש ולכן Word לא ייצר אותובדוק את Style.Aliases עבור שמות חלופיים, או השתמש באינדקסר StyleCollection עם StyleIdentifier עבור סגנונות מובנים במקום
הגדרת StyleName באופן בלתי צפוי יוצרת סגנון חדשStyleName יוצר את הסגנון בשם אם הוא עדיין לא קיים באוסףהשתמש קודם באינדקסר StyleCollection כדי לאשר שהסגנון קיים, או הקצה את האובייקט Style ישירות באמצעות המאפיין Style
הפסי האזורים בטבלה אינם מופיעים לאחר החלת TableStyleאזורי העיצוב המותנה (OddRowBanding, EvenRowBanding, וכן הלאה) מעולם לא הוגדרו ב-TableStyle.ConditionalStylesהגדר עיצוב על רשומות ConditionalStyle הרלוונטיות ב-ConditionalStyleCollection
שינוי סגנון אינו משפיע על תוכן שכבר משתמש בסגנוןעיצוב ישיר (ידני) הוחל מעל הסגנון והוא מקבל עדיפותנקה עיצוב ישיר בריצות/פסקאות המושפעות, או הגדר Style.AutomaticallyUpdate

FAQ

איך לקבל את האוסף של כל הסגנונות במסמך?

קרא את Document.Styles, שמחזיר StyleCollection המכיל כל Style מובנה ומוגדר על-ידי המשתמש במסמך זה.

מה ההבדל בין Style ל-StyleIdentifier?

Style הוא ערך הסגנון האמיתי עם העיצוב שלו; StyleIdentifier הוא ערך enum שאינו תלוי במיקום ומשמש לחיפוש של מובנה סגנון ללא תלות בשפת המסמך, דרך ה StyleCollection מאנדקס.

איך סגנונות טבלה שונים מסגנונות פסקה או תו?

TableStyle הוא תת-מחלקה של Style שמוסיפה מאפייני פריסת טבלה (Alignment, CellSpacing, padding) ואוסף ConditionalStyles לעיצוב ספציפי לאזור כגון שורות ממוסגרות, שורות כותרת ותאים בפינה — מושגי עיצוב שאינם חלים על סגנונות פסקה או תו.

האם אוכל ליצור סגנון חדש לגמרי במקום לשנות סגנון קיים?

כן — קרא ל-StyleCollection.Add(type, name) עם ה-StyleType הרצוי ושם חדש כדי ליצור סגנון ריק, ואז הגדר את מאפייני העיצוב שלו (Font, ParagraphFormat, וכן הלאה עבור סגנונות פסקה/תו).

איך אני משכפל סגנון, כולל מסמך אחר?

השתמש ב-StyleCollection.AddCopy(style), העבר אובייקט Style (שיכול לבוא מ-Document’s StyleCollection) כדי להוסיף עותק שלו לאוסף היעד.


API Reference סיכום

מחלקה/מתודהתיאור
Styleסגנון פסקה, תו, טבלה או רשימה בודד, מובנה או מוגדר על-ידי המשתמש
StyleCollectionהאוסף של כל הסגנונות במסמך, נגיש באמצעות Document.Styles
StyleCollection מנדקס לפי שםחפש סגנון לפי שם התצוגה שלו, למשל styles["Heading 1"]
StyleCollection מנדקס לפי מזההחפש סגנון מובנה לפי מזהה שאינו תלוי במיקום, למשל styles[StyleIdentifier.Heading1]
StyleCollection.Add(type, name)צור סגנון חדש וריק של StyleType הנתון
StyleCollection.AddCopy(style)העתק סגנון קיים לתוך האוסף הזה
StyleTypeמניין המבדיל בין סגנונות Paragraph, Character, Table ו-List
StyleIdentifierמזהה בלתי תלוי במיקום עבור סגנון מובנה
TableStyleמחלקה משנה של Style לעיצוב טבלאות, כולל עיצוב מותנה לפי אזור
ConditionalStyleCollectionהקבוצה של רשומות ConditionalStyle לפי אזור על TableStyle
ConditionalStyleעיצוב (גופן, פורמט פסקה, הצללה, גבולות, ריפוד) לאזור טבלה אחד
ConditionalStyleTypeEnum המזהה לאיזה אזור טבלה ConditionalStyle מתייחס

ראה גם

 עברית