【问题标题】:WdInformation.wdVerticalPositionRelativeToPage gives different values in VBA vs C#WdInformation.wdVerticalPositionRelativeToPage 在 VBA 和 C# 中给出不同的值
【发布时间】:2021-10-30 21:30:07
【问题描述】:

我正在使用 Microsoft.Office.Interop.Word 将一段用 VBA 编写的代码翻译成 C# 我观察到的 p.Range.Information[WdInformation.wdVerticalPositionRelativeToPage] 在 C# 中与在 VBA 中使用时给出不同的值 p.Range.Information(wdVerticalPositionRelativeToPage) 其中 p 是段落对象。

只要 Word 文档页面上出现形状,就会发生这种情况。我想知道为什么会这样?当通过 C# 和 VBA 打开文档时,文档的呈现有什么不同吗?

PS - 在这两种情况下,单词可见性都设置为 false。

编辑:更新 - 我尝试将可见性设置为 true,并且在使用 C# 与使用 VBA 启动 Document 时,我确实观察到文档呈现的差异。我该如何解决这个问题?

【问题讨论】:

    标签: com office-interop


    【解决方案1】:

    所以我发现了问题所在。我的代码试图访问这样的标题部分

    foreach (Section sect in objDoc.Sections)
            {
                foreach (HeaderFooter hf in sect.Headers)
                {
                    someFunction(hf.Range.Paragraphs, false, false);
                    if (hf.Shapes.Count > 0) // to handle shapes in Headers
                    {
                        someFunction(hf.Shapes);
                    }
                }
            }
    

    由于某种原因,访问标题会改变渲染中段落的位置,从而导致不同的值。为了解决这个问题,我现在将标题作为代码中的最后一部分访问。希望这对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 2010-12-08
      • 1970-01-01
      • 2016-11-14
      • 1970-01-01
      • 2023-01-20
      • 2019-01-01
      • 2010-10-22
      • 1970-01-01
      • 2018-08-30
      相关资源
      最近更新 更多