Найдите количество страниц в разделе документа Word, используя Interop
Я пытаюсь найти количество страниц в разделе документа Word, используя Interop в C#.
Основная цель - выяснить, виден ли заголовок или нет. (Например, документ занимает всего 1 страницу, DifferentFirstpageHeaderFooter
включен, поэтому wdHeaderFooterPrimary
существует, но технически не отображается (потому что есть только 1 страница, а не 2 или более). Так что, если вы можете найти другой способ выяснить, как это сделать, я тоже в порядке.
В настоящее время, WdInformation.wdActiveEndPageNumber
работает, если в документе есть только 1 раздел, но если есть 2, и я делаю обработку второго раздела, wdActiveEndPageNumber
дает мне общее количество страниц, включая раздел 1.
var section = headerFooter.Parent as Section;
int numOfPages = section.Range.Information[WdInformation.wdActiveEndPageNumber];
1 ответ
У меня нет C# для этого, но с использованием синтаксиса VBA, что вам нужно для "раздела N"
а. если n = 1
тогда вы смотрите на
theDocument.sections[1].Range.Information[WdInformation.wdActiveEndPageNumber]
б. если n > 1
затем вы устанавливаете, что раздел n существует, а затем посмотрите на
theDocument.sections[n].Range.Information[WdInformation.wdActiveEndPageNumber]-
theDocument.sections[n-1].Range.Information[WdInformation.wdActiveEndPageNumber]
и обратите внимание, что case (b) может вернуть 0, если у вас есть непрерывный разрыв раздела на последней странице раздела n. Я не знаю, что это будет означать с точки зрения заголовков, которые у вас будут, но я надеюсь, что это будет означать, что у вас только что был заголовок первой страницы.