我正在尝试创建一个 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";
我显然遗漏了一些东西,因为每个例子都完全相同。地址的每行之间有额外的间距。
有人知道如何实现这个功能吗?
最佳答案
丹尼尔·A·怀特来救援!
使用This question ,答案是使用“垂直制表符”。直到现在我才听说过他们。
因此,将“\r\n”替换为“\v”效果非常好。
Paragraph para1 = document.Content.Paragraphs.Add(ref missing);
para1.Range.Font.Name = "Times New Roman";
para1.Range.Font.Size = 12;
para1.Range.Text = "Mr. John Doe\vAddress\vAnytown, AnyCity 12345";
关于Word Interop 中的 C# 行间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48769643/