Skip to main content

Метод Position::insertShape

Вставляет фигуру заданного типа в текущую позицию. Возвращает объект Shape, содержащий вставленную фигуру.

Информация

Данный метод позволяет добавить фигуру:

  • в позицию текстового документа, в том числе в header/footer;
  • в позицию текста ячейки таблицы текстового документа кроме случая, когда таблица находится внутри фигуры: в этом случае вставка запрещена.

Вызов​


insertShape(PresetGeometryType geometryType, Size<Unit> size)

Параметры​

‒ geometryType – вид фигуры, тип PresetGeometryType;

‒ size – геометрические размеры фигуры для вставки.

Возвращаемые ошибки​

  • NotImplementedError при вызове метода не из текстового документа;
  • DocumentModificationError при заблокированном контенте текстового документа;
  • NotImplementedError при попытке вставить внутри фигуры, в том числе в таблице;
  • NotImplementedError при вставке в footnote/endnote.

Пример вставки фигуры в позицию текстового документа​


auto shape = document.getRange().getBegin().insertShape(PresetGeometryType::Triangle, Size<float>(100.0, 100.0));

Пример вставки фигуры в заголовок (header) текстового документа​


auto headers = section.getHeaders();
std::shared_ptr<Enumerator<HeaderFooter>> headersEnumerator = headers.getEnumerator();
while (headersEnumerator->isValid())
{
auto header = headersEnumerator->getCurrent();
auto headerRange = header.getRange();
auto position = headerRange.getBegin();
position.insertShape(PresetGeometryType::Triangle, Size<float>(100.0, 100.0));

headersEnumerator->goToNext();
}

Пример вставки фигуры в ячейку таблицы текстового документа​


auto table = document.getBlocks().getTable(0);
auto cell = table.getCell("A1");
auto range = cell.getRange();
auto begin = range.getBegin();
auto shape = begin.insertShape(PresetGeometryType::Triangle, Size<float>(100.0, 100.0));