以文化中立的方式设置Word 2007的行间距

时间:2011-01-12 19:00:53

标签: c# ms-word spacing

我在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 个答案:

答案 0 :(得分:5)

使用

怎么样?
Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;

您的代码未设置行间距,它会设置应用了特定行间距的样式。

引用该人询问他们是如何解决的,因为这是公认的答案:

  

正如Joey所说,解决方案是使用Word的内置样式。一世   通过将以下内容应用于我的Word._Application来解决此问题   对象:

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

答案 1 :(得分:1)

正如Joey所说,解决方案是使用Word的内置样式。我通过将以下内容应用于我的Word._Application对象来解决这个问题:

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