abdul subhan mohammed Ответов: 1

Вычислите межстрочный интервал абзаца в word с помощью word interop C#


Дорогие Все,

Мы автоматизируем MsOffice в нашем приложении winForm (C#). Где я должен создать один метод для "оценки межстрочного интервала абзаца".

В документе word будут абзацы, и этот метод найдет межстрочный интервал от конкретного абзаца.

Я установил межстрочный интервал абзаца равным 1,5 от слова (вручную). Но когда я отлаживал код, я получал значение linespacing из этого абзаца "13.5", а не 1.5, что было неожиданно.

Что я уже пробовал:

<pre> public static bool FindLineSpacingInParagraph(IQuestion question, string filename, int paragraph, float lineSpacing)
        {
            WordInterop.Application wordApplication = GetOrCreateWordApplication(question.ObjectStore);

            try
            {
                //Avoid screen flickering or unwanted alerts while initializing
                wordApplication.ScreenUpdating = false;
                WordInterop.WdAlertLevel displayAlertLevel = wordApplication.DisplayAlerts;
                wordApplication.DisplayAlerts = WordInterop.WdAlertLevel.wdAlertsNone;

                WordInterop.Document wordDocument = wordApplication.Documents.Open(filename);


                if (paragraph >= wordDocument.Paragraphs.Count)
                    return false;

                WordInterop.Paragraph paragraphObject = wordDocument.Paragraphs[paragraph];
                if (paragraphObject == null)
                    return false;

                bool result = paragraphObject.LineSpacing == lineSpacing;//LineSpacing=13.5
                object save_changes = false;
                object missing = Type.Missing;
                wordDocument.Close(ref save_changes, ref missing, ref missing);
                return result;
            }
            catch (Exception)
            {
                Cleanup(question.ObjectStore, true);
            }
            return false;
        }



Кто-нибудь может пожалуйста помочь мне.

Спасибо

1 Ответов

Рейтинг:
11

Wessel Beulink

Насколько я знаю, вам нужно установить пространство строк абзаца, прежде чем получить результат или изменить его.

Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;


abdul subhan mohammed

Нет, я не устанавливаю значение, но сравниваю его с заданным значением.

Wessel Beulink

Откуда вы знаете, что данная сумма выражена в баллах? В документации не описывалось, что линейное пространство находится в точках только тогда, когда правило одно или несколько.