在c#的段落范围中添加制表位

时间:2013-05-16 14:23:59

标签: c# interop word-2010

我需要帮助,使用word interop和c#在一个word文档中添加制表位(1cm位置)。这是我已经尝试过的。

Range range = paragraph.Range;
int firstTabStart = range .Start;
range .SetRange(firstTabStart, firstTabStart);
range .Paragraphs.TabStops.Add(5, WdTabAlignment.wdAlignTabRight);

当我打开我的word文档时,我看不到任何标签停止。 但是我可以使用

插入制表符对齐
range .InsertAlignmentTab((int)WdAlignmentTabAlignment.wdCenter,
    (int)WdAlignmentTabRelative.wdMargin);

虽然这些标签是绝对的,我无法在word文档中编辑它们。

请帮忙。

1 个答案:

答案 0 :(得分:2)

我无法重现您遇到的问题,但我正在粘贴我测试过的代码,因此您可以查看它是否与现有代码有任何不同。

我看到制表位出现在标尺1和1处。每种情况下2厘米:

  • 使用.doc或.docx
  • 使用paragraphs.TabStops代替range.Paragraphs.TabStops
  • 使用空白文档
  • 使用包含1个或多个段落的文档
  • WdTabLeader方法中传递TabStops.Add的第三个参数。

这是在Word 2010中完成的

class Start
{
    public static void Main()
    {
        // Open a doc file.
        Application application = new Application();
        Document document = application.Documents.Open(@"C:\Users\mmonkan\Documents\word.docx");

        Paragraphs paragraphs = document.Paragraphs;
        Paragraph paragraph = paragraphs[1];
        Range range = paragraph.Range;
        range.SetRange(0, 0);

        range.Paragraphs.TabStops.Add(28, WdTabAlignment.wdAlignTabRight);
        range.Paragraphs.TabStops.Add(56, WdTabAlignment.wdAlignTabRight);

        // Close word.
        application.Quit(WdSaveOptions.wdSaveChanges);

        Console.ReadLine();
    }
}

enter image description here