Установка межстрочного интервала для Word 2007, культурно нейтральным способом - PullRequest
3 голосов
/ 12 января 2011

У меня проблемы с настройкой межстрочного интервала в Word 2007. В Word 2007 по умолчанию используется двойной интервал или дополнительное пространство между строками. Раньше я всегда с успехом использовал что-то похожее на это (в C #):

//No spacing when using Word version > 2003
//Word 2003 = "11.0"
//Word 2007 = "12.0"
Word.Application appVersion = new Word.Application();
string sVersion = appVersion.Version.ToString();
if (sVersion != "11.0")
{
    object noSpacingStyle = "No Spacing";
    oWord.ActiveWindow.Selection.set_Style(ref noSpacingStyle);
}

Но это ломается при попытке применить его в некоторых региональных / культурных условиях, таких как итальянский и немецкий. Я полагаю, что это потому, что «No Spacing» должен быть на целевом языке, а не жестко закодирован как английский. Итак, я пытаюсь найти способ применить это же изменение более переносимым способом.

Я пытался отсеивать различные перечисления, такие как «WdBuiltinStyle», но, похоже, не могу найти тот, который выполняет то же самое, что и «Без пробелов».

Кто-нибудь здесь знает, как этого добиться?

Ответы [ 2 ]

5 голосов
/ 12 января 2011

Как насчет использования

Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;

Ваш код не устанавливает межстрочный интервал, он устанавливает стиль, к которому применяется определенный межстрочный интервал.

Цитируя человека, спросившего, как они его решили, так как это принятый ответ:

Как предложил Джои, решение состоит в том, чтобы использовать встроенные в Word стили. я решил это, применив следующее к моему Word._Application объект:

oWord.ActiveWindow.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceSingle;
oWord.ActiveWindow.Selection.ParagraphFormat.SpaceAfter = 0.0F;
1 голос
/ 12 января 2011

Как предложил Джои, решение состоит в том, чтобы использовать встроенные в Word стили. Я решил эту проблему, применив к моему объекту Word._Application следующее:

oWord.ActiveWindow.Selection.ParagraphFormat.LineSpacingRule = Word.WdLineSpacing.wdLineSpaceSingle;
oWord.ActiveWindow.Selection.ParagraphFormat.SpaceAfter = 0.0F;
...