Информация.wdVerticalPositionRelativeToPage дает разные значения в VBA и C#

#com #office-interop

Вопрос:

Я перевожу фрагмент кода, написанного на VBA, на C# с помощью Microsoft.Офис.Взаимодействие.Словом, то, что я наблюдаю p.Range.Information[WdInformation.wdVerticalPositionRelativeToPage] в C#, дает другое значение по сравнению с при использовании в VBA p.Range.Information(wdVerticalPositionRelativeToPage) , где p-объект абзаца.

Это происходит всякий раз, когда фигура присутствует на странице документа Word. Мне было интересно, почему это происходит? Есть ли что-то другое в визуализации документов, когда документ открывается с помощью C# или VBA?

PS — в обоих случаях для видимости слов установлено значение false.

Изменить: Обновление — Я попытался установить значение видимости true, и я действительно наблюдаю различия в визуализации документа при запуске документа с использованием C# и с использованием VBA. Как мне это исправить?

Ответ №1:

Так что я разобрался в проблеме. Мой код пытался получить доступ к разделу заголовка, как это

 foreach (Section sect in objDoc.Sections)
        {
            foreach (HeaderFooter hf in sect.Headers)
            {
                someFunction(hf.Range.Paragraphs, false, false);
                if (hf.Shapes.Count > 0) // to handle shapes in Headers
                {
                    someFunction(hf.Shapes);
                }
            }
        }
 

По какой-то причине доступ к заголовкам изменяет положение абзацев при визуализации, что приводит к различным значениям. Чтобы исправить это, я теперь обращаюсь к заголовкам как к последней части моего кода. Надеюсь, это кому-нибудь поможет.