Необходимо найти расположение и размер прямоугольников, обхватывающих каждое слово и картинку в документе Word (при заданных форматировании и параметрах страницы).
Пытаюсь это сделать через свойство Rectangles объекта Pages (_Document.ActiveWindow.ActivePane.Pages) следующим образом:
object missing = Type.Missing;
object fileName = @"c:\1.rtf";
object dontConfirmConversions = false;
object openReadWrite = true;
object nonVisible = false;
Word._Application wapp = new Microsoft.Office.Interop.Word.Application();
Word._Document doc = wapp.Documents.Open( ref fileName, ref dontConfirmConversions,
ref openReadWrite, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref nonVisible, ref missing, ref missing,
ref missing, ref missing );
Word.Pages pages = doc.ActiveWindow.ActivePane.Pages;
using ( StreamWriter sw = new StreamWriter( "TestFile.txt" ) ) {
foreach ( Word.Page p in pages ) {
Word.Rectangles rects = p.Rectangles;
foreach ( Word.Rectangle r in rects ) {
sw.WriteLine( " Width:" + r.Width + " Height: " + r.Height );
}
}
}
Этот код должен занести размеры всех обрамляющих прямоугольников в файл TestFile.txt.
Что он, в принципе, и делает

Но получается только одна запись, причем для любого файла (например, Width:312 Height: 728).
Я так понимаю, что это размер обрамляющего прямоугольника для всех данных в документе
Это хорошо, ведь есть свойство Lines объекта Rectangles, которое, в принципе, можно было бы использовать так:
Вместо цикла:
foreach ( Word.Rectangle r in rects ) {
sw.WriteLine( " Width:" + r.Width + " Height: " + r.Height );
}
Будем иметь такой:
foreach ( Word.Rectangle r in rects ) {
foreach ( Word.Line line in r.Lines ) {
foreach ( Word.Rectangle lr in line.Rectangles ) {
sw.WriteLine( " Width:" + r.Width + " Height: " + r.Height );
}
sw.WriteLine();
}
}
Однако при извлечении свойства line.Rectangles вылетает исключение.
Что посоветуете делать в такой ситуации?
Я понимаю, что вопрос довольно серьезный и требует действительного профессионализма, но я зашел в тупик, поэтому очень буду рад помощи.