Класс Aspose::Words::Drawing::Shape

Shape class

Представляет объект в слое рисования, такой как AutoShape, текстовое поле, произвольная форма, OLE‑объект, элемент управления ActiveX или изображение. Чтобы узнать больше, посетите статью документации Working with Shapes .

class Shape : public Aspose::Words::Drawing::ShapeBase,
              public Aspose::Words::Drawing::Core::ITextBox,
              public Aspose::Words::Drawing::Core::IStrokable

Методы

МетодОписание
Accept(System::SharedPtr<Aspose::Words::DocumentVisitor>) overrideПринимает посетителя.
AcceptEnd(System::SharedPtr<Aspose::Words::DocumentVisitor>) overrideПринимает посетителя для посещения конца формы.
AcceptStart(System::SharedPtr<Aspose::Words::DocumentVisitor>) overrideПринимает посетителя для посещения начала фигуры.
AdjustWithEffects(System::Drawing::RectangleF)Добавляет к исходному прямоугольнику значения области эффекта и возвращает конечный прямоугольник.
AppendChild(T)
Clone(bool)Создаёт дубликат узла.
get_Adjustments()Предоставляет доступ к исходным значениям регулировки фигуры. Для фигуры, не содержащей никаких исходных значений регулировки, возвращает пустую коллекцию.
get_AllowOverlap()Получает или задает значение, указывающее, может ли эта фигура перекрывать другие фигуры.
get_AlternativeText()Определяет альтернативный текст, отображаемый вместо графики.
get_AnchorLocked()Указывает, зафиксирован ли якорь фигуры.
get_AspectRatioLocked()Указывает, зафиксировано ли соотношение сторон фигуры.
get_BehindText()Указывает, находится ли фигура ниже или выше текста.
get_Bottom()Получает позицию нижнего края содержащего блока фигуры.
get_Bounds()Получает или задает расположение и размер содержащего блока фигуры.
get_BoundsInPoints()Получает расположение и размер содержащего блока фигуры в пунктах, относительно якоря самой верхней фигуры.
get_BoundsWithEffects()Получает окончательный размер этого объекта фигуры после применения эффектов рисования. Значение измеряется в пунктах.
get_CanHaveImage()Возвращает true, если тип фигуры позволяет ей иметь изображение.
get_Chart()Предоставляет доступ к свойствам диаграммы, если у этой фигуры есть Chart.
get_CoordOrigin()Координаты в левом верхнем углу содержащего блока этой фигуры.
get_CoordSize()Ширина и высота координатного пространства внутри содержащего блока этой фигуры.
get_Count()Возвращает количество непосредственных дочерних элементов этого узла.
get_CustomNodeId() constУказывает пользовательский идентификатор узла.
get_DistanceBottom()Возвращает или задает расстояние (в пунктах) между текстом документа и нижним краем фигуры.
get_DistanceLeft()Возвращает или задает расстояние (в пунктах) между текстом документа и левым краем фигуры.
get_DistanceRight()Возвращает или задает расстояние (в пунктах) между текстом документа и правым краем фигуры.
get_DistanceTop()Возвращает или задает расстояние (в пунктах) между текстом документа и верхним краем фигуры.
virtual get_Document() constВозвращает документ, к которому принадлежит этот узел.
get_ExtrusionEnabled()Возвращает true, если эффект выдавливания включён.
get_Fill()Получает формат заливки для фигуры.
get_FillColor()Определяет цвет кисти, заполняющий замкнутый контур фигуры.
get_Filled()Определяет, будет ли замкнутый контур фигуры заполнен.
get_FirstChild() constВозвращает первого дочернего узла.
get_FirstParagraph()Получает первый абзац в фигуре.
get_FlipOrientation()Изменяет ориентацию фигуры.
get_Font()Предоставляет доступ к форматированию шрифта этого объекта.
get_Glow()Получает формат свечения для фигуры.
get_HasChart()Возвращает true, если у этого Shape есть Chart.
get_HasChildNodes()Возвращает true, если у этого узла есть дочерние узлы.
get_HasImage()Возвращает true, если у фигуры есть байты изображения или она ссылается на изображение.
get_HasSmartArt()Возвращает true, если у этого Shape есть объект SmartArt.
get_Height()Получает или задает высоту содержащего блока фигуры.
get_HeightRelative()Получает или задает значение, представляющее процент относительной высоты фигуры.
get_Hidden()Получает или задает логическое значение, указывающее, видима ли фигура.
get_HorizontalAlignment()Указывает, как фигура позиционируется по горизонтали.
get_HorizontalRuleFormat()Предоставляет доступ к свойствам фигуры горизонтальной линии. Для фигуры, не являющейся горизонтальной линией, возвращает null.
get_HRef()Получает или задает полный адрес гиперссылки для фигуры.
get_ImageData()Предоставляет доступ к изображению фигуры. Возвращает null, если у фигуры не может быть изображения.
get_IsComposite() overrideВозвращает true, поскольку этот узел может иметь дочерние узлы.
get_IsDecorative()Получает или задает флаг, указывающий, является ли фигура декоративной в документе.
get_IsDeleteRevision()Возвращает true, если этот объект был удалён в Microsoft Word при включённом отслеживании изменений.
get_IsGroup()Возвращает true, если это групповая фигура.
get_IsHorizontalRule()Возвращает true, если эта фигура является горизонтальной линией.
get_IsImage()Возвращает true, если эта фигура является изображением.
get_IsInline()Быстрый способ определить, позиционирована ли эта фигура в строке с текстом.
get_IsInsertRevision()Возвращает true, если этот объект был вставлен в Microsoft Word при включённом отслеживании изменений.
get_IsLayoutInCell()Получает или задает флаг, указывающий, отображается ли фигура внутри таблицы или снаружи.
get_IsMoveFromRevision()Возвращает true, если этот объект был перемещён (удалён) в Microsoft Word при включённом отслеживании изменений.
get_IsMoveToRevision()Возвращает true, если этот объект был перемещён (вставлен) в Microsoft Word при включённом отслеживании изменений.
get_IsSignatureLine()Указывает, что фигура является SignatureLine.
get_IsTopLevel()Возвращает true, если эта фигура не является дочерней для групповой фигуры.
get_IsWordArt()Возвращает true, если эта фигура является объектом WordArt.
get_LastChild() constВозвращает последнего дочернего узла.
get_LastParagraph()Получает последний абзац в фигуре.
get_Left()Получает или задает позицию левого края содержащего блока фигуры.
get_LeftRelative()Получает или задает значение, представляющее относительное левое положение фигуры в процентах.
get_MarkupLanguage() constПолучает MarkupLanguage, используемый для этого графического объекта.
get_Name()Получает или задает необязательное имя фигуры.
get_NextNode() const
get_NextSibling()Возвращает узел, непосредственно следующий за этим узлом.
get_NodeType() const overrideВозвращает Shape.
get_OleFormat()Предоставляет доступ к OLE-данным фигуры. Для фигуры, не являющейся OLE-объектом или элементом управления ActiveX, возвращает null.
get_ParentNode()Возвращает непосредственного родителя этого узла.
get_ParentParagraph()Возвращает непосредственный родительский абзац.
get_PreviousSibling()Возвращает узел, непосредственно предшествующий этому узлу.
get_PrevNode() const
get_Range()Возвращает объект Range, представляющий часть документа, содержащуюся в этом узле.
get_Reflection()Получает форматирование отражения для фигуры.
get_RelativeHorizontalPosition()Указывает, относительно чего фигура позиционируется по горизонтали.
get_RelativeHorizontalSize()Получает или задает значение относительного размера фигуры в горизонтальном направлении.
get_RelativeVerticalPosition()Указывает, относительно чего фигура позиционируется по вертикали.
get_RelativeVerticalSize()Получает или задает значение относительного размера фигуры в вертикальном направлении.
get_Right()Получает позицию правого края содержащего блока фигуры.
get_Rotation()Определяет угол (в градусах), на который повернута фигура. Положительное значение соответствует углу вращения по часовой стрелке.
get_ScreenTip()Определяет текст, отображаемый при наведении указателя мыши на фигуру.
get_ShadowEnabled()Возвращает true, если эффект тени включён.
get_ShadowFormat()Получает форматирование тени для фигуры.
get_ShapeType()Получает тип фигуры.
get_SignatureLine()Получает объект SignatureLine, если фигура является строкой подписи. В противном случае возвращает null.
get_SizeInPoints()Получает размер фигуры в пунктах.
get_SoftEdge()Получает форматирование мягких краёв для фигуры.
get_StoryType()Возвращает Textbox.
get_Stroke()Определяет обводку для фигуры.
get_StrokeColor()Определяет цвет обводки.
get_Stroked()Определяет, будет ли путь обведён штрихом.
get_StrokeWeight()Определяет толщину кисти, которой обводится путь фигуры, в пунктах.
get_Target()Получает или задаёт целевой фрейм для гиперссылки фигуры.
get_TextBox()Определяет атрибуты, указывающие, как текст отображается в фигуре.
get_TextPath()Определяет текст текстового пути (объекта WordArt).
get_Title()Получает или задаёт заголовок (подпись) текущего объекта фигуры.
get_Top()Получает или задаёт позицию верхнего края содержащего блока фигуры.
get_TopRelative()Получает или задаёт значение, представляющее относительное верхнее положение фигуры в процентах.
get_VerticalAlignment()Указывает, как фигура позиционируется вертикально.
get_Width()Получает или задаёт ширину содержащего блока фигуры.
get_WidthRelative()Получает или задаёт значение, представляющее процент относительной ширины фигуры.
get_WrapSide()Указывает, как текст обтекает фигуру.
get_WrapType()Определяет, является ли фигура встроенной или плавающей. Для плавающих фигур определяет режим обтекания текста вокруг фигуры.
get_ZOrder()Определяет порядок отображения перекрывающихся фигур.
GetAncestor(Aspose::Words::NodeType)Возвращает первого предка указанного NodeType.
GetAncestorOf()
GetChild(Aspose::Words::NodeType, int32_t, bool)Возвращает N‑й дочерний узел, соответствующий указанному типу.
GetChildNodes(Aspose::Words::NodeType, bool)Возвращает живую коллекцию дочерних узлов, соответствующих указанному типу.
GetEnumerator() overrideОбеспечивает поддержку итерации в стиле foreach по дочерним узлам этого узла.
GetShapeRenderer()Создаёт и возвращает объект, который можно использовать для отрисовки этой фигуры в изображение.
GetText() overrideПолучает текст этого узла и всех его дочерних узлов.
GetType() const override
IndexOf(const System::SharedPtr<Aspose::Words::Node>&)Возвращает индекс указанного дочернего узла в массиве дочерних узлов.
InsertAfter(T, const System::SharedPtr<Aspose::Words::Node>&)
InsertBefore(T, const System::SharedPtr<Aspose::Words::Node>&)
Is(const System::TypeInfo&) const override
IsAncestorNode(const System::SharedPtr<Aspose::Words::Node>&)
LocalToParent(System::Drawing::PointF)Преобразует значение из локального пространства координат в пространство координат родительской фигуры.
NextPreOrder(const System::SharedPtr<Aspose::Words::Node>&)Получает следующий узел согласно алгоритму обхода дерева в порядке предобхода.
static NodeTypeToString(Aspose::Words::NodeType)Вспомогательный метод, преобразующий значение перечисления типа узла в удобочитаемую строку.
PrependChild(T)
PreviousPreOrder(const System::SharedPtr<Aspose::Words::Node>&)Получает предыдущий узел согласно алгоритму обхода дерева в порядке предобхода.
Remove()Удаляет себя из родительского узла.
RemoveAllChildren()Удаляет все дочерние узлы текущего узла.
RemoveChild(T)
RemoveSmartTags()Удаляет все дочерние узлы SmartTag текущего узла.
SelectNodes(const System::String&)Выбирает список узлов, соответствующих XPath-выражению.
SelectSingleNode(const System::String&)Выбирает первый Node, соответствующий XPath-выражению.
set_AllowOverlap(bool)Сеттер для Aspose::Words::Drawing::ShapeBase::get_AllowOverlap.
set_AlternativeText(const System::String&)Сеттер для Aspose::Words::Drawing::ShapeBase::get_AlternativeText.
set_AnchorLocked(bool)Сеттер для Aspose::Words::Drawing::ShapeBase::get_AnchorLocked.
set_AspectRatioLocked(bool)Сеттер для Aspose::Words::Drawing::ShapeBase::get_AspectRatioLocked.
set_BehindText(bool)Сеттер для Aspose::Words::Drawing::ShapeBase::get_BehindText.
set_Bounds(System::Drawing::RectangleF)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Bounds.
set_CoordOrigin(System::Drawing::Point)Сеттер для Aspose::Words::Drawing::ShapeBase::get_CoordOrigin.
set_CoordSize(System::Drawing::Size)Сеттер для Aspose::Words::Drawing::ShapeBase::get_CoordSize.
set_CustomNodeId(int32_t)Сеттер для Aspose::Words::Node::get_CustomNodeId.
set_DistanceBottom(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_DistanceBottom.
set_DistanceLeft(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_DistanceLeft.
set_DistanceRight(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_DistanceRight.
set_DistanceTop(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_DistanceTop.
set_FillColor(System::Drawing::Color)Сеттер для Aspose::Words::Drawing::Shape::get_FillColor.
set_Filled(bool)Сеттер для Aspose::Words::Drawing::Shape::get_Filled.
set_FlipOrientation(Aspose::Words::Drawing::FlipOrientation)Сеттер для Aspose::Words::Drawing::ShapeBase::get_FlipOrientation.
set_Height(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Height.
set_HeightRelative(float)Сеттер для Aspose::Words::Drawing::ShapeBase::get_HeightRelative.
set_Hidden(bool)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Hidden.
set_HorizontalAlignment(Aspose::Words::Drawing::HorizontalAlignment)Сеттер для Aspose::Words::Drawing::ShapeBase::get_HorizontalAlignment.
set_HRef(const System::String&)Сеттер для Aspose::Words::Drawing::ShapeBase::get_HRef.
set_IsDecorative(bool)Сеттер для Aspose::Words::Drawing::ShapeBase::get_IsDecorative.
set_IsLayoutInCell(bool)Сеттер для Aspose::Words::Drawing::ShapeBase::get_IsLayoutInCell.
set_Left(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Left.
set_LeftRelative(float)Сеттер для Aspose::Words::Drawing::ShapeBase::get_LeftRelative.
set_Name(const System::String&)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Name.
set_NextNode(const System::SharedPtr<Aspose::Words::Node>&)
set_PrevNode(const System::SharedPtr<Aspose::Words::Node>&)
set_RelativeHorizontalPosition(Aspose::Words::Drawing::RelativeHorizontalPosition)Сеттер для Aspose::Words::Drawing::ShapeBase::get_RelativeHorizontalPosition.
set_RelativeHorizontalSize(Aspose::Words::Drawing::RelativeHorizontalSize)Сеттер для Aspose::Words::Drawing::ShapeBase::get_RelativeHorizontalSize.
set_RelativeVerticalPosition(Aspose::Words::Drawing::RelativeVerticalPosition)Сеттер для Aspose::Words::Drawing::ShapeBase::get_RelativeVerticalPosition.
set_RelativeVerticalSize(Aspose::Words::Drawing::RelativeVerticalSize)Сеттер для Aspose::Words::Drawing::ShapeBase::get_RelativeVerticalSize.
set_Rotation(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Rotation.
set_ScreenTip(const System::String&)Сеттер для Aspose::Words::Drawing::ShapeBase::get_ScreenTip.
set_StrokeColor(System::Drawing::Color)Сеттер для Aspose::Words::Drawing::Shape::get_StrokeColor.
set_Stroked(bool)Сеттер для Aspose::Words::Drawing::Shape::get_Stroked.
set_StrokeWeight(double)Сеттер для Aspose::Words::Drawing::Shape::get_StrokeWeight.
set_Target(const System::String&)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Target.
set_Title(const System::String&)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Title.
set_Top(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Top.
set_TopRelative(float)Сеттер для Aspose::Words::Drawing::ShapeBase::get_TopRelative.
set_VerticalAlignment(Aspose::Words::Drawing::VerticalAlignment)Сеттер для Aspose::Words::Drawing::ShapeBase::get_VerticalAlignment.
set_Width(double)Сеттер для Aspose::Words::Drawing::ShapeBase::get_Width.
set_WidthRelative(float)Сеттер для Aspose::Words::Drawing::ShapeBase::get_WidthRelative.
set_WrapSide(Aspose::Words::Drawing::WrapSide)Сеттер для Aspose::Words::Drawing::ShapeBase::get_WrapSide.
set_WrapType(Aspose::Words::Drawing::WrapType)Сеттер для Aspose::Words::Drawing::ShapeBase::get_WrapType.
set_ZOrder(int32_t)Сеттер для Aspose::Words::Drawing::ShapeBase::get_ZOrder.
SetParent(const System::SharedPtr<Aspose::Words::Node>&)
SetTemplateWeakPtr(uint32_t) override
Shape(const System::SharedPtr<Aspose::Words::DocumentBase>&, Aspose::Words::Drawing::ShapeType)Создает новый объект формы.
ToString(Aspose::Words::SaveFormat)Экспортирует содержимое узла в строку в указанном формате.
ToString(const System::SharedPtr<Aspose::Words::Saving::SaveOptions>&)Экспортирует содержимое узла в строку, используя указанные параметры сохранения.
static Type()
UpdateSmartArtDrawing()Обновляет предварительно отрисованный рисунок SmartArt, используя холодный движок рендеринга SmartArt библиотеки Aspose.Words.

Примечания

Используя класс Shape, вы можете создавать или изменять формы в документе Microsoft Word.

Важным свойством формы является её ShapeType. Формы разных типов могут иметь разные возможности в документе Word. Например, только графические и OLE‑формы могут содержать изображения. Большинство форм могут содержать текст, но не все.

Формы, которые могут содержать текст, могут иметь в качестве дочерних узлов Paragraph и Table.

Примеры

Показывает, как извлекать изображения из документа и сохранять их в локальную файловую систему как отдельные файлы.

auto doc = System::MakeObject<Aspose::Words::Document>(get_MyDir() + u"Images.docx");

// Получите коллекцию фигур из документа,
// и сохраните данные изображения каждой фигуры, содержащей изображение, в файл на локальной файловой системе.
System::SharedPtr<Aspose::Words::NodeCollection> shapes = doc->GetChildNodes(Aspose::Words::NodeType::Shape, true);

ASSERT_EQ(9, shapes->LINQ_Count(static_cast<System::Func<System::SharedPtr<Aspose::Words::Node>, bool>>(static_cast<std::function<bool(System::SharedPtr<Aspose::Words::Node> s)>>([](System::SharedPtr<Aspose::Words::Node> s) -> bool
{
    return (System::ExplicitCast<Aspose::Words::Drawing::Shape>(s))->get_HasImage();
}))));

int32_t imageIndex = 0;
for (auto&& shape : System::IterateOver(shapes->LINQ_OfType<System::SharedPtr<Aspose::Words::Drawing::Shape> >()))
{
    if (shape->get_HasImage())
    {
        // Данные изображений фигур могут содержать изображения во множестве возможных форматов.
        // Мы можем автоматически определить расширение файла для каждого изображения, исходя из его формата.
        System::String imageFileName = System::String::Format(u"File.ExtractImages.{0}{1}", imageIndex, Aspose::Words::FileFormatUtil::ImageTypeToExtension(shape->get_ImageData()->get_ImageType()));
        shape->get_ImageData()->Save(get_ArtifactsDir() + imageFileName);
        imageIndex++;
    }
}

Показывает, как вставить плавающее изображение в центр страницы.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

// Вставьте плавающее изображение, которое будет находиться позади перекрывающего текста, и выровняйте его по центру страницы.
System::SharedPtr<Aspose::Words::Drawing::Shape> shape = builder->InsertImage(get_ImageDir() + u"Logo.jpg");
shape->set_WrapType(Aspose::Words::Drawing::WrapType::None);
shape->set_BehindText(true);
shape->set_RelativeHorizontalPosition(Aspose::Words::Drawing::RelativeHorizontalPosition::Page);
shape->set_RelativeVerticalPosition(Aspose::Words::Drawing::RelativeVerticalPosition::Page);
shape->set_HorizontalAlignment(Aspose::Words::Drawing::HorizontalAlignment::Center);
shape->set_VerticalAlignment(Aspose::Words::Drawing::VerticalAlignment::Center);

doc->Save(get_ArtifactsDir() + u"Image.CreateFloatingPageCenter.docx");

Показывает, как удалить все формы из документа.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto builder = System::MakeObject<Aspose::Words::DocumentBuilder>(doc);

// Вставьте две формы вместе с групповой формой, внутри которой находится еще одна форма.
builder->InsertShape(Aspose::Words::Drawing::ShapeType::Rectangle, 400, 200);
builder->InsertShape(Aspose::Words::Drawing::ShapeType::Star, 300, 300);

auto group = System::MakeObject<Aspose::Words::Drawing::GroupShape>(doc);
group->set_Bounds(System::Drawing::RectangleF(100.0f, 50.0f, 200.0f, 100.0f));
group->set_CoordOrigin(System::Drawing::Point(-1000, -500));

auto subShape = System::MakeObject<Aspose::Words::Drawing::Shape>(doc, Aspose::Words::Drawing::ShapeType::Cube);
subShape->set_Width(500);
subShape->set_Height(700);
subShape->set_Left(0);
subShape->set_Top(0);

group->AppendChild<System::SharedPtr<Aspose::Words::Drawing::Shape>>(subShape);
builder->InsertNode(group);

ASSERT_EQ(3, doc->GetChildNodes(Aspose::Words::NodeType::Shape, true)->get_Count());
ASSERT_EQ(1, doc->GetChildNodes(Aspose::Words::NodeType::GroupShape, true)->get_Count());

// Удалите все узлы Shape из документа.
System::SharedPtr<Aspose::Words::NodeCollection> shapes = doc->GetChildNodes(Aspose::Words::NodeType::Shape, true);
shapes->Clear();

// Все формы удалены, но групповая форма всё ещё находится в документе.
ASSERT_EQ(1, doc->GetChildNodes(Aspose::Words::NodeType::GroupShape, true)->get_Count());
ASSERT_EQ(0, doc->GetChildNodes(Aspose::Words::NodeType::Shape, true)->get_Count());

// Удалите все групповые формы отдельно.
System::SharedPtr<Aspose::Words::NodeCollection> groupShapes = doc->GetChildNodes(Aspose::Words::NodeType::GroupShape, true);
groupShapes->Clear();

ASSERT_EQ(0, doc->GetChildNodes(Aspose::Words::NodeType::GroupShape, true)->get_Count());
ASSERT_EQ(0, doc->GetChildNodes(Aspose::Words::NodeType::Shape, true)->get_Count());

См. также