Hogyan dolgozzunk a Word Index-szel és táblázatokkal a .NET-ban

Hogyan dolgozzunk a Word Index-szel és táblázatokkal a .NET-ban

Hogyan dolgozzunk a Word indexekkel és táblázatokkal a .NET alkalmazásban

Ez az útmutató bemutatja, hogyan lehet beszúrni és felépíteni a mező-alapú hivatkozási struktúrákat, amelyeket a Word dokumentumok saját tartalmuk összefoglalására használnak — egy tartalomjegyzék, egy ábécés index és egy hatóságok táblázata — a Aspose.Words FOSS segítségével a .NET számára. Mindegyik a dokumentum más részeiben lévő jelölőmezőkből kerül összeállításra: a FieldToc a címsor-alapú és FieldTC-jelölt bejegyzéseket állítja össze, a FieldIndex a FieldXE jelölőket gyűjti, a FieldToa pedig a FieldTA hivatkozásokat. Az ebben a családban lévő minden mezőosztály a Field alaptípusból származik a Aspose.Words.Fields névtérben.


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

1. lépés: Tartalomjegyzék beszúrása

Hívja meg a DocumentBuilder.InsertTableOfContents(switches)-t azon a pozíción, ahol a TOC-nak (tartalomjegyzéknek) meg kell jelennie, átadva egy Word-stílusú mezőkapcsoló karakterláncot — például "\o \"1-3\" \h \z \u" — a beillesztett címsor szintek és a formázás vezérléséhez, ugyanazokat a kapcsolókat használva, amelyeket a Word a UI-ból történő TOC beszúrásakor generál. Ez egy FieldToc-t szúr be, amely továbbá közvetlenül tulajdonságokként teszi elérhetővé ugyanazt a struktúrát: HeadingLevelRange/EntryLevelRange a felvett vázlat szintekhez, InsertHyperlinks, PreserveTabs/PreserveLineBreaks, és BookmarkName. Ha a tartalomjegyzék helyett ábrajegyzéket szeretne, állítsa be a TableOfFiguresLabel vagy CaptionlessTableOfFiguresLabel értéket ugyanazon a FieldToc-n.


2. lépés: Egyéni tartalomjegyzék bejegyzések megjelölése

Nem minden TOC-be (tartalomjegyzék) felvenni kívánt bejegyzés származik címsor-stílusból. Helyezz be egy FieldTC egy adott helyen, hogy a bejegyzést a bekezdésstílustól független TOC-bejegyzésként jelölje: FieldTC.Text a bejegyzés szövege, EntryLevel az a vázlatszint, amelyen meg kell jelenjen, és OmitPageNumber elnyomja a bejegyzés oldalszámát. Ha egy dokumentumnak egynél több TOC-re van szüksége — például egy fő TOC és egy külön ábrajegyzék — állítsd be a FieldTC.TypeIdentifier értékét úgy, hogy egyezzen a EntryIdentifier értékével a FieldToc esetén, amelynek össze kell gyűjtenie.


3. lépés: Index felépítése a megjelölt bejegyzésekből

Jelöld meg minden olyan helyet, amely az indexben szerepel, egy FieldXE segítségével, a Text beállításával a bejegyzés szövegére; a EntryType a bejegyzéseket al-szintekre csoportosítja kettősponttal elválasztott szintaxis használatával, és a PageRangeBookmarkName egy könyvjelzőt jelöl, amelynek kiterjedése az indexben oldaltartományt eredményez egyetlen oldalszám helyett. A FieldIndex az összes FieldXE jelölőt a dokumentumban összeállítja az ábécés sorrendű eredménybe — állítsd be a Heading értékét betűcímke-elválasztók (A, B, C…) beszúrásához, a LetterRange értékével az indexet az ábécé egy részére korlátozhatod, és a RunSubentriesOnSameLine a rész-bejegyzések elrendezését szabályozza. A PageNumberSeparator, PageRangeSeparator, SequenceSeparator és CrossReferenceSeparator szabályozzák az írásjeleket a bejegyzés és az oldalak hivatkozása között. A Word beépített index vizuális stílusai a FieldIndexFormat felsorolásként érhetők el (Template, Classic, Fancy, Modern, Bulleted, Formal, Simple).


4. lépés: Tekintélyek táblázatának felépítése idézetekből

Jelöld meg a szövegben minden idézetet egy FieldTA segítségével: a LongCitation és ShortCitation tartalmazzák az idézet szövegét, a EntryCategory egy “Esetek” vagy “Törvények” címsor alá csoportosítja, a IsBold/IsItalic pedig a formázását szabályozzák. A FieldToa ezeket az idézeteket egy táblába gyűjti — a EntryCategory kiválasztja, melyik kategóriát kell összeállítani, a UseHeading szabályozza, hogy a kategóriafejek megjelenjenek-e, a UsePassim alkalmazza a “passim” konvenciót a gyakran idézett forrásoknál, és a PageRangeSeparator/PageNumberListSeparator/SequenceSeparator/EntrySeparator/RemoveEntryFormatting az elrendezést irányítják.


5. lépés: Mezők frissítése a dokumentum módosítása után

Egy TOC, index vagy tekintélyek táblázata nem frissül automatikusan, ha a környező tartalom változik. Hívd meg a Update() függvényt a konkrét mezőn — például FieldToc.Update() — az eredmény újraszámításához, vagy a FieldToc.UpdatePageNumbers()-t, ha csak az oldalszám-részt kell frissíteni. Az összes mező egyidejű frissítéséhez egy dokumentumban, egyenkénti hívás helyett, hívd meg a Document.UpdateFields()-t. Ne feledd, hogy ezeknek a mezőknek az eredményeiben megjelenő oldalszámok ebben a kiadásban helyőrző értékek, mivel az oldalterv és a paginálás nem része ennek.


6. lépés: Bejegyzések felvétele más dokumentumokból

Helyezz be egy FieldRD-t, hogy a TOC, index vagy a hatóságok táblázata egy másik fájlból vonjon be bejegyzéseket a fordítás során. A FieldRD.FileName megnevezi a hivatkozott dokumentumot, és a IsPathRelative szabályozza, hogy az útvonal a jelenlegi dokumentumhoz képest relatív-e. Adj hozzá egy FieldRD-t minden további dokumentumhoz, és frissítsd a fordító mezőt ezután, hogy a kombinált eredmény tartalmazza a hivatkozott tartalmat.


Általános problémák és megoldások

A tartalomjegyzék nem tartalmazza a várt címsorokat. A TOC kapcsolókarakterlánca (vagy HeadingLevelRange) kizárja ezeket a vázlat szinteket. Állítsa be a kapcsolókat, amelyeket átad a InsertTableOfContents, vagy állítsa be a FieldToc.HeadingLevelRange közvetlenül.

Egy indexbejegyzés nem jelenik meg a várt helyen. A megfelelő FieldXE jelző hiányzik, vagy annak a EntryType az al-szintű szintaxis nem egyezik azzal, amit FieldIndex elvárja. Ellenőrizze a FieldXE markerek léteznek, és a EntryType az értékek konzisztensen vannak formázva.

A mező eredményei elavultnak tűnnek a tartalom szerkesztése után. A mező nem frissült a szerkesztés után. Hívja Update() az adott mezőn, vagy Document.UpdateFields() az összes mező egyszerre frissítéséhez.

A másik dokumentumból származó bejegyzések nincsenek benne a fordításkor. Nem FieldRD a dokumentumra való hivatkozás létezik, vagy IsPathRelative nem egyezik a várt útvonal feloldásával. Adj hozzá egy FieldRD a megfelelő FileName and IsPathRelative beállítás.


Gyakran Ismételt Kérdések

Hogyan szúrhatok be egy tartalomjegyzéket programozottan?

Hívja meg a DocumentBuilder.InsertTableOfContents(switches) parancsot egy Word-stílusú kapcsoló karakterlánccal, például a "\o \"1-3\" \h \z \u" használatával, azon a helyen, ahol a TOC-nak meg kell jelennie.

Hogyan jelölhetem meg a szöveget indexbejegyzésként?

Illessze be a FieldXE mezőt azon a helyen, és állítsa be a Text tulajdonságát a bejegyzés szövegére; a FieldIndex összegyűjti a dokumentumban található összes FieldXE jelölőt az index eredményébe.

Mi a különbség a FieldTC és egy címsor-alapú TOC-bejegyzés között?

A Word alapértelmezett TOC-viselkedése a bejegyzéseket bekezdésekből gyűjti a címsor-stílusok használatával. A FieldTC egy tetszőleges helyet jelöl meg TOC-bejegyzésként a bekezdésstílustól függetlenül, amelyet a FieldToc a megfelelő EntryIdentifier/TypeIdentifier értékek egyeztetésével felvehet.

Hogyan frissíthetem a TOC-t vagy az indexet a dokumentum módosítása után?

Hívja meg a Update() parancsot az adott mezőn (vagy a UpdatePageNumbers() parancsot egy FieldToc esetén csak az oldalszámokhoz), vagy használja a Document.UpdateFields() parancsot a dokumentum összes mezőjének frissítéséhez.

Készíthető-e TOC vagy index több dokumentumon át?

Igen — szúrjon be egy FieldRD-t, amely az egyes további dokumentumokra mutat a FileName segítségével. Az összeállító mező (FieldToc, FieldIndex vagy FieldToa) tartalmazza a hivatkozott dokumentumok bejegyzéseit, miután frissült.


Lásd még:

 Magyar