【问题标题】:Setting Line Spacing for Word 2007, in Culturally Neutral Way以文化中立的方式为 Word 2007 设置行距
【发布时间】:2015-02-25 08:24:20
【问题描述】:

我在 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);
}

但是,当尝试将其应用于某些区域/文化环境(例如意大利语和德语)时,这会打破常规。我相信这是因为“无间距”需要使用目标语言,而不是硬编码为英语。因此,我试图找出一种方法以更便携的方式应用相同的更改。

我已尝试筛选各种枚举,例如“WdBuiltinStyle”,但似乎找不到与“无间距”完成相同任务的枚举。

这里有人知道怎么做吗?

【问题讨论】:

    标签: c# ms-word spacing


    【解决方案1】:

    如何使用

    Selection.ParagraphFormat.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle;
    

    您的代码没有设置行距,它设置了一个应用了特定行距的样式。

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

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

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

    【讨论】:

    • 谢谢你,乔伊。但是,似乎“Word.WdLineSpacing.wdLineSpaceSingle”并没有完全消除额外的行距,因为我相信这也是另一个设置的障碍。在 Word 中使用标准界面时,可以在“段落”下的“间距”部分看到此设置,其中“之后:”默认设置为 10pt。所以,我认为也必须以某种方式操纵它,尽管我不知道如何操纵它。
    • 乔伊,我解决了剩下的问题。有关详细信息,请参阅下面的答案。感谢您引导我找到解决方案!
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多