Hogyan dolgozzunk a szakaszokkal a .NET-ban

Hogyan dolgozzunk a szakaszokkal a .NET-ban

Ez az útmutató bemutatja, hogyan hozhatók létre szakaszeltérések, konfigurálható az oldalbeállítás, és kezelhetők a fejlécek, láblécek és a többoszlopos elrendezésben Aspose.Words FOSS for .NET, használva a Section and PageSetup osztályokat. Lefedi a már egy dokumentumban lévő szakaszok olvasását, egy új szakasz indítását a DocumentBuilder, az oldalméretek és margók konfigurálását, fejlécek és láblécek változatainak hozzáadását, valamint a törzsszöveg elrendezését több oszlopban.

Lépésről-lépésre útmutató

1. lépés: A csomag telepítése

Aspose.Words FOSS for .NET még nem tesz közzé NuGet csomagot – a könyvtárat inkább forrásból kell felépíteni. Klónozza a https://github.com/aspose-words-foss/Aspose.Words-FOSS-for-.NET.git repót, majd építse fel a Aspose.Words.sln-t Release konfigurációban a .NET SDK-val, és hivatkozzon a keletkezett Aspose.Words összeállításra a projektjéből. A könyvtár a .NET Standard 2.0-ra céloz, így fut a .NET Framework 4.6.2+ és a .NET 6/8/10 környezeteken.


2. lépés: A szükséges osztályok importálása

Adjon hozzá egy using Aspose.Words; direktívát – a Section, PageSetup, HeaderFooter és ebben az útmutatóban használt kapcsolódó enumok mind közvetlenül a Aspose.Words névtérben találhatók, a Document és DocumentBuilder mellett.


3. lépés: Olvassa be a dokumentumban már meglévő szakaszokat

Document.Sections egy SectionCollection-t ad vissza, amely a dokumentum összes Section-t tartalmazza, mindegyik egy CompositeNode, amely szintén a teljes csomópontfa része. Document.FirstSection és Document.LastSection közvetlen hozzáférést biztosítanak a határszakaszokhoz anélkül, hogy iterálnák a gyűjteményt. Minden Section egy Body-t tartalmaz – ugyanúgy elérhető, mint bármely más Story – és ha jelen van, a fejléc- és lábléc-tartalom a Section.HeadersFooters segítségével érhető el.


4. lépés: Új szakasz indítása szakasztöréssel

Call DocumentBuilder.InsertBreak(BreakType) a kurzornál egy új szakasz indításához. Adja át BreakType.SectionBreakNewPage amikor az új szakasznak mindig új oldalon kell kezdődnie, BreakType.SectionBreakContinuous amikor csak egy oldalbeállítási változtatásra van szükség (például többoszlopos szövegre váltás), anélkül, hogy oldaleltérést kényszerítene, vagy BreakType.SectionBreakNewColumn, SectionBreakEvenPage, és SectionBreakOddPage a Word által támogatott egyéb szakaszkezdő viselkedésekhez. Egy szakasztörés a szakasz formázását hordozza, amely follows azt, ezért állítsa be PageSetup tulajdonságokat az új Section – nem az előtte lévő – miután a törés be lett szúrva. DocumentBuilder.MoveToSection(sectionIndex) a kurzort egy adott szakasz testének elejére mozgatja, és PageSetup.SectionStart olvas vagy beállítja a SectionStart töréstípust, amely már egy meglévő szakaszon rögzítve van.


5. lépés: Oldalméretek és margók beállítása

Minden Section.PageSetup egy PageSetup példány. Állítsa be a PageWidth, PageHeight, LeftMargin, RightMargin, TopMargin, BottomMargin és Gutter értékeket az oldalméretekhez és margókhoz, vagy rendelje hozzá közvetlenül a Margins előre beállított értéket a PageSetup.Margins-hez. A Orientation és PaperSize szabályozzák az oldal tájolását és a papírméretet. Az oldalkereteket a Borders (egy BorderCollection), a BorderAppliesTo (PageBorderAppliesTo), a BorderDistanceFrom (PageBorderDistanceFrom), a BorderAlwaysInFront, a BorderSurroundsHeader és a BorderSurroundsFooter segítségével állítják be. Hívja a PageSetup.ClearFormatting() függvényt, hogy a szakasz oldalbeállításait visszaállítsa az alapértelmezettekre, mielőtt újra konfigurálná őket.


6. lépés: Fejlécek és láblécek hozzáadása és összekapcsolása

Section.HeadersFooters egy HeaderFooterCollection, amely típusos accessor-okat tartalmaz – HeaderPrimary, HeaderFirst, HeaderEven, FooterPrimary, FooterFirst, FooterEven – valamint GetByHeaderFooterType()-t a HeaderFooterType és Add() általi kereséshez új elem hozzáadásához. Minden HeaderFooter egy Story, amely IsHeader és IsLinkedToPrevious jelzővel rendelkezik. Engedélyezze a PageSetup.DifferentFirstPageHeaderFooter vagy a PageSetup.OddAndEvenPagesHeaderFooter jelzőt a megfelelő HeaderFirst/FooterFirst vagy HeaderEven/FooterEven változat hozzáadása előtt – a jelző és a változat csak együtt lépnek hatályba. Hívja a HeaderFooterCollection.LinkToPrevious() függvényt, hogy újra összekapcsolja egy szakasz fejlécét vagy láblécét, és örökölje az előző szakasz tartalmát, vagy szétkapcsolja, hogy az új szakasz önálló tartalommal kezdődjön.


7. lépés: A törzsszöveg elrendezése több oszlopban

PageSetup.TextColumns visszaad egy TextColumnCollection a szakaszhoz. Hívja meg a SetCount() -t a oszlopok számával, amelybe a törzsszövegnek folynia kell, majd állítsa be a EvenlySpaced, Spacing, LineBetween és Width értékeket, hogy szabályozza, hogyan legyenek elrendezve az oszlopok. Ha a gyűjtemény több mint egy oszlopot tartalmaz, az egyes TextColumn példányok saját Width és SpaceAfter értékeket fednek fel.


8. lépés: Szakasz tartalmának törlése vagy tömegszerkesztése

Section.AppendContent() és PrependContent() egy másik szakasz törzstartalmát másolják ebbe; ClearContent() tömegesen kiüríti egy szakasz törzsét. ClearHeadersFooters() és DeleteHeaderFooterShapes() törlik a fejléc- és lábléc tartalmat a szakaszon belül anélkül, hogy a szakaszt eltávolítanák.

Gyakori problémák és megoldások

Az új szakasz oldalbeállítása nem egyezik azzal, amit beállítottam PageSetup rossz helyre lett beállítva Section példányon. Egy szakaszvágó formázást hordoz a következő szakasz számára – állítsa PageSetup a következő szakaszra InsertBreak(), nem az előtte lévőre.

Az előző szakaszból származó fejléc- vagy lábléc tartalom váratlanul megjelenik egy új szakaszban Az új szakasz fejlécét vagy láblécét még mindig a előző szakaszhoz kapcsolják. Hívjon HeaderFooterCollection.LinkToPrevious(false), vagy adjon különálló fejléc-/lábléc tartalmat az új szakaszhoz, hogy leválassza azt.

Az első oldal vagy a páros oldal fejléce/lábléce figyelmen kívül marad DifferentFirstPageHeaderFooter or OddAndEvenPagesHeaderFooter is false, vagy a megfelelő HeaderFooterType változat nem létezik a Section.HeadersFooters. Állítsa be a jelzőt PageSetup és adja hozzá a megfelelő fejlécre/láblécre vonatkozó változatot.

A többoszlopos elrendezés nem alkalmazható TextColumns.SetCount() egy egyes számlálással lett meghívva, vagy a rossz szakaszban PageSetup. Hívja SetCount() több, mint egy oszlop a célszakaszban PageSetup.TextColumns.

Szakaszelválasztó a dokumentum helytelen pozíciójába került DocumentBuilder.InsertBreak(BreakType) a builder aktuális kurzorában szúr be. Használja DocumentBuilder.MoveToSection() vagy a builder egyéb kurzorpozicionáló tagjait a kurzor hívás előtti pozicionálásához InsertBreak().

Gyakran Ismételt Kérdések

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

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

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

Illesszen be egy szekcióelválasztót, majd állítsa be a TopMargin, BottomMargin, LeftMargin, RightMargin, Orientation és PaperSize értékeket az új szekció PageSetup-én.

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

Állítsa be a PageSetup.DifferentFirstPageHeaderFooter = true értékét arra a szakaszra, és adjon hozzá egy HeaderFooter típusú HeaderFirst (és FooterFirst, ha szükséges) a HeadersFooters gyűjteményéhez.

Hogyan tudom két oszlopban elrendezni egy szakasz törzsszövegét?

Hívja meg a PageSetup.TextColumns.SetCount(2)-t a szakaszon, majd szükség szerint állítsa be a Spacing, EvenlySpaced vagy az egyes TextColumn.Width értékeket.

Hogyan férhetek hozzá közvetlenül az első és az utolsó szakaszokhoz?

Olvassa a Document.FirstSection és Document.LastSection értékeket a Document.Sections helyett.

Lásd még:

 Magyar