#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);
}
}
}
По какой-то причине доступ к заголовкам изменяет положение абзацев при визуализации, что приводит к различным значениям. Чтобы исправить это, я теперь обращаюсь к заголовкам как к последней части моего кода. Надеюсь, это кому-нибудь поможет.