Grundvoraussetzung für die Funktion dieser Methode ist, eine Word Installation (Getestet mit Word 2007 und Word 2010).
1. Zunächst muss ein Verweis die zwei COM Objekte: Microsoft.Office.Core und Microsoft.Office.Interop.Word gesetzt werden.
2. Anschließend empfiehlt es sich einen Alias auf "Word" zu setzen, da sonst immer mit dem Vollqualifizierten Namen gearbeitet werden muss.
using Word = Microsoft.Office.Interop.Word;
public static List<string> GetTocNodes(FileInfo WordFile)
{
Object filePath = WordFile.FullName;
Word.Application wordApplication = new Word.Application();
wordApplication.Visible = false;
Word.Document wordDocument = new Word.Document();
wordDocument = wordApplication.Documents.Open(filePath);
//Inhaltsverzeichnis in tocContent speichern
string tocContent = wordApplication.ActiveDocument.TablesOfContents[1].Range.Text;
//Word Document und Anwendung schließen
wordDocument.Close();
wordApplication.Quit();
//Zerlegung des Inhaltsverzeichnisses in einzelne Überschriften
tocContent = tocContent.TrimEnd("\r".ToCharArray());
//Zerlegt das Inhaltsverzeichnis in einzelne Segmente
string[] paragraphs = tocContent.Split("\r".ToCharArray());
List<string> tocNodes = new List<string>();
foreach (string paragraph in paragraphs)
{
tocNodes.Add(paragraph)
}
return tocNodes;
}
Kommentare zum Snippet