עבודה עם מקטעים

עבודה עם מקטעים

עבודה עם מקטעים

מסמך Word מחולק לחלק אחד או יותר, שלכל אחד יש את הגדרת העמוד שלו, השוליים, כותרות עליונות ותחתונות. Aspose.Words FOSS עבור .NET מייצג קטע כ Section צומת, המכילה Body ו, באופן רשות, כותרות עליונות ותחתונות, בנוסף PageSetup ששולט בפריסתו. דף זה מכסה את מודל האובייקט של הקטע, הגדרת העמוד, כותרות עליונות ותחתונות, ופריסת טקסט מרובת עמודות.


מודל האובייקט של המקטע

Document.Sections מחזיר SectionCollection – כל Section במסמך, שכל אחד הוא CompositeNode וחלק מעץ הצמתים. Section מכיל Body אחד (‏Story המחזיק את הפסקאות והטבלאות הראשיות של המקטע) ו-כאשר קיים, צמתים HeaderFooter הנגישים דרך Section.HeadersFooters, HeaderFooterCollection. Document.FirstSection ו-Document.LastSection מספקים גישה ישירה למקטעים הגבוליים. Section.AppendContent(), PrependContent() ו-ClearContent() משנים את תוכן הגוף של המקטע בכמות גדולה, בעוד ClearHeadersFooters() ו-DeleteHeaderFooterShapes() מנקים את תוכן הכותרת/תחתון.


יצירת מקטעים והפסקות מקטע

DocumentBuilder.InsertBreak(BreakType) מוסיף הפסקה במיקום הסמן; BreakType כולל SectionBreakNewPage, SectionBreakContinuous, SectionBreakNewColumn, SectionBreakEvenPage ו-SectionBreakOddPage להתחלת מקטע חדש, יחד עם הערכים שאינם מקטעים PageBreak, ColumnBreak, LineBreak ו-ParagraphBreak. DocumentBuilder.MoveToSection() מזיז את הסמן להתחלת הגוף של מקטע מסוים. PageSetup.SectionStart קורא או מגדיר את סוג ההפסקה SectionStart הרשומה במקטע קיים.


הגדרת עמוד

Section.PageSetup הוא PageSetup שמכסה ממדי דף ושוליים (PageWidth, PageHeight, TopMargin, BottomMargin, LeftMargin, RightMargin, Gutter), Orientation ו-PaperSize, וגבולות דף לכל צד (Borders, BorderAppliesTo דרך PageBorderAppliesTo, BorderDistanceFrom דרך PageBorderDistanceFrom, BorderAlwaysInFront, BorderSurroundsHeader, BorderSurroundsFooter). מספור השורות נשלט על ידי LineNumberRestartMode, LineNumberCountBy, LineNumberDistanceFromText, ו-LineStartingNumber. PageSetup.ClearFormatting() מאפס זאת לברירות המחדל.


כותרות ותחתיות

Section.HeadersFooters הוא HeaderFooterCollection עם גישה טיפוסית – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – בנוסף ל-GetByHeaderFooterType(), Add(), ו-LinkToPrevious(). כל HeaderFooter הוא Story (כמו Body) שמזוהה לפי HeaderFooterType ומסומן כ-IsHeader / IsLinkedToPrevious. PageSetup.DifferentFirstPageHeaderFooter ו-PageSetup.OddAndEvenPagesHeaderFooter שולטים האם Word מצפה שהוריאנטים של כותרת/תחתית לדף הראשון ולדף זוגי ישמשו בכלל.


עמודות טקסט מרובות

PageSetup.TextColumns מחזיר TextColumnCollection (Count, EvenlySpaced, LineBetween, Spacing, Width) עם SetCount() לסידור גוף החלק בעמודות מרובות. עמודות בודדות הן מופעי TextColumn (Width, SpaceAfter) ברגע שהאוסף מתמלא ביותר מעמודה אחת.


טיפים ושיטות מומלצות

  • מעבר קטע נושא את העיצוב עבור הקטע ש follows הוא – קובע PageSetup מאפיינים על Section שיצרת זה עתה (אחרי InsertBreak) משפיע על התוכן שמופיע אחרי השבירה, ולא לפניו.
  • השתמש ב-SectionBreakContinuous כאשר אתה צריך רק שינוי בהגדרות הדף (למשל, מעבר לטקסט בעמודות מרובות) בלי להתחיל דף חדש; השתמש ב-SectionBreakNewPage כאשר על הקטע החדש תמיד להתחיל בדף ריק.
  • HeaderFooterCollection.LinkToPrevious() מחבר מחדש את הכותרת/תחתונה של קטע כדי לרשת את תוכן הקטע הקודם – בצע זאת לפני כתיבת תוכן כותרת/תחתונה חדש אם אתה רוצה שהקטע החדש יתחיל באופן עצמאי מהקודם.
  • PageSetup.DifferentFirstPageHeaderFooter ו-OddAndEvenPagesHeaderFooter פועלים רק אם הגרסאות המתאימות של HeaderFooterType (HeaderFirst, HeaderEven, וכן הלאה) אכן קיימות ב-Section.HeadersFooters – הפעל את הדגל והוסף את הכותרת/תחתונה המתאימה יחד.
  • Section.Body וכל HeaderFooter הם מופעים נפרדים של Story – Range.Fields, סימניות, ופעולות אחרות בטווח על Body של הקטע אינן חודרות אוטומטית אל הכותרות והתחתונות שלו.

בעיות נפוצות

בעיהסיבהתיקון
הגדרת העמוד של הסעיף החדש אינה תואמת למה שהגדרתיPageSetup הוגדר על המופע הלא נכון של Sectionהגדר PageSetup בקטע ש follows ההפסקה, לא את זו שלפניה
תוכן הכותרת/תחתית מהקטע הקודם מופיע באופן בלתי צפוי בקטע חדשהכותרות/התחתיות של החלק החדש עדיין מקושרות לחלק הקודםהפעל את HeaderFooterCollection.LinkToPrevious(false) (או הוסף תוכן כותרת/תחתית ייחודי) כדי לנתק אותם
הכותרת/התחתית של העמוד הראשון או של עמוד זוגי מתעלמתDifferentFirstPageHeaderFooter / OddAndEvenPagesHeaderFooter הוא false, או שהגרסה המתאימה של HeaderFooterType אינה קיימתהגדר את הדגל ב-PageSetup וודא שהגרסה המתאימה של הכותרת/התחתית קיימת
פריסת מרובה עמודות אינה חלהTextColumns.SetCount() נקראה עם ספירה של 1, או בחלק הלא נכון של PageSetupהפעל את SetCount() עם יותר מעמודה אחת על PageSetup.TextColumns של החלק היעד

FAQ

איך אפשר להתחיל קטע חדש מבלי להתחיל דף חדש?

הכנס שבירת SectionBreakContinuous עם DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous).

איך לתת לקטע שוליים וכיוון משלו?

הוסף שבירת מקטע, ואז הגדר את המאפיינים ב-PageSetup של המקטע החדש – TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation, ו-PaperSize.

איך אפשר לגרום לדף הראשון של המקטע להשתמש בכותרת שונה?

הגדר PageSetup.DifferentFirstPageHeaderFooter = true במקטע זה, והוסף HeaderFooter מסוג HeaderFirst (ו-FooterFirst, אם נדרש) לאוסף ה-HeadersFooters שלו.

איך לסדר את טקסט הגוף של המקטע בשתי עמודות?

קרא PageSetup.TextColumns.SetCount(2) על המקטע, ואז התאם את Spacing ו-EvenlySpaced / ערכי TextColumn.Width האישיים לפי הצורך.


API Reference סיכום

מחלקה / Enumתיאור
Sectionצומת קטע; Body, HeadersFooters, PageSetup
SectionCollectionכל Section במסמך, דרך Document.Sections
Body / Storyמכולת תוכן ראשית עבור קטע (Body) או כותרת/תחתית (HeaderFooter)
PageSetupמימדי העמוד, שוליים, כיוון, גבולות ועמודות עבור מקטע
HeaderFooter / HeaderFooterCollectionתוכן כותרת/תחתית והמאקססים המוגדרים עבור מקטע
HeaderFooterTypeמזהה איזו גרסה של כותרת/כותרת תחתונה (primary, first, even) HeaderFooter הוא
TextColumn / TextColumnCollectionפריסת טקסט מרובת עמודות עבור קטע
PaperSize / Orientation / Marginsגודל העמוד, כיוון, וערכי שוליים מוגדרים מראש
PageBorderAppliesTo / PageBorderDistanceFromבאילו עמודים מודפס גבול העמוד, ומהו קצה ההתייחסות שלו
SectionStart / BreakTypeסוג הפסקת-קטע שנרשם על קטע, וסוגי ההפסקה DocumentBuilder.InsertBreak() מקבלים
LineNumberRestartModeכאשר מספור השורות האוטומטי מתחיל מחדש בתוך קטע

ראה גם

 עברית