【发布时间】:2018-02-13 23:31:46
【问题描述】:
我正在尝试创建一个行间距设置为“无间距”或单间距的 Word 文档。老实说,我不知道为什么这么难。
我已经尝试了所有这些示例,但都没有成功:
Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
para1.LineSpacingRule = WdLineSpacing.wdLineSpaceExactly ;
para1.LineSpacing = 1;
para1.Format.SpaceBefore = 5;
para1.Format.SpaceAfter = 0;
para1.Range.Font.Name = "Times New Roman";
para1.Range.Font.Size = 12;
para1.Range.Text = "Mr. John Doe" + Environment.NewLine + "Address" + Environment.NewLine + "Anytown, AnyCity 12345";
Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
para1.LineSpacingRule = WdLineSpacing.wdLineSpaceSingle ;
para1.Format.SpaceBefore = 5;
para1.Format.SpaceAfter = 0;
para1.Range.Font.Name = "Times New Roman";
para1.Range.Font.Size = 12;
para1.Range.Text = "Mr. John Doe" + Environment.NewLine + "Address" + Environment.NewLine + "Anytown, AnyCity 12345";
Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
para1.LineSpacingRule = <tried them all> ;
para1.Format.SpaceBefore = 5;
para1.Format.SpaceAfter = 0;
para1.Range.Font.Name = "Times New Roman";
para1.Range.Font.Size = 12;
para1.Range.Text = "Mr. John Doe\rAddress\rAnytown, AnyCity 12345";
Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
para1.LineSpacingRule = <tried them all> ;
para1.Format.SpaceBefore = 5;
para1.Format.SpaceAfter = 0;
para1.Range.Font.Name = "Times New Roman";
para1.Range.Font.Size = 12;
para1.Range.Text = "Mr. John Doe\rnAddress\rnAnytown, AnyCity 12345";
我显然遗漏了一些东西,因为每个示例结果都完全相同。地址的每一行之间有额外的间距。
有人知道怎么做吗?
【问题讨论】:
-
你使用的是哪个库?
-
Microsoft.Office.Interop.Word,运行时 v2.0.50727
-
我可能在这里找错树了,因为我的 Office.Interop 技能真的很差,但是一个新行不构成一个新段落吗?那么通过在段落文本中添加新行,当在 Word 中显示时,它将这些视为单独的段落,因此 SpaceBefore 和 SpaceAfter 生效?如果我错了就打我。更新:见stackoverflow.com/questions/24193619/…
-
可能是这样,但我尝试将“SpaceBefore”和“SpaceAfter”属性设置为零。还是不行。
-
是的!你的链接有答案。使用“\v”而不是“\r”或“\n”就可以了。非常感谢。
标签: c# ms-word office-interop