【问题标题】:Adding a tab stop to a paragraph range in c#在c#中为段落范围添加制表位
【发布时间】:2013-06-08 02:00:17
【问题描述】:

在使用 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 文档中编辑它们。

请帮忙。

【问题讨论】:

  • Google 说 1cm = 28 点。不能完全解决您的问题,但仅供参考。
  • 或者你可以使用application.CentimetersToPoints(2f)(在你的Word应用对象上),或者MillimetersToPointsInchesToPoints

标签: c# interop word-2010


【解决方案1】:

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

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

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

这是在 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();
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2022-12-22
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多