Aspose::Words::Run class

Run class

Представляет последовательность символов с одинаковым форматированием шрифта. Чтобы узнать больше, посетите статью документации Programming with Documents.

class Run : public Aspose::Words::Inline

Методы

МетодОписание
Accept(System::SharedPtr<Aspose::Words::DocumentVisitor>) overrideПринимает посетителя.
Clone(bool)Создаёт дубликат узла.
get_CustomNodeId() constУказывает пользовательский идентификатор узла.
virtual get_Document() constВозвращает документ, к которому принадлежит этот узел.
get_Font()Предоставляет доступ к форматированию шрифта этого объекта.
virtual get_IsComposite()Возвращает true, если этот узел может содержать другие узлы.
get_IsDeleteRevision()Возвращает true, если этот объект был удалён в Microsoft Word при включённом отслеживании изменений.
get_IsFormatRevision()Возвращает true, если форматирование объекта было изменено в Microsoft Word при включённом отслеживании изменений.
get_IsInsertRevision()Возвращает true, если этот объект был вставлен в Microsoft Word при включённом отслеживании изменений.
get_IsMoveFromRevision()Возвращает true, если этот объект был перемещён (удалён) в Microsoft Word при включённом отслеживании изменений.
get_IsMoveToRevision()Возвращает true, если этот объект был перемещён (вставлен) в Microsoft Word при включённом отслеживании изменений.
get_IsPhoneticGuide()Возвращает логическое значение, указывающее, является ли прогон фонетическим руководством.
get_NextNode() const
get_NextSibling()Возвращает узел, непосредственно следующий за этим узлом.
get_NodeType() const overrideВозвращает Run.
get_ParentNode()Возвращает непосредственного родителя этого узла.
get_ParentParagraph()Получает родительский Paragraph этого узла.
get_PhoneticGuide()Возвращает объект PhoneticGuide.
get_PreviousSibling()Возвращает узел, непосредственно предшествующий этому узлу.
get_PrevNode() const
get_Range()Возвращает объект Range, представляющий часть документа, содержащуюся в этом узле.
get_Text() constПолучает или задает текст прогона.
GetAncestor(Aspose::Words::NodeType)Получает первого предка указанного NodeType.
GetAncestorOf()
GetText() overrideПолучает текст прогона.
GetType() const override
Is(const System::TypeInfo&) const override
IsAncestorNode(const System::SharedPtr<Aspose::Words::Node>&)
NextPreOrder(const System::SharedPtr<Aspose::Words::Node>&)Получает следующий узел согласно алгоритму обхода дерева в порядке предобхода.
static NodeTypeToString(Aspose::Words::NodeType)Вспомогательный метод, преобразующий значение перечисления типа узла в удобочитаемую строку.
PreviousPreOrder(const System::SharedPtr<Aspose::Words::Node>&)Получает предыдущий узел согласно алгоритму обхода дерева в порядке предобхода.
Remove()Удаляет себя из родительского узла.
Run(const System::SharedPtr<Aspose::Words::DocumentBase>&)Инициализирует новый экземпляр класса Run.
Run(const System::SharedPtr<Aspose::Words::DocumentBase>&, const System::String&)Инициализирует новый экземпляр класса Run.
set_CustomNodeId(int32_t)Сеттер для Aspose::Words::Node::get_CustomNodeId.
set_NextNode(const System::SharedPtr<Aspose::Words::Node>&)
set_PrevNode(const System::SharedPtr<Aspose::Words::Node>&)
set_Text(const System::String&)Сеттер для Aspose::Words::Run::get_Text.
SetParent(const System::SharedPtr<Aspose::Words::Node>&)
ToString(Aspose::Words::SaveFormat)Экспортирует содержимое узла в строку в указанном формате.
ToString(const System::SharedPtr<Aspose::Words::Saving::SaveOptions>&)Экспортирует содержимое узла в строку, используя указанные параметры сохранения.
static Type()

Примечания

Весь текст документа хранится в run’ах.

Run can only be a child of Paragraph or inline StructuredDocumentTag.

Примеры

Показывает, как форматировать run текста, используя его свойство font.

auto doc = System::MakeObject<Aspose::Words::Document>();
auto run = System::MakeObject<Aspose::Words::Run>(doc, u"Hello world!");

System::SharedPtr<Aspose::Words::Font> font = run->get_Font();
font->set_Name(u"Courier New");
font->set_Size(36);
font->set_HighlightColor(System::Drawing::Color::get_Yellow());

doc->get_FirstSection()->get_Body()->get_FirstParagraph()->AppendChild<System::SharedPtr<Aspose::Words::Run>>(run);
doc->Save(get_ArtifactsDir() + u"Font.CreateFormattedRun.docx");

Показывает, как добавить, обновить и удалить дочерние узлы в коллекции дочерних элементов CompositeNode.

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

// Пустой документ по умолчанию содержит один абзац.
ASSERT_EQ(1, doc->get_FirstSection()->get_Body()->get_Paragraphs()->get_Count());

// Составные узлы, такие как наш абзац, могут содержать другие составные и встроенные узлы в качестве дочерних.
System::SharedPtr<Aspose::Words::Paragraph> paragraph = doc->get_FirstSection()->get_Body()->get_FirstParagraph();
auto paragraphText = System::MakeObject<Aspose::Words::Run>(doc, u"Initial text. ");
paragraph->AppendChild<System::SharedPtr<Aspose::Words::Run>>(paragraphText);

// Создайте ещё три узла run.
auto run1 = System::MakeObject<Aspose::Words::Run>(doc, u"Run 1. ");
auto run2 = System::MakeObject<Aspose::Words::Run>(doc, u"Run 2. ");
auto run3 = System::MakeObject<Aspose::Words::Run>(doc, u"Run 3. ");

// Тело документа не будет отображать эти run'ы, пока мы не вставим их в составной узел
// который сам является частью дерева узлов документа, как мы сделали с первым run.
// Мы можем определить, где будет находиться текстовое содержимое узлов, которые мы вставляем
// в документе, указав место вставки относительно другого узла в абзаце.
ASSERT_EQ(u"Initial text.", paragraph->GetText().Trim());

// Вставьте второй run в абзац перед начальным run.
paragraph->InsertBefore<System::SharedPtr<Aspose::Words::Run>>(run2, paragraphText);

ASSERT_EQ(u"Run 2. Initial text.", paragraph->GetText().Trim());

// Вставьте третий run после начального run.
paragraph->InsertAfter<System::SharedPtr<Aspose::Words::Run>>(run3, paragraphText);

ASSERT_EQ(u"Run 2. Initial text. Run 3.", paragraph->GetText().Trim());

// Вставьте первый run в начало коллекции дочерних узлов абзаца.
paragraph->PrependChild<System::SharedPtr<Aspose::Words::Run>>(run1);

ASSERT_EQ(u"Run 1. Run 2. Initial text. Run 3.", paragraph->GetText().Trim());
ASSERT_EQ(4, paragraph->GetChildNodes(Aspose::Words::NodeType::Any, true)->get_Count());

// Мы можем изменить содержимое run, редактируя и удаляя существующие дочерние узлы.
(System::ExplicitCast<Aspose::Words::Run>(paragraph->GetChildNodes(Aspose::Words::NodeType::Run, true)->idx_get(1)))->set_Text(u"Updated run 2. ");
paragraph->GetChildNodes(Aspose::Words::NodeType::Run, true)->Remove(paragraphText);

ASSERT_EQ(u"Run 1. Updated run 2. Run 3.", paragraph->GetText().Trim());
ASSERT_EQ(3, paragraph->GetChildNodes(Aspose::Words::NodeType::Any, true)->get_Count());

Показывает, как вручную построить документ Aspose.Words.

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

// Пустой документ содержит один раздел, одно тело и один абзац.
// Вызовите метод "RemoveAllChildren", чтобы удалить все эти узлы,
// и в результате получите узел документа без дочерних элементов.
doc->RemoveAllChildren();

// У этого документа теперь нет составных дочерних узлов, к которым мы могли бы добавить содержимое.
// Если мы захотим отредактировать его, нам потребуется заново заполнить его коллекцию узлов.
// Сначала создайте новый раздел, а затем добавьте его как дочерний элемент к корневому узлу документа.
auto section = System::MakeObject<Aspose::Words::Section>(doc);
doc->AppendChild<System::SharedPtr<Aspose::Words::Section>>(section);

// Установите некоторые свойства разметки страницы для раздела.
section->get_PageSetup()->set_SectionStart(Aspose::Words::SectionStart::NewPage);
section->get_PageSetup()->set_PaperSize(Aspose::Words::PaperSize::Letter);

// Разделу требуется тело, которое будет содержать и отображать всё его содержимое
// на странице между заголовком и нижним колонтитулом раздела.
auto body = System::MakeObject<Aspose::Words::Body>(doc);
section->AppendChild<System::SharedPtr<Aspose::Words::Body>>(body);

// Создайте абзац, задайте некоторые свойства форматирования и затем добавьте его как дочерний элемент к телу.
auto para = System::MakeObject<Aspose::Words::Paragraph>(doc);

para->get_ParagraphFormat()->set_StyleName(u"Heading 1");
para->get_ParagraphFormat()->set_Alignment(Aspose::Words::ParagraphAlignment::Center);

body->AppendChild<System::SharedPtr<Aspose::Words::Paragraph>>(para);

// Наконец, добавьте некоторое содержимое в документ. Создайте объект Run,
// задайте его внешний вид и содержимое, а затем добавьте его как дочерний элемент к абзацу.
auto run = System::MakeObject<Aspose::Words::Run>(doc);
run->set_Text(u"Hello World!");
run->get_Font()->set_Color(System::Drawing::Color::get_Red());
para->AppendChild<System::SharedPtr<Aspose::Words::Run>>(run);

ASSERT_EQ(u"Hello World!", doc->GetText().Trim());

doc->Save(get_ArtifactsDir() + u"Section.CreateManually.docx");

См. также