[DevExpress]透過 RichEditDocumentServer 在 Word檔 中加入「目錄索引」

要如何在一個 Word 檔中,加入 「目錄索引」呢?

我們有個Word檔,文件中有設定階層,如下圖,

可以看到,裡面並沒有「目錄索引(table of contents)」,那要如何產生「目錄索引」呢?

Devexpress 的 Rich Edit Document Server ,就可以幫我們達到這樣的需求。

只要透過新增一個「目錄索引(table of contents)」,就可以了。

先加入以下DLL參考,

DevExpress.Data
DevExpress.Docs
DevExpress.Office.Core
DevExpress.RichEDit.Core

程式如下,

//using DevExpress.XtraRichEdit;
//using DevExpress.XtraRichEdit.API.Native;
//建立 RichEditDocumentServer
RichEditDocumentServer srv = new RichEditDocumentServer();
//讀進 word 檔案
srv.LoadDocument(@"d:\rm.docx");
//取得 Document
Document doc = srv.Document;
doc.BeginUpdate();

//https://documentation.devexpress.com/#DocumentServer/CustomDocument15301
//在最前面加入 目錄索引
string tocCode = @"TOC \h"; 
Field todField = doc.Fields.Create(doc.Range.Start, tocCode);
//執行更新
todField.Update();

//加入分頁
Section newPageSession = doc.InsertSection(todField.Range.End);
newPageSession.StartType = SectionStartType.NextPage;

doc.EndUpdate();
//另存成RM2.Docx
doc.SaveDocument(@"d:\rm2.docx", DocumentFormat.OpenXml);

加入「目錄索引」後的內容如下,

當然也可以設定「目錄索引」要顯示到幾階,例如,顯示一、二階(標題1跟2)就使用 TOC \o 1-2,如下,

如果只要顯示二階的,就使用 TOC \o 2-2,如下, 

詳細可以參考: TOC

參考資料

透過 .NET Document Automation 來將Word檔轉成PDF,並加入浮水印

 

Hi, 

亂馬客Blog已移到了 「亂馬客​ : Re:從零開始的軟體開發生活

請大家繼續支持 ^_^