0
我正在構建一個Word VSTO(VB.NET)程序,我需要從頂部,左側,右側和底部找到形狀點中的確切位置。我使用下面的代碼,Word VSTO - 查找文檔中形狀的位置?
objShape = Globals.ThisAddIn.Application.ActiveDocument.Shapes(intShapesLoop)
objShape.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionMargin
objShape.Select()
sngPageWidth = Globals.ThisAddIn.Application.Selection.Range.PageSetup.PageWidth
sngPageHeight = Globals.ThisAddIn.Application.Selection.Range.PageSetup.PageHeight
sngMarginsLeft = objShape.Left + Globals.ThisAddIn.Application.Selection.Range.PageSetup.LeftMargin
sngMarginsRight = sngPageWidth - (objShape.Width + sngMarginsLeft + sngGutterPosistionRight)
這工作正常,並顯示從左和右正確的位置值。但是,我使用下面的代碼作爲頂部和底部位置,
sngMarginsTop = objShape.Top + Globals.ThisAddIn.Application.Selection.Range.PageSetup.TopMargin
sngMarginsBottom = sngPageHeight - (objShape.Height + sngMarginsTop)
這顯示錯誤的位置值。這裏有什麼問題?從Top值顯示比正確值低12點
我發現這隻發生在少數文件上。它在大多數文檔上顯示正確的Top值,但是在很少的文檔上顯示錯誤的Top值。