Lucrul cu `Table of Contents
De multe ori vei lucra cu documente care conțin o listă de conţinuturi (TOC). Utilizând Aspose.Words, puteți insera propria dumneavoastră masă de conținut sau să reconstruiți complet un cuprins existent în document utilizând doar câteva linii de cod. Acest articol descrie modul de a lucra cu câmpul tabelului conținuturilor și demonstrează:
- Cum se inserează un
TOC
complet nou? - Actualizează noile sau existente TOC în documentul.
- Specificați comutatoare pentru a controla formatarea și structura generală a TOC-ului.
- Cum se modifică stilurile și aspectul tabelului de conținuturi.
“- Cum să elimini întregul câmp
TOC
împreună cu toate intrările din document.”
Inserează Tabele de Conținut Programatic
Puteți insera un TOC
(tabela de conținuturi) câmp în documentul la poziția curentă prin apelarea InsertTableOfContents metoda.
O masă de conținut într-un document Word poate fi construită în mai multe moduri și formatată folosind o varietate de opțiuni. Câmpurile de schimbare pe care le treci metodei controlează modul în care tabelul este construit și afișat în documentul tău.
Comutatoarele implicite utilizate într-un TOC
inserat în Microsoft Word sunt "\o 1-3 \h \z \u". Descrierea acestor comutatoare, precum și o listă cu comutatoare suportate poate fi găsită mai târziu în articol. Poţi fie folosi ghidul pentru a obţine întrerupătoarele corecte, fie dacă deja ai un document care conţine asemănătorul TOC
pe care îl vrei poţi arăta codurile de câmp (ALT+F9) şi copia întrerupătoarele direct din câmp.
Exemplul următor de cod arată cum să inserezi un câmp Tabela Conținuturilor într-un document:
Exemplul de cod următor arată cum se introduce un conținut (TOC) într-un document folosind stiluri de antet ca intrări.
TOC
, dar fără conținut vizibil. Acest lucru se datorează faptului că câmpul TOC
a fost inserat, dar nu este încă populat până când este actualizat în document. Mai multe informații despre asta se discută în secțiunea următoare.
Actualizare Tabela de Cuprins
Aspose.Words vă permite să actualizați complet un TOC
cu doar câteva linii de cod. Acest lucru poate fi realizat pentru a popula un nou inserat TOC
sau pentru a actualiza un TOC
existent după ce s-au făcut modificări la document. Următoarele două metode trebuie utilizate pentru a actualiza TOC
câmpurile în document:
Vă rugăm să rețineți că aceste două metode de actualizare trebuie să fie apelate în acea ordine. Dacă se inversează, tabelul de conținut va fi populat dar nu vor fi afișate numerele paginilor. Orice număr de TOC-uri diferite pot fi actualizate. Aceste metode vor actualiza automat toate TOC-urile găsite în document.
Exemplul de cod următor arată cum să se reconstruiască complet câmpurile TOC
din document prin invocarea actualizării câmpului:
Prima apelare la UpdateFields va construi TOC
, toate intrările text sunt populate și TOC
apare aproape completă. Singurul lucru lipsă sunt numerele paginilor care, pentru moment, se afișează cu “?”. A doua chemare la UpdatePageLayout va construi aspectul documentului în memorie. Acest lucru trebuie să fie făcut pentru a aduna numerele paginilor intrărilor. Numerele corecte de pagină calculate din această chemare sunt apoi inserate în TOC.
Utilizați comutatoare pentru a controla comportamentul tabelului de conținuturi
Ca în orice alt domeniu de câmp, domeniul TOC
poate accepta comutatoare definite în cadrul codului de câmp care controlează modul în care este construită lista de conținuturi. Sunt folosite anumite comutatoare pentru a controla intrările care sunt incluse și la ce nivel, în timp ce altele sunt utilizate pentru a controla aspectul de la TOC. Comutatoarele pot fi combinate împreună pentru a permite producerea unei tabele de conținut complexe.
În mod implicit, aceste comutatoare de mai sus sunt incluse atunci când se introduce un exemplu implicit TOC
în document. Un TOC
fără comutatoare va include conținut de la stilurile de antet încorporate (ca și cum s-ar seta comutatorul \O). Comutatoarele TOC
disponibile susţinute de Aspose.Words sunt enumerate mai jos şi utilizările lor sunt descrise în detaliu. Ei pot fi împărțiți în secțiuni separate pe baza tipului lor. Comutatoarele din prima secțiune definesc ce conținut să includă în TOC
iar comutatoarele din a doua secțiune controlează aspectul de aspect al TOC-ului. Dacă o comutare nu este enumerată aici atunci este în prezent neacceptată. Toate comutările vor fi acceptate în versiuni viitoare. Adăugăm din ce în ce mai multă asistență cu fiecare lansare.
Comutatoare de etichetare a intrărilor
Comutator | Descrierea |
---|---|
Heading Styles (\O Comutator) |
Acest comutator definește că Orice conținut formatat cu aceste stiluri sunt incluse în tabelul de conținut. Nivelul titlului va defini nivelul ierarhic corespunzător al intrării în TOC. De exemplu, un paragraf cu stilul de antet 1 va fi tratat ca primul nivel înTOC , în timp ce un paragraf cu antetul 2 va fi tratat ca următorul nivel în ierarhie și așa mai departe. |
Outline Levels (\switch) |
Fiecare paragraf poate defini un nivel de schiță sub Opțiuni de paragrafe. Acest set dictează nivelul la care ar trebui tratat acest punct în ierarhia documentelor. Aceasta este o practică folosită frecvent pentru a structura ușor aspectul unui document. Această ierarhie poate fi vizualizată prin comutarea la “Vizualizare în linie” în Microsoft Word. Similar cu stilurile de antet, pot exista 1 – 9 niveluri de enumerare în plus față de nivelul “Text de corp. Nivelurile de planificare 1 - 9 vor apărea înTOC la nivelul corespunzător din ierarhie Orice conținut cu un nivel de planificare, fie setat în stilul de paragraful sau direct pe paragraful însuși, este inclus în TOC. În Aspose.Words nivelul de contur este reprezentat de proprietatea ParagraphFormat.OutlineLevel a nodului Paragraf. Nivelul de contur al unui stil paragraf este reprezentat în același mod prin proprietatea Style.ParagraphFormat
Observați că stilurile încorporate de titlu, cum ar fi Titlu 1 au un nivel de contur obligatoriu setat în setările de stil.
|
Custom Styles *(\T comutator) * |
Această comutare va permite să se folosească stiluri personalizate când se colectează intrări pentru a fi utilizate în TOC. Aceasta este folosită adesea în combinație cu comutatorul \O pentru a include stiluri personalizate împreună cu stilurile de antet încorporate în TOC.
va folosi conținutul stilat cu CustomHeading1 ca și conținut de nivel 1 în |
Use TC Fields *(\F și \L Comutatoare) * |
În versiunile anterioare ale Microsoft Word, singura modalitate de a construi o FieldType.FieldTOCEntry . Comutatorul \F într- un TOC este utilizat pentru a specifica faptul că câmpurile TC trebuie utilizate ca intrări. Comutatorul pe cont propriu fără niciun identificator suplimentar înseamnă că orice câmp TC din document va fi inclus. Orice parametru suplimentar, adesea o singură literă, va desemna că numai câmpurile TC care au un comutator \f corespunzător vor fi incluse în TOC. De exemplu *
va include doar câmpurile TC, cum ar fi
Câmpul Câmpurile pot fi setate şi cu întrerupătoare. Acestea sunt:- *\F * - *\L UnTOC care utilizează același comutator va include acest câmp TC numai dacă acesta se încadrează în intervalul specificat. *- Da. Nu este afișată numerotarea paginii pentru această intrare |
Comutatoarele legate de aspect
Comutare | Descrierea |
---|---|
Omit Page Numbers (\N Comutator) |
Acest comutator este folosit pentru a ascunde numerele paginilor pentru anumite niveluri din MSO. De exemplu, puteți defini
Nu furnizând un interval de nivel va omite numerele paginilor pentru toate nivelurile în TOC. Este util să se stabilească atunci când se exportează un document către HTML sau o formă similară. Aceasta este deoarece formatul bazat pe HTML nu are nici un concept de pagină și astfel nu au nevoie de nici o numerotare a paginilor. |
Insert As Hyperlinks (\H Comutator) |
Această comutare specifică faptul că |
Set Separator Character (\P Comutator) |
Această comutare permite conținutul separării titlului intrării și numărarea paginilor să fie schimbat cu ușurință în TOC. Separatorul de utilizat ar trebui să fie specificat după acest comutator și închis în ghilimele. |
Preserve Tab Entries (\W Switch) |
Folosirea acestui comutator va specifica că orice intrări care au un caracter tab, de exemplu o antet care are un tab la sfârșitul liniei, va fi păstrată ca un caracter tab corect atunci când se popula TOC-ul. Aceasta înseamnă că funcția caracterului tab va fi prezent în |
Preserve New Line Entries (\X Comutator) |
Similar cu comutatorul de mai sus, acest comutator specifică că anteturile care se întind pe mai multe linii (utilizând caracterele de nouă linie nu paragrafe separate) vor fi păstrate așa cum sunt în TOC generat. De exemplu, un antet care este să se răspândească pe mai multe linii poate folosi caracterul de nouă linie (Ctrl + Enter sau |
Inserează câmpuri TC
Puteţi insera un câmp nou TC în poziţia curentă a DocumentBuilder prin apelarea metodei InsertField şi specificând numele câmpului ca “TC”, împreună cu orice comutatoare necesare.
Exemplul următor de cod arată cum să introducem un câmp TC
în document folosind DocumentBuilder:
De multe ori o linie specifică de text este desemnată pentru TOC
și este marcată cu un câmp TC
. Modul ușor de a face asta în Microsoft Word este să evidențiezi textul și să apeși ALT+SHIFT+O. Acest lucru creează automat un TC
câmp folosind textul selectat. Aceeași tehnică poate fi obținută prin cod. Codul de mai jos va găsi text care se potrivește cu intrare și va insera un TC
câmp în aceeași poziție cu text. Codul se bazează pe aceeași tehnică utilizată în articol.
Exemplul de cod următor arată cum să găsești și să introduci un câmp TC
text într-un document:
Modifică Tabelul de Conținut
Formatarea intrărilor în TOC
nu folosesc stilurile originale ale intrărilor marcate, în schimb fiecare nivel este formatat folosind un stil echivalent TOC
. De exemplu primul nivel din TOC
este formatat cu stilul TOC1, al doilea nivel este formatat cu stilul TOC2 şi aşa mai departe. Acest lucru înseamnă că pentru a schimba aspectul acestor TOC
aceste stiluri trebuie modificate. În Aspose.Words aceste stiluri sunt reprezentate de locala independentă StyleIdentifier.TOC1
până la StyleIdentifier.TOC9
și pot fi recuperate din colecția Styles utilizând aceste identificatori.
Odată ce stilul adecvat al documentului a fost recuperat, formatarea pentru acest stil poate fi modificată. Orice modificări ale acestor stiluri vor fi reflectate automat în TOC-urile din document.
Exemplul următor de cod schimbă o proprietate de formatare utilizată în primul nivel TOC
stil:
Este, de asemenea, util să rețineți că orice formatare directă a unui paragraf (definit pe paragraful în sine și nu în stil) marcat pentru a fi inclus în TOC
va fi copiat peste în intrarea în TOC. De exemplu, dacă stilul Heading 1 este utilizat pentru a marca conținutul pentru TOC
și acest stil are formatare bold în timp ce paragraful are de asemenea formatare cursivă aplicată direct. Intrarea rezultată TOC
nu va fi îngroșată ca acesta este o parte din formatare stil, dar va fi cursivă deoarece aceasta este direct formatată pe paragraful.
De asemenea, puteți controla formatarea separatorilor folosiți între fiecare intrare și număr de pagină. În mod implicit, aceasta este o linie punctată care este răspândită pe pagină numărând folosind un caracter tab și o linie de tab-oprire dreaptă aliniate aproape de marginea dreaptă.
Folosind clasa Style recuperată pentru nivelul specific TOC
pe care doriți să-l modificați, puteți, de asemenea, să modificați modul în care acestea apar în document. Pentru a modifica cum apare, mai întâi ParagraphFormat trebuie să fie apelat pentru a recupera formatarea paragrafului pentru stilul. Din aceasta se pot recupera oprirea de tab prin apelarea TabStops și oprirea de tab corespunzătoare poate fi modificată. Folosind tehnica aceea, bara în sine poate fi mutată sau chiar eliminată.
Exemplul următor de cod arată cum să modifici poziția drepte a tab-ului în TOC
paragrafe conexe:
Scădeţi Tabelele de Conţinut din Document
O listă de conținut poate fi eliminată din document prin eliminarea tuturor nodurilor găsite între nodul FieldStart
și FieldEnd de TOC
câmp. Codul de mai jos demonstrează acest lucru. Eliminarea câmpului TOC
este mai simplă decât un câmp obișnuit deoarece nu păstrăm evidența câmpurilor încastrate. În schimb verificăm că nodul FieldEnd este de tip FieldType.FieldTOC, ceea ce înseamnă că am întâlnit capătul TOC-ului curent. Această tehnică poate fi utilizată în acest caz fără a vă îngrijora cu privire la câmpuri imbricate deoarece putem presupune că orice document bine format nu va avea un câmp complet imbricat TOC
într-un alt câmp TOC
.
În primul rând, nodurile FieldStart ale fiecărui TOC
sunt colectate și stocate. Specificația dată TOC
este apoi enumerată astfel încât toate nodurile din câmp să fie vizitate și stocate. Nodurile sunt apoi eliminate din document.
Exemplul de cod de mai jos prezintă modul în care se elimină un TOC
specific dintr-un document:
Extrageți Tabelul de Cuprins
Dacă doriți să extrageți o masă de conținut dintr-un oricare document Word, următorul eșantion de cod poate fi utilizat: