Szakaszok kezelése

Szakaszok kezelése

Egy Word-dokumentum egy vagy több szakaszra van osztva, mindegyik saját oldalbeállítással, margókkal, fejlécekkel és láblécekkel rendelkezik. Aspose.Words FOSS a .NET számára egy szakaszt ábrázol mint egy Section csomópont, amely tartalmaz egy Body és opcionálisan fejléceket és lábléceket, valamint egy PageSetup ami szabályozza az elrendezését. Ez az oldal a szakasz objektummodellt, az oldalbeállítást, a fejléceket és lábléceket, valamint a többoszlopos szövegelrendezést tárgyalja.


A szakasz objektummodellje

Document.Sections egy SectionCollection-t ad vissza – minden Section a dokumentumban, mindegyik egy CompositeNode és a csomópontfa része. Egy Section egy Body-t tartalmaz (egy Story, amely a szakasz fő bekezdéseit és táblázatait tárol) és, ha jelen van, HeaderFooter csomópontokat, amelyek Section.HeadersFooters keresztül érhetők el, egy HeaderFooterCollection. Document.FirstSection és Document.LastSection közvetlen hozzáférést biztosítanak a határoló szakaszokhoz. Section.AppendContent(), PrependContent() és ClearContent() tömegesen manipulálják egy szakasz törzs tartalmát, míg ClearHeadersFooters() és DeleteHeaderFooterShapes() törlik a fejléc/lábléc tartalmát.


Szakaszok és szakasztörések létrehozása

DocumentBuilder.InsertBreak(BreakType) törést szúr be a kurzornál; BreakType tartalmazza a SectionBreakNewPage, SectionBreakContinuous, SectionBreakNewColumn, SectionBreakEvenPage és SectionBreakOddPage elemeket egy új szakasz indításához, a nem-szakasz értékekkel együtt: PageBreak, ColumnBreak, LineBreak és ParagraphBreak. DocumentBuilder.MoveToSection() a kurzort egy adott szakasz törzsének elejére helyezi. PageSetup.SectionStart beolvassa vagy beállítja a SectionStart töréstípust, amely egy meglévő szakaszon van rögzítve.


Oldalbeállítás

Section.PageSetup egy PageSetup példány, amely az oldal méreteket és margókat fedi le (PageWidth, PageHeight, TopMargin, BottomMargin, LeftMargin, RightMargin, Gutter), Orientation és PaperSize, valamint az egyes oldalsó szegélyeket (Borders, BorderAppliesTo a(z) PageBorderAppliesTo segítségével, BorderDistanceFrom a(z) PageBorderDistanceFrom segítségével, BorderAlwaysInFront, BorderSurroundsHeader, BorderSurroundsFooter). A sorozatszámozást a(z) LineNumberRestartMode, LineNumberCountBy, LineNumberDistanceFromText és LineStartingNumber szabályozza. A(z) PageSetup.ClearFormatting() visszaállítja az alapértelmezett értékekre.


Fejlécek és láblécek

Section.HeadersFooters egy HeaderFooterCollection, amely típusos hozzáférőkkel rendelkezik – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – valamint GetByHeaderFooterType(), Add() és LinkToPrevious(). Minden HeaderFooter egy Story (mint a(z) Body), amelyet a(z) HeaderFooterType azonosít, és IsHeader / IsLinkedToPrevious jelzővel van ellátva. A(z) PageSetup.DifferentFirstPageHeaderFooter és PageSetup.OddAndEvenPagesHeaderFooter szabályozzák, hogy a Word elvárja-e az első oldal és a páros oldal fejléc/lábléc változatainak használatát.


Több szövegoszlop

PageSetup.TextColumns egy TextColumnCollection (Count, EvenlySpaced, LineBetween, Spacing, Width) ad vissza, amely SetCount() segítségével több oszlopban rendezi el a szakasz törzsét. Az egyes oszlopok TextColumn példányok (Width, SpaceAfter), miután a gyűjtemény több mint egy oszloppal van feltöltve.


Tippek és bevált gyakorlatok

  • Egy szakaszváltó hordozza a formázást a szakasz számára, amely follows azt – beállítás PageSetup tulajdonságok egy Section amelyet most hoztál létre (után InsertBreak) befolyásolja a tartalmat, amely a törés után következik, nem pedig előtte.
  • Használd a(z) SectionBreakContinuous-t, ha csak az oldalbeállításon kell módosítani (például többoszlopos szövegre váltás) új oldal indítása nélkül; használd a(z) SectionBreakNewPage-t, ha az új szakasznak mindig új oldalon kell kezdődnie.
  • HeaderFooterCollection.LinkToPrevious() újracsatlakoztatja a szakasz fejléceit/láblécét, hogy örökölje az előző szakasz tartalmát – ezt a új fejléctartalom/lábléc tartalom írása előtt végezze el, ha azt szeretné, hogy az új szakasz független legyen az előzőtől.
  • PageSetup.DifferentFirstPageHeaderFooter és OddAndEvenPagesHeaderFooter csak akkor lépnek életbe, ha a megfelelő HeaderFooterType változatok (HeaderFirst, HeaderEven stb.) ténylegesen léteznek a Section.HeadersFooters-ben – kapcsolja be a jelzőt, és adja hozzá a megfelelő fejléceket/lábceket egyszerre.
  • Section.Body és minden HeaderFooter különálló Story példány — a Range.Fields, könyvjelzők és egyéb tartományra korlátozott műveletek a szakasz Body-jén nem hatolnak automatikusan be a fejlécekbe és láblécekbe.

Gyakori problémák

ProblémaOkJavítás
Az új szakasz oldalbeállítása nem egyezik azzal, amit beállítottamPageSetup a rossz Section példányra lett beállítvaBeállítás PageSetup az a szakasz, amely follows a törésnél, nem az előzőnél
Az előző szakasz fejléc/lábléc tartalma váratlanul megjelenik egy új szakaszbanAz új szakasz fejlécei/láblécai még mindig kapcsolódnak az előző szakaszhozHívja meg a(z) HeaderFooterCollection.LinkToPrevious(false) (vagy adjon hozzá különálló fejléc/lábléc tartalmat) a leválasztáshoz
Az első oldal vagy páros oldal fejléc/lábléc figyelmen kívül van hagyvaDifferentFirstPageHeaderFooter / OddAndEvenPagesHeaderFooter false, vagy a megfelelő HeaderFooterType változat nem létezikÁllítsd be a jelzőt a(z) PageSetup elemen, és győződj meg róla, hogy a megfelelő fejléc/lábléc változat jelen van
A többoszlopos elrendezés nem alkalmazhatóTextColumns.SetCount() 1-es számértékkel lett meghívva, vagy a rossz szakasz PageSetup eleménHívd meg a(z) SetCount() függvényt több, mint egy oszloppal a cél szakasz PageSetup.TextColumns elemén

FAQ

Hogyan indíthatok új szakaszt anélkül, hogy új oldalt kezdenék?

Helyezzen be egy SectionBreakContinuous törést DocumentBuilder.InsertBreak(BreakType.SectionBreakContinuous) segítségével.

Hogyan adhatok egy szakasznak saját margókat és tájolást?

Helyezz be egy szakasztörést, majd állítsd be a tulajdonságokat az új szakasz PageSetup – TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation és PaperSize értékeire.

Hogyan állíthatom be, hogy egy szakasz első oldala másik fejlécet használjon?

Állítsd be a PageSetup.DifferentFirstPageHeaderFooter = true értéket azon a szakaszon, és adj hozzá egy HeaderFooter típusú HeaderFirst (és FooterFirst, ha szükséges) a HeadersFooters gyűjteményéhez.

Hogyan rendezhetem el egy szakasz törzsszövegét két oszlopban?

Hívd meg a PageSetup.TextColumns.SetCount(2) a szakaszon, majd állítsd be a Spacing és EvenlySpaced / az egyes TextColumn.Width értékeket szükség szerint.


API Reference összefoglaló

Osztály / EnumLeírás
SectionEgy szekció csomópont; Body, HeadersFooters, PageSetup
SectionCollectionMinden Section a dokumentumban, a Document.Sections segítségével
Body / StoryA fő tartalomkonténer egy szekcióhoz (Body) vagy fejléchez/lábléchez (HeaderFooter)
PageSetupOldalméretek, margók, orientáció, szegélyek és oszlopok egy szekcióhoz
HeaderFooter / HeaderFooterCollectionFejléc/lábléc tartalom és a szekció típusos hozzáférői
HeaderFooterTypeAzonosítja, hogy egy HeaderFooter melyik fejléc/lábléc változat (primary, first, even)
TextColumn / TextColumnCollectionTöbboszlopos szövegelrendezés egy szekcióhoz
PaperSize / Orientation / MarginsOldalméret, tájolás és előre beállított margóértékek
PageBorderAppliesTo / PageBorderDistanceFromMely oldalakon nyomtatódik a lapkeret, és annak referenciája él
SectionStart / BreakTypeA szakaszon rögzített szakasz-törés típusa, és a DocumentBuilder.InsertBreak() által elfogadott töréstípusok
LineNumberRestartModeAmikor az automatikus sorszámozás egy szakaszon belül újraindul

Lásd még:

 Magyar