C# interop: как перебирать цитаты в документе word?

Я хотел бы перебрать все цитаты в документе Word, который я добавляю, используя ленту «Цитаты и библиография >> Вставить цитату», но я не нахожу, где они расположены. Например, для перебора полей I

foreach (Field f in document.Fields)

но цитата - это не поле и нет объекта Document.Citations?

Я думаю вы ищете Таблицы властей

maccettura 10.08.2018 16:09

@maccettura, спасибо. Я должен был быть яснее в своей ОП. Я не добавляю цитату через «Список источников> Отметить цитирование», я использую «Цитаты и библиография> Вставить цитирование». В результате Document.TablesOfAuthorities.Count возвращает 0. (Я обновлю свой OP)

buttonsrtoys 10.08.2018 17:00

Может, тогда Библиография.?

maccettura 10.08.2018 17:13

@maaccettura, нет. Document.Bibliography.Sources.Count также возвращает 0.

buttonsrtoys 10.08.2018 17:21

@maccettura. Извините, надо было дать более подробную информацию. Bibliograph.Sources дает мне список источников, а не список ссылок на эти источники, что мне и нужно.

buttonsrtoys 10.08.2018 17:28
0
5
124
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

У меня нет опыта работы с библиотекой Interop, но, судя по вашим комментариям и поиску в Google, я думаю, вам нужно проверить Type объекта Field. Перечисление называется WdFieldType, а конкретное значение - WdFieldType.wdFieldCitation, которое, согласно документации, указывает «поле цитирования». Вы можете использовать базовую фильтрацию с помощью LINQ:

foreach(Field f in document.Fields.Where(x => x.Type == WdFieldType.wdFieldCitation))
{
    // Do something with citation fields
}

Другие вопросы по теме