【问题标题】:How to remove paragraph spacing in output using the Microsoft.Office.Interop.Word Library如何使用 Microsoft.Office.Interop.Word 库删除输出中的段落间距
【发布时间】:2019-02-02 17:20:05
【问题描述】:

在我的 C# 桌面应用程序中,我使用 Microsoft.Office.Interop.Word 库来写入 word 文件。但是每当它完成导出时,段落之间就会有巨大的空间。使用paragraph1.Range.ParagraphFormat.SpaceAfter = 0; 参数也不会影响结果。 我想要的结果是 Word 中的“无间距”预设,但经过一些研究,我发现它不是这个库的选项。 有什么方法可以删除或设置段落之间的间距。 这是我的代码:

 Microsoft.Office.Interop.Word.Application word = new Application();
 word.Visible = false;
 var doc = word.Documents.Add();
 var paragraph1 = doc.Content.Paragraphs.Add();

 paragraph1.Range.Font.Name = "Calibri";
 paragraph1.Range.Font.Size = 11;

 paragraph1.Range.ParagraphFormat.SpaceBefore = 0;
 paragraph1.Range.ParagraphFormat.SpaceAfter = 0;

 paragraph1.Range.Text = story;
 paragraph1.Range.InsertParagraphAfter();

 doc.SaveAs2(@"F:\Documents\Visual Studio Projects\LITPC\LITPC\bin\Debug\"+title+".docx");

 word.Quit();

【问题讨论】:

    标签: c# desktop-application


    【解决方案1】:

    首先,SpaceBeforeSpaceAfter 属性采用浮点数,因此您需要在值后面加上 f。 试试:paragraph1.SpaceBefore = 0.0f;,这对我有用。

    另外,插入新段落时请注意重置间距,因为后续段落将继承新的间距。

    或者,如果可以的话,完全避免使用 Interop Word,这是一个深邃、黑暗的兔子洞,我已经沉沦了好几天了。

    【讨论】:

      【解决方案2】:

      我通过更改上一段中的Word.Paragraph.SpaceAfter 参数解决了这个问题。例如。

      // First Paragraph
      Word.Paragraph mainTitle = document.Paragraphs.Add();
      mainTitle.Range.Text = "para1";
      mainTitle.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
      mainTitle.Range.InsertParagraphAfter();
      mainTitle.SpaceAfter = 0.0f;
      
      // Second Paragraph
      Word.Paragraph semiTitle = document.Paragraphs.Add();
      semiTitle.Range.Text = "para2";
      semiTitle.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
      semiTitle.Range.InsertParagraphAfter();
      semiTitle.SpaceAfter = 10.0f;
      

      因此,semiTitleSpaceAfter 将为 0。同样,semiTitle 之后的下一段的 SpaceAfter 将为 10。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-01
        • 1970-01-01
        • 2015-06-23
        • 2014-11-04
        • 2010-09-24
        相关资源
        最近更新 更多