Az Index és a táblák mezőinek kezelése

Az Index és a táblák mezőinek kezelése

Az Index és Táblázat mezőkkel való munka

Ez az útmutató bemutatja, hogyan kell dolgozni a Word „Index és Táblák” mezőcsaládjával — azokkal a mezőkkel, amelyek a tartalomjegyzék, egy index, egy ábrajegyzék és egy hatósági jegyzék mögött állnak. Ezek mindegyike egy Field alosztály a Aspose.Words.Fields névtérben: FieldToc (tartalomjegyzék vagy ábrajegyzék), FieldIndex (index), FieldXE (index bejegyzés), FieldToa (hatósági jegyzék), FieldTA (hatósági jegyzék bejegyzés vagy idézet), FieldTC (tartalomjegyzék bejegyzés), és FieldRD (hivatkozott dokumentum, több fájlra kiterjedő összetett index vagy TOC építéséhez).


A mező alaposztálya

A család minden mezőosztálya a Field osztályból származik, amely elérhetővé teszi a Start, Separator és End (a FieldStart, FieldSeparator és FieldEnd csomópontok, amelyek a mezőt a futtatási adatfolyamban határolták), Type (egy FieldType érték — FieldTOC, FieldIndex, FieldTOA, FieldTOCEntry, FieldIndexEntry, FieldTOAEntry vagy FieldRefDoc ehhez a családhoz), Result/DisplayResult (a mező jelenleg kiszámított szövege), IsLocked és IsDirty, valamint a GetFieldCode(), Update(), Unlink() és Remove() módszereket. A Update() újraszámítja a mező eredményét; egy tartalomjegyzék esetén ez azt jelenti, hogy újraépíti a bejegyzéslistát a dokumentum címsoraiból vagy FieldTC jelölőkből.

Tartalomjegyzék beszúrása

DocumentBuilder.InsertTableOfContents(switches) egy FieldToc elemet szúr be az építő aktuális pozíciójába, egy Word mezőkapcsoló karakterláncot (például "\o \"1-3\" \h \z \u") használva annak szabályozására, hogy mely címsorszintek legyenek belefoglalva és hogyan legyen formázva az eredmény — ugyanazokat a kapcsolókat, amelyeket a Word maga ír, amikor a felhasználói felületen keresztül szúr be egy TOC-t. Beszúrás után a FieldToc.UpdatePageNumbers() újraszámítja a meglévő bejegyzések oldalszám-részeit. A FieldToc továbbá közvetlenül elérhetővé teszi a TOC szerkezetét szabályozó tulajdonságokat: HeadingLevelRange és EntryLevelRange (mely körvonal szintek vannak belefoglalva), EntryIdentifier (a TC mező azonosító, amelyet a TOC-nek gyűjtenie kell, több TOC építéséhez különböző FieldTC jelölőkből), InsertHyperlinks, PreserveTabs/PreserveLineBreaks, EntrySeparator/SequenceSeparator, BookmarkName, és – ábrajegyzék esetén a tartalomjegyzék helyett – TableOfFiguresLabel és CaptionlessTableOfFiguresLabel.

Egyedi tartalomjegyzék bejegyzések megjelölése

Nem minden Tartalomjegyzék-bejegyzés származik egy címsor stílusból. FieldTC jelöli egy adott helyet tartalomjegyzék-bejegyzésként, a bekezdésstílustól függetlenül: FieldTC.Text a bejegyzés szövege, EntryLevel a vázlat szint, amelyen meg kell jelennie, TypeIdentifier összekapcsolja egy FieldToc.EntryIdentifier -vel, ha egynél több Tartalomjegyzéket építünk, és OmitPageNumber elnyomja az oldalszámot az adott bejegyzésnél.

Index létrehozása

FieldIndex valósítja meg az INDEX mezőt, amely egy dokumentum FieldXE (indexbejegyzés) jelölőit egy ábécés szerinti indexbe gyűjti. FieldXE.Text a bejegyzés szövege, EntryType a bejegyzéseket al-szintekre csoportosítja kettősponttal elválasztott szintaxis használatával, PageRangeBookmarkName egy könyvjelzőt jelöl, amelynek kiterjedése az indexben oldaltartományt eredményez egyetlen oldalszám helyett, és IsBold/IsItalic formázzák a keletkező oldalhivatkozást. A FieldIndex oldalról nézve, Heading betűcímke elválasztókat szúr be (A, B, C…), LetterRange az indexet az ábécé egy részhalmazára korlátozza, RunSubentriesOnSameLine szabályozza az al-bejegyzések elrendezését, és PageNumberSeparator/PageRangeSeparator/SequenceSeparator/CrossReferenceSeparator szabályozzák a központozást a bejegyzés és annak oldalhivatkozása között. FieldIndexFormat külön felsorolja a Word beépített index megjelenési stílusait (Template, Classic, Fancy, Modern, Bulleted, Formal, Simple).

Hatósági lista

FieldToa és FieldTA a hatóságok megfelelői a FieldIndex/FieldXE esetében: FieldTA a hivatkozást jelöli a szövegben (LongCitation és ShortCitation szöveg, EntryCategory annak csoportosításához egy olyan címsor alá, mint a „Esetek” vagy „Jogszabályok”, valamint IsBold/IsItalic a formázáshoz), és FieldToa ezeket a hivatkozásokat egy táblázatba gyűjti, ahol EntryCategory kiválasztja, melyik kategóriát kell összeállítani, UseHeading és UsePassim szabályozzák a kategóriafejléceket és a „passim” konvenciót a többször idézett forrásoknál, valamint PageRangeSeparator/PageNumberListSeparator/SequenceSeparator/EntrySeparator/RemoveEntryFormatting a elrendezést szabályozzák.

Más dokumentumok tartalmának hivatkozása

FieldRD valósítja meg az RD mezőt, amely azt mondja egy Tartalomjegyzék, index vagy hatósági lista mezőnek, hogy a fordítás során vegye fel a bejegyzéseket egy másik fájlból – FieldRD.FileName a hivatkozott dokumentum, és IsPathRelative szabályozza, hogy az útvonal a jelenlegi dokumentumhoz képest legyen-e feloldva.


Tippek és bevált gyakorlatok

  • Építsd fel a TOC kapcsolókarakterláncát ugyanúgy, ahogy a Word is (\o "1-3" \h \z \u), ahelyett, hogy minden FieldToc tulajdonságot egyenként konfigurálnál, majd csak a szükséges konkrét tulajdonságokat módosítsd később.
  • Hívd meg a FieldToc.UpdatePageNumbers() (vagy Field.Update()) a tartalomváltozások után, hogy a TOC, index vagy hatóságok táblázata a jelenlegi dokumentumot tükrözze, ne pedig a beillesztéskor keletkezett elavult eredményeket.
  • Használd a FieldTC.TypeIdentifier-t együtt a FieldToc.EntryIdentifier-vel, ha a dokumentumnak egynél több TOC-ra van szüksége (például egy fő TOC és egy külön ábrajegyzék), amelyek különböző bejegyzéskészletekből épülnek.
  • Állítsd be a FieldXE.PageRangeBookmarkName-t (vagy a FieldTA megfelelő tartományjelölését) a bejegyzés szövegében a lapok tartományának kézi formázása helyett, így az index/táblázat konzisztens marad, ha a tartalom elmozdul.
  • Ne feledd, hogy ebben a kiadásban a INDEX/TOC/TOA eredményekben megjelenő oldalszámok helyőrző értékek, nem valós oldalszámok, mivel a lapelrendezés és a számozás nem része ennek a kiadásnak.

Általános problémák

ProblémaOkJavítás
A tartalomjegyzék nem tartalmazza a várt címsorokatA TOC kapcsoló karakterlánca (vagy HeadingLevelRange) kizárja ezeket a vázlat szinteketÁllítsd be a InsertTableOfContents számára átadott kapcsolókat, vagy állítsd be a FieldToc.HeadingLevelRange
Egy indexbejegyzés nem jelenik meg a várt helyenA megfelelő FieldXE jelző hiányzik, vagy annak EntryType al-szintjének szintaxisa nem egyezik azzal, amit a FieldIndex elvárErősítse meg, hogy a FieldXE jelölők léteznek, és a EntryType értékeik egységesen vannak formázva
A mező eredményei elavultnak tűnnek a tartalom szerkesztése utánA mező nem frissült a szerkesztés utánHívja a Update() függvényt a mezőn (vagy a UpdateFields() a Document -n)
A másik dokumentumból származó bejegyzések nem kerülnek bele az összeállításkorNem létezik FieldRD, amely hivatkozik arra a dokumentumra, vagy a IsPathRelative nem egyezik a várt útvonal feloldásávalAdjon hozzá egy FieldRD elemet a megfelelő FileName és IsPathRelative beállítással

FAQ

Hogyan szúrhatok be programozottan tartalomjegyzéket?

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

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

Illesszen be egy FieldXE mezőt abba a helyre (például a DocumentBuilder.InsertField segítségével), amelynek Text tulajdonsága az bejegyzés szövegére van beállítva; a FieldIndex összeállítja a dokumentumban lévő összes FieldXE jelölőt az index eredményébe.

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

A Word alapértelmezett tartalomjegyzék-működése bejegyzéseket gyűjt be bekezdésekből a címsor-stílusok használatával. A FieldTC lehetővé teszi, hogy tetszőleges helyet jelöljön meg tartalomjegyzék-bejegyzésként a bekezdésstílustól függetlenül, amelyet a FieldToc fel tud venni a megfelelő EntryIdentifier/TypeIdentifier értékek egyezése alapján.

Hogyan frissíthetem a tartalomjegyzéket vagy az indexet a dokumentum módosítása után?

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

Összeállíthatok-e tartalomjegyzéket vagy indexet több dokumentum alapján?

Igen — szúrjon be egy FieldRD mezőt, amely minden további dokumentumra mutat a FileName segítségével; az összeállító mező (FieldToc, FieldIndex vagy FieldToa) tartalmazza a hivatkozott dokumentumok bejegyzéseit, amikor frissül.


API Reference Összefoglaló

Osztály/MódszerLeírás
FieldAlaposztály minden mezőtípushoz, beleértve a Start/Separator/End, Type, Update()
DocumentBuilder.InsertTableOfContents(switches)Szúrjon be egy FieldToc Word-stílusú TOC kapcsolók használatával
FieldTocMegvalósítja a TOC mezőt (tartalomjegyzék vagy ábrajegyzék)
FieldTCMegjelöli az egyéni tartalomjegyzék bejegyzést egy meghatározott helyen
FieldIndexMegvalósítja az INDEX mezőt, összeállítja a FieldXE jelölőket
FieldXEMegjelöli a helyet indexbejegyzésként
FieldToaMegvalósítja a hatóságok táblázata mezőt, összeállítja a FieldTA jelölőket
FieldTAMegjelöli a hivatkozást a hatóságok táblájához
FieldRDHivatkozik egy másik dokumentum tartalmára, amikor tartalomjegyzéket, indexet vagy hatóságok táblázatát állít össze
FieldIndexFormatEnum a Word beépített index vizuális stílusairól

Lásd még:

 Magyar