Я сравнил результаты считывания (x, y) координат разных ячеек для двух разных таблиц. С одной стороны, работает отлично - и x, и y читаются правильно, тогда как для второй x должен быть разным, но одинаковым для двух ячеек. Я уверен, что я выбрал правильные ячейки, потому что их текст правильный (а также их высота и ширина). В обеих таблицах нет пустых ячеек, и индексы верны. Я также попробовал подход с выбором ячейки через Cell.Select () , а затем считывая вертикальное / горизонтальное положение из выбранного диапазона. Результат один и тот же.
Код, считывающий вертикальную и горизонтальную позицию ячейки (для разных значений индекса):
private ResultObject CreateresultObjectBasedOnTable(Table table, int cellIndex)
{
var resultObject = new ResultObject();
double DPIMultiplier = 200.0 / 220.0;
resultObject.y = table.Range.Cells[cellIndex].Range.
Information[WdInformation.wdVerticalPositionRelativeToPage] * DPIMultiplier;
resultObject.x = table.Range.Cells[cellIndex].Range.
Information[WdInformation.wdHorizontalPositionRelativeToPage] * DPIMultiplier;
resultObject.Height = table.Range.Cells[cellIndex].Height * DPIMultiplier;
resultObject.Width = table.Range.Cells[cellIndex].Width * DPIMultiplier;
return resultObject;
}
Для первой таблицы на прикрепленном рисунке, для cellIndex = 1, cellIndex = 2 и cellIndex = 3, результаты варьируются. Для второй таблицы для cellIndex = 1, cellIndex = 2 и cellIndex = 3 resultObject.x одинаковы.