Метод 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));