Форматирование текста
Выделение текста
В классах ITextFrame и TextFrame был добавлен новый метод HighlightText. Он позволяет выделять часть текста на фоне, используя образец текста, аналогично инструменту цвета выделения текста в PowerPoint 2019.
Ниже приведен фрагмент кода, демонстрирующий, как использовать эту функцию:
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(u"SomePresentation.pptx"); | |
// highlighting all words 'important' | |
(System::DynamicCast<Aspose::Slides::AutoShape> (presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)))->get_TextFrame()->HighlightText(u"important", System::Drawing::Color::get_LightBlue()); | |
auto options = System::MakeObject<TextHighlightingOptions>(); | |
options->set_WholeWordsOnly(true); | |
// highlighting all separate 'the' occurrences | |
(System::DynamicCast <Aspose::Slides::AutoShape>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)))->get_TextFrame()->HighlightText(u"the", System::Drawing::Color::get_Violet(), options); | |
presentation->Save(u"../out/SomePresentation-out.pptx", Aspose::Slides::Export::SaveFormat::Pptx); |
Выделение текста с использованием регулярного выражения
В классах ITextFrame и TextFrame был добавлен новый метод HighlightRegex. Он позволяет выделять часть текста на фоне с использованием регулярных выражений, аналогично инструменту цвета выделения текста в PowerPoint 2019.
Ниже приведен фрагмент кода, демонстрирующий, как использовать эту функцию:
System::SharedPtr<Presentation> presentation = System::MakeObject<Presentation>(u"SomePresentation.pptx"); | |
System::SharedPtr <TextHighlightingOptions> options = System::MakeObject<TextHighlightingOptions>(); | |
// highlighting all words with 10 symbols or longer | |
(System::DynamicCast <Aspose::Slides::AutoShape>(presentation->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)))->get_TextFrame()->HighlightRegex(u"\\b[^\\s]{10,}\\b", System::Drawing::Color::get_LightGoldenrodYellow(), options); | |
presentation->Save(u"../out/SomePresentation-out.pptx", Aspose::Slides::Export::SaveFormat::Pptx); |
Установка фона текста
Aspose.Slides позволяет вам указать предпочитаемый цвет фона для текста.
Этот код на C++ показывает, как установить цвет фона для всего текста:
{
auto pres = System::MakeObject<Presentation>();
System::SharedPtr<IAutoShape> autoShape = pres->get_Slide(0)->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 50.0f, 50.0f, 200.0f, 100.0f);
auto paragraphs = autoShape->get_TextFrame()->get_Paragraphs();
paragraphs->Clear();
System::SharedPtr<Paragraph> para = System::MakeObject<Paragraph>();
auto portion1 = System::MakeObject<Portion>(u"Черный");
portion1->get_PortionFormat()->set_FontBold(NullableBool::True);
auto portion2 = System::MakeObject<Portion>(u" Красный ");
auto portion3 = System::MakeObject<Portion>(u"Черный");
portion3->get_PortionFormat()->set_FontBold(NullableBool::True);
auto paragraphPortions = para->get_Portions();
paragraphPortions->Add(portion1);
paragraphPortions->Add(portion2);
paragraphPortions->Add(portion3);
paragraphs->Add(para);
pres->Save(u"text.pptx", SaveFormat::Pptx);
}
{
auto pres = System::MakeObject<Presentation>(u"text.pptx");
auto autoShape = System::ExplicitCast<IAutoShape>(pres->get_Slide(0)->get_Shape(0));
auto portions = autoShape->get_TextFrame()->get_Paragraph(0)->get_Portions();
for (auto&& portion : portions)
{
portion->get_PortionFormat()->get_HighlightColor()->set_Color(System::Drawing::Color::get_Blue());
}
pres->Save(u"text-red.pptx", SaveFormat::Pptx);
}
Этот код на C++ показывает, как установить цвет фона только для части текста:
{
auto pres = System::MakeObject<Presentation>();
System::SharedPtr<IAutoShape> autoShape = pres->get_Slide(0)->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 50.0f, 50.0f, 200.0f, 100.0f);
auto paragraphs = autoShape->get_TextFrame()->get_Paragraphs();
paragraphs->Clear();
System::SharedPtr<Paragraph> para = System::MakeObject<Paragraph>();
auto portion1 = System::MakeObject<Portion>(u"Черный");
portion1->get_PortionFormat()->set_FontBold(NullableBool::True);
auto portion2 = System::MakeObject<Portion>(u" Красный ");
auto portion3 = System::MakeObject<Portion>(u"Черный");
portion3->get_PortionFormat()->set_FontBold(NullableBool::True);
auto paragraphPortions = para->get_Portions();
paragraphPortions->Add(portion1);
paragraphPortions->Add(portion2);
paragraphPortions->Add(portion3);
paragraphs->Add(para);
pres->Save(u"text.pptx", SaveFormat::Pptx);
}
{
auto pres = System::MakeObject<Presentation>(u"text.pptx");
auto autoShape = System::ExplicitCast<IAutoShape>(pres->get_Slide(0)->get_Shape(0));
auto predicate = [](System::SharedPtr<IPortion> portion) -> bool {
return portion->get_Text().Contains(u"Красный");
};
auto portions = autoShape->get_TextFrame()->get_Paragraph(0)->get_Portions();
System::SharedPtr<IPortion> redPortion;
for (auto&& portion : portions)
if (predicate(portion))
redPortion = portion;
redPortion->get_PortionFormat()->get_HighlightColor()->set_Color(System::Drawing::Color::get_Red());
pres->Save(u"text-red.pptx", SaveFormat::Pptx);
}
Выравнивание текстового абзаца
Форматирование текста является одним из ключевых элементов при создании любых документов или презентаций. Мы знаем, что Aspose.Slides для C++ поддерживает добавление текста на слайды, но в этой теме мы увидим, как можно контролировать выравнивание текстовых абзацев на слайде. Пожалуйста, выполните следующие шаги, чтобы выровнять текстовые абзацы с использованием Aspose.Slides для C++:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд, используя его индекс.
- Получите доступ к фигурам-заместителям на слайде и приведите их к типу AutoShape.
- Получите абзац (который нужно выровнять) из TextFrame, доступного через AutoShape.
- Выровняйте абзац. Абзац можно выровнять по правому краю, левому, центру и по ширине.
- Запишите измененную презентацию как файл PPTX.
Имплементация вышеперечисленных шагов представлена ниже.
// The path to the documents directory. | |
const String outPath = u"../out/ParagraphsAlignment_out.pptx"; | |
const String templatePath = u"../templates/DefaultFonts.pptx"; | |
// Load the desired the presentation | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath); | |
// Access first slide | |
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0); | |
// Accessing the first and second placeholder in the slide and typecasting it as AutoShape | |
SharedPtr<IShape> shape1 = slide->get_Shapes()->idx_get(0); | |
SharedPtr<IShape> shape2 = slide->get_Shapes()->idx_get(1); | |
SharedPtr<AutoShape> ashp1 = DynamicCast<Aspose::Slides::AutoShape>(shape1); | |
SharedPtr<AutoShape> ashp2 = DynamicCast<Aspose::Slides::AutoShape>(shape2); | |
SharedPtr<ITextFrame> tf1 = ashp1->get_TextFrame(); | |
SharedPtr<ITextFrame> tf2 = ashp2->get_TextFrame(); | |
// Change the text in both placeholders | |
tf1->set_Text (u"Center Align by Aspose"); | |
tf2->set_Text(u"Center Align by Aspose"); | |
// Accessing the first Paragraph | |
SharedPtr<IParagraph> para1 = tf1->get_Paragraphs()->idx_get(0); | |
SharedPtr<IParagraph> para2 = tf2->get_Paragraphs()->idx_get(0); | |
// Aligning the text paragraph to center | |
para1->get_ParagraphFormat()->set_Alignment (TextAlignment::Center); | |
para2->get_ParagraphFormat()->set_Alignment(TextAlignment::Center); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Установка прозрачности для текста
Эта статья демонстрирует, как установить свойство прозрачности для любой текстовой фигуры с использованием Aspose.Slides. Чтобы установить прозрачность текста, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите ссылку на слайд.
- Установите цвет тени.
- Запишите презентацию как файл PPTX.
Имплементация вышеперечисленных шагов представлена ниже.
const String templatePath = u"../templates/transparency.pptx"; | |
const String outPath = u"../out/transparency-out.pptx"; | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath); | |
SharedPtr<IAutoShape> shape = DynamicCast<IAutoShape>(pres->get_Slides()->idx_get(0)->get_Shapes()->idx_get(0)) ; | |
SharedPtr<IEffectFormat> effects = shape->get_TextFrame()->get_Paragraphs()->idx_get(0)->get_Portions()->idx_get(0)->get_PortionFormat()->get_EffectFormat(); | |
SharedPtr<Aspose::Slides::Effects::IOuterShadow> outerShadowEffect = effects->get_OuterShadowEffect(); | |
System::Drawing::Color shadowColor = outerShadowEffect->get_ShadowColor()->get_Color(); | |
// set transparency to zero percent | |
outerShadowEffect->get_ShadowColor()->set_Color(System::Drawing::Color(shadowColor.FromArgb(255, shadowColor))); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); |
Установка межбуквенного интервала для текста
Aspose.Slides позволяет вам устанавливать расстояние между буквами в текстовом блоке. Таким образом, вы можете регулировать визуальную плотность строки или блока текста, расширяя или сжимая промежутки между символами.
Этот код на C++ показывает, как расширить промежуток для одной строки текста и сжать промежуток для другой строки:
auto presentation = System::MakeObject<Presentation>(u"in.pptx");
auto slide = presentation->get_Slides()->idx_get(0);
auto textBox1 = System::ExplicitCast<IAutoShape>(slide->get_Shapes()->idx_get(0));
auto textBox2 = System::ExplicitCast<IAutoShape>(slide->get_Shapes()->idx_get(1));
textBox1->get_TextFrame()->get_Paragraph(0)->get_ParagraphFormat()->get_DefaultPortionFormat()->set_Spacing(20.0f); // расширить
textBox2->get_TextFrame()->get_Paragraph(0)->get_ParagraphFormat()->get_DefaultPortionFormat()->set_Spacing(-2.0f); // сжать
presentation->Save(u"out.pptx", SaveFormat::Pptx);
Управление свойствами шрифта абзаца
Презентации обычно содержат как текст, так и изображения. Текст можно форматировать различными способами, либо чтобы выделить конкретные разделы и слова, либо чтобы соответствовать корпоративным стилям. Форматирование текста помогает пользователям разнообразить внешний вид содержимого презентации. Эта статья показывает, как использовать Aspose.Slides для C++, чтобы настроить свойства шрифта абзацев текста на слайдах. Для управления свойствами шрифта абзаца с помощью Aspose.Slides для C++:
- Создайте экземпляр класса
Presentation
. - Получите ссылку на слайд, используя его индекс.
- Получите доступ к фигурным заместителям на слайде и приведите их к типу AutoShape.
- Получите абзац из TextFrame, доступного через AutoShape.
- Выровняйте абзац по ширине.
- Получите доступ к текстовой порции абзаца.
- Определите шрифт с помощью FontData и установите шрифт текстовой порции соответственно.
- Установите шрифт как полужирный.
- Установите шрифт как курсивный.
- Установите цвет шрифта с помощью FillFormat, доступного через объект Portion.
- Запишите измененную презентацию в файл PPTX.
Имплементация вышеперечисленных шагов представлена ниже. Она берет неоформленную презентацию и форматирует шрифты на одном из слайдов.
// The path to the documents directory. | |
const String outPath = u"../out/FontProperties_out.pptx"; | |
const String templatePath = u"../templates/DefaultFonts.pptx"; | |
// Load the desired the presentation | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath); | |
// Access first slide | |
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0); | |
// Accessing the first and second placeholder in the slide and typecasting it as AutoShape | |
SharedPtr<IShape> shape1 = slide->get_Shapes()->idx_get(0); | |
SharedPtr<IShape> shape2 = slide->get_Shapes()->idx_get(1); | |
SharedPtr<AutoShape> ashp1 = DynamicCast<Aspose::Slides::AutoShape>(shape1); | |
SharedPtr<AutoShape> ashp2 = DynamicCast<Aspose::Slides::AutoShape>(shape2); | |
SharedPtr<ITextFrame> tf1 = ashp1->get_TextFrame(); | |
SharedPtr<ITextFrame> tf2 = ashp2->get_TextFrame(); | |
// Accessing the first Paragraph | |
SharedPtr<IParagraph> para1 = tf1->get_Paragraphs()->idx_get(0); | |
SharedPtr<IParagraph> para2 = tf2->get_Paragraphs()->idx_get(0); | |
// Accessing the first portion | |
SharedPtr<IPortion> port1 = para1->get_Portions()->idx_get(0); | |
SharedPtr<IPortion> port2 = para2->get_Portions()->idx_get(0); | |
// Define new fonts | |
SharedPtr<FontData> fd1 = MakeObject<FontData>(u"Elephant"); | |
SharedPtr<FontData> fd2 = MakeObject<FontData>(u"Castellar"); | |
// Assign new fonts to portion | |
port1->get_PortionFormat()->set_LatinFont ( fd1); | |
port2->get_PortionFormat()->set_LatinFont(fd2); | |
// Set font to Bold | |
port1->get_PortionFormat()->set_FontBold ( NullableBool::True); | |
port2->get_PortionFormat()->set_FontBold ( NullableBool::True); | |
// Set font to Italic | |
port1->get_PortionFormat()->set_FontItalic( NullableBool::True); | |
port2->get_PortionFormat()->set_FontItalic ( NullableBool::True); | |
// Set font color | |
port1->get_PortionFormat()->get_FillFormat()->set_FillType ( FillType::Solid); | |
port1->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color ( Color::get_Purple()); | |
port2->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid); | |
port2->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Peru()); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Управление семейством шрифтов текста
Порция используется для хранения текста с аналогичным стилем форматирования в абзаце. Эта статья показывает, как использовать Aspose.Slides для C++, чтобы создать текстовое поле с некоторым текстом, а затем определить конкретный шрифт и различные другие свойства из категории семейства шрифтов. Чтобы создать текстовое поле и установить свойства шрифта текста в нём:
- Создайте экземпляр класса
Presentation
. - Получите ссылку на слайд, используя его индекс.
- Добавьте AutoShape типа Rectangle на слайд.
- Удалите стиль заливки, связанный с AutoShape.
- Получите доступ к TextFrame AutoShape.
- Добавьте текст в TextFrame.
- Получите доступ к объекту Portion, связанному с TextFrame.
- Определите шрифт, который будет использоваться для порции.
- Установите другие свойства шрифта, такие как полужирный, курсивный, подчеркнутый, цвет и высота, используя соответствующие свойства, предоставленные объектом Portion.
- Запишите измененную презентацию как файл PPTX.
Имплементация вышеперечисленных шагов представлена ниже.
// The path to the documents directory. | |
const String outPath = u"../out/SetTextFontProperties_out.pptx"; | |
const String templatePath = u"../templates/DefaultFonts_out.pptx"; | |
// Load the desired the presentation | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
// Access first slide | |
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0); | |
// Add an AutoShape of Rectangle type | |
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50); | |
// Add TextFrame to the Rectangle | |
ashp->AddTextFrame(u"Aspose TextBox"); | |
ashp->get_FillFormat()->set_FillType(FillType::NoFill); | |
// Accessing the text frame | |
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame(); | |
txtFrame->get_TextFrameFormat()->set_AutofitType(TextAutofitType::Shape); | |
SharedPtr<FontData> destFont = MakeObject<FontData>(u"Times New Roman"); | |
// Create the Paragraph object for text frame | |
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0); | |
// Create Portion object for paragraph | |
SharedPtr<IPortion>portion = paragraph->get_Portions()->idx_get(0); | |
portion->get_PortionFormat()->set_LatinFont(destFont); | |
// Set font to Bold | |
portion->get_PortionFormat()->set_FontBold(NullableBool::True); | |
// Set font to Italic | |
portion->get_PortionFormat()->set_FontItalic(NullableBool::True); | |
// Set text to underline | |
portion->get_PortionFormat()->set_FontUnderline ( TextUnderlineType::Single); | |
// Set the Height of the Font | |
portion->get_PortionFormat()->set_FontHeight ( 25); | |
// Set font color | |
portion->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid); | |
portion->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Blue()); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Установка размера шрифта для текста
Aspose.Slides позволяет вам выбрать предпочитаемй размер шрифта для существующего текста в абзаце и других текстов, которые могут быть добавлены в абзац позже.
Этот код на C++ показывает, как установить размер шрифта для текстов, содержащихся в абзаце:
auto presentation = System::MakeObject<Presentation>(u"example.pptx");
// Получает первую фигуру, например.
auto shape = presentation->get_Slide(0)->get_Shape(0);
if (System::ObjectExt::Is<IAutoShape>(shape))
{
auto autoShape = System::ExplicitCast<IAutoShape>(shape);
// Получает первый абзац, например.
auto paragraph = autoShape->get_TextFrame()->get_Paragraph(0);
// Устанавливает размер шрифта по умолчанию на 20 пт для всех текстовых порций в абзаце.
paragraph->get_ParagraphFormat()->get_DefaultPortionFormat()->set_FontHeight(20.0f);
// Устанавливает размер шрифта на 20 пт для текущих текстовых порций в абзаце.
for (auto&& portion : paragraph->get_Portions())
{
portion->get_PortionFormat()->set_FontHeight(20.0f);
}
}
presentation->Save(u"output.pptx", SaveFormat::Pptx);
Установка вращения текста
Aspose.Slides для C++ позволяет разработчикам вращать текст. Текст можно настроить таким образом, чтобы он отображался горизонтально, вертикально, вертикально270, WordArtVertical, EastAsianVertical, MongolianVertical или WordArtVerticalRightToLeft. Чтобы повернуть текст в любой TextFrame, выполните следующие шаги:
- Создайте экземпляр класса
Presentation
. - Получите доступ к первому слайду.
- Добавьте любую фигуру на слайд.
- Получите доступ к TextFrame.
- Поверните текст.
- Сохраните файл на диск.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
// The path to the documents directory. | |
const String outPath = u"../out/RotatingText.pptx"; | |
const String templatePath = u"../templates/DefaultFonts.pptx"; | |
const String ImagePath = u"../templates/Tulips.jpg"; | |
// Load the desired the presentation | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
// Access first slide | |
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0); | |
// Add an AutoShape of Rectangle type | |
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50); | |
// Add TextFrame to the Rectangle | |
ashp->AddTextFrame(u""); | |
ashp->get_FillFormat()->set_FillType(FillType::NoFill); | |
// Accessing the text frame | |
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame(); | |
txtFrame->get_TextFrameFormat()->set_TextVerticalType(TextVerticalType::Vertical270); | |
// Create the Paragraph object for text frame | |
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0); | |
// Create Portion object for paragraph | |
SharedPtr<IPortion>portion = paragraph->get_Portions()->idx_get(0); | |
portion->set_Text (u"A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); | |
portion->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid); | |
portion->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Black()); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Вкладки и EffectiveTabs в презентации
- Свойство EffectiveTabs.ExplicitTabCount (2 в нашем случае) равно Tabs.Count.
- Коллекция EffectiveTabs включает все вкладки (из коллекции Tabs и стандартные вкладки).
- Свойство EffectiveTabs.DefaultTabSize (294) показывает расстояние между стандартными вкладками (3 и 4 в нашем примере).
- EffectiveTabs.GetTabByIndex(index) с index = 0 вернет первую явную вкладку (Положение = 731), index = 1 - вторую вкладку (Положение = 1241). Если вы попытаетесь получить следующую вкладку с index = 2, она вернет первую стандартную вкладку (Положение = 1470) и т.д.
- EffectiveTabs.GetTabAfterPosition(pos) используется для получения следующей табуляции после некоторого текста. Например, у вас есть текст: “Helloworld!”. Чтобы отобразить этот текст, вы должны знать, с какого места начинать рисовать “world!”. Сначала вам нужно рассчитать длину “Hello” в пикселях и вызвать GetTabAfterPosition с этим значением. Вы получите следующую позицию табуляции для отрисовки “world!”.
Межстрочный интервал абзаца
Aspose.Slides предоставляет свойства в рамках ParagraphFormat
— SpaceAfter
, SpaceBefore
и SpaceWithin
— которые позволяют вам управлять межстрочным интервалом для абзаца. Три свойства используются следующим образом:
- Чтобы указать межстрочный интервал для абзаца в процентах, используйте положительное значение.
- Чтобы указать межстрочный интервал для абзаца в пунктах, используйте отрицательное значение.
Например, вы можете применить межстрочный интервал в 16 пунктов для абзаца, установив свойство SpaceBefore
в -16.
Вот как вы можете указать межстрочный интервал для конкретного абзаца:
- Загрузите презентацию, содержащую AutoShape с текстом в нём.
- Получите ссылку на слайд по его индексу.
- Получите доступ к TextFrame.
- Получите доступ к абзацу.
- Установите свойства абзаца.
- Сохраните презентацию.
Этот код на C++ показывает, как указать межстрочный интервал для абзаца:
// Путь к каталогу документов.
System::String dataDir = GetDataPath();
// Создать экземпляр класса Presentation
auto presentation = System::MakeObject<Presentation>(dataDir + u"Fonts.pptx");
// Получите ссылку на слайд по его индексу
auto sld = presentation->get_Slides()->idx_get(0);
// Получите доступ к TextFrame
auto tf1 = (System::ExplicitCast<IAutoShape>(sld->get_Shapes()->idx_get(0)))->get_TextFrame();
// Получите доступ к абзацу
auto para = tf1->get_Paragraphs()->idx_get(0);
// Установите свойства абзаца
para->get_ParagraphFormat()->set_SpaceWithin(80.0f);
para->get_ParagraphFormat()->set_SpaceBefore(40.0f);
para->get_ParagraphFormat()->set_SpaceAfter(40.0f);
// Сохраните презентацию
presentation->Save(dataDir + u"LineSpacing_out.pptx", SaveFormat::Pptx);
Установка свойства AutofitType текстовой рамки
В этой теме мы рассмотрим различные свойства форматирования текстовой рамки. Эта статья охватывает, как установить свойство AutofitType текстовой рамки, якорь текста и вращение текста в презентации. Aspose.Slides для C++ позволяет разработчикам устанавливать свойство AutofitType для любой текстовой рамки. AutofitType может быть установлен на Normal или Shape. Если установлен на Normal, то форма останется прежней, в то время как текст будет отрегулирован без изменения самой формы, в то время как если свойство AutofitType установлено на Shape, то форма будет изменена таким образом, чтобы в ней содержался только требуемый текст. Чтобы установить свойство AutofitType текстовой рамки, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Получите доступ к первому слайду.
- Добавьте любую фигуру на слайд.
- Получите доступ к TextFrame.
- Установите AutofitType для TextFrame.
- Сохраните файл на диск.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
// The path to the documents directory. | |
const String outPath = u"../out/SetAutofitOftextframe_out.pptx"; | |
const String templatePath = u"../templates/DefaultFonts.pptx"; | |
const String ImagePath = u"../templates/Tulips.jpg"; | |
// Load the desired the presentation | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
// Access first slide | |
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0); | |
// Add an AutoShape of Rectangle type | |
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50); | |
// Add TextFrame to the Rectangle | |
ashp->AddTextFrame(u""); | |
ashp->get_FillFormat()->set_FillType(FillType::NoFill); | |
// Accessing the text frame | |
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame(); | |
txtFrame->get_TextFrameFormat()->set_AutofitType(TextAutofitType::Shape); | |
// Create the Paragraph object for text frame | |
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0); | |
// Create Portion object for paragraph | |
SharedPtr<IPortion>portion = paragraph->get_Portions()->idx_get(0); | |
portion->set_Text(u"A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); | |
portion->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid); | |
portion->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Black()); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Установка якоря текстовой рамки
Aspose.Slides для C++ позволяет разработчикам устанавливать якорь для любой текстовой рамки. TextAnchorType указывает, где размещен этот текст в форме. TextAnchorType может быть установлен на Top, Center, Bottom, Justified или Distributed. Чтобы установить якорь для любой текстовой рамки, выполните следующие шаги:
- Создайте экземпляр класса
Presentation
. - Получите доступ к первому слайду.
- Добавьте любую фигуру на слайд.
- Получите доступ к TextFrame.
- Установите TextAnchorType для TextFrame.
- Сохраните файл на диск.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
// The path to the documents directory. | |
const String outPath = u"../out/SetAnchorOfTextFrame_out.pptx"; | |
const String templatePath = u"../templates/DefaultFonts.pptx"; | |
const String ImagePath = u"../templates/Tulips.jpg"; | |
// Load the desired the presentation | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
// Access first slide | |
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0); | |
// Add an AutoShape of Rectangle type | |
SharedPtr<IAutoShape> ashp = sld->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 150, 75, 150, 50); | |
// Add TextFrame to the Rectangle | |
ashp->AddTextFrame(u""); | |
ashp->get_FillFormat()->set_FillType(FillType::NoFill); | |
// Accessing the text frame | |
SharedPtr<ITextFrame> txtFrame = ashp->get_TextFrame(); | |
txtFrame->get_TextFrameFormat()->set_AnchoringType ( TextAnchorType::Bottom); | |
// txtFrame->get_TextFrameFormat()->set_TextVerticalType(TextVerticalType::Vertical270); | |
// Create the Paragraph object for text frame | |
SharedPtr<IParagraph> paragraph = txtFrame->get_Paragraphs()->idx_get(0); | |
// Create Portion object for paragraph | |
SharedPtr<IPortion>portion = paragraph->get_Portions()->idx_get(0); | |
portion->set_Text(u"A quick brown fox jumps over the lazy dog. A quick brown fox jumps over the lazy dog."); | |
portion->get_PortionFormat()->get_FillFormat()->set_FillType(FillType::Solid); | |
portion->get_PortionFormat()->get_FillFormat()->get_SolidFillColor()->set_Color(Color::get_Black()); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Установка пользовательского угла вращения для текстовой рамки
Aspose.Slides для C++ теперь поддерживает установку пользовательского угла вращения для текстовой рамки. В этой теме мы увидим пример, как установить свойство RotationAngle в Aspose.Slides. Новое свойство RotationAngle было добавлено в интерфейсы IChartTextBlockFormat и ITextFrameFormat, позволяющее установить пользовательский угол вращения для текстовой рамки. Чтобы установить свойство RotationAngle, выполните следующие шаги:
- Создайте экземпляр класса Presentation.
- Добавьте диаграмму на слайд.
- Установите свойство RotationAngle.
- Запишите презентацию как файл PPTX.
В приведённом ниже примере мы устанавливаем свойство RotationAngle.
For complete examples and data files, please go to https://github.com/aspose-slides/Aspose.Slides-for-C | |
// The path to the documents directory. | |
const String outPath = u"../out/CustomRotationAngleTextframe_out.pptx"; | |
// Load the desired the presentation | |
SharedPtr<Presentation> pres = MakeObject<Presentation>(); | |
// Access first slide | |
SharedPtr<ISlide> sld = pres->get_Slides()->idx_get(0); | |
// Add an AutoShape of Rectangle type | |
SharedPtr<IChart> chart = sld->get_Shapes()->AddChart(ChartType::ClusteredColumn, 50, 50, 500, 300); | |
SharedPtr<IChartSeries> series = chart->get_ChartData()->get_Series()->idx_get(0); | |
series->get_Labels()->get_DefaultDataLabelFormat()->set_ShowValue(true); | |
series->get_Labels()->get_DefaultDataLabelFormat()->get_TextFormat()->get_TextBlockFormat()->set_RotationAngle(65); | |
chart->set_HasTitle (true); | |
chart->get_ChartTitle()->AddTextFrameForOverriding(u"Custom title")->get_TextFrameFormat()->set_RotationAngle ( -30); | |
// Save PPTX to Disk | |
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx); | |
Установка языка проверки
Aspose.Slides предоставляет свойство LanguageId (предоставленное классом PortionFormat), которое позволяет вам установить язык проверки для документа PowerPoint. Язык проверки — это язык, для которого проверяются орфография и грамматика в PowerPoint.
Этот код на C++ показывает, как установить язык проверки для PowerPoint:
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(pptxFileName);
System::SharedPtr<AutoShape> autoShape = System::ExplicitCast<AutoShape>(pres->get_Slide(0)->get_Shape(0));
System::SharedPtr<IParagraph> paragraph = autoShape->get_TextFrame()->get_Paragraph(0);
System::SharedPtr<IPortionCollection> portions = paragraph->get_Portions();
portions->Clear();
System::SharedPtr<Portion> newPortion = System::MakeObject<Portion>();
System::SharedPtr<IFontData> font = System::MakeObject<FontData>(u"SimSun");
System::SharedPtr<IPortionFormat> portionFormat = newPortion->get_PortionFormat();
portionFormat->set_ComplexScriptFont(font);
portionFormat->set_EastAsianFont(font);
portionFormat->set_LatinFont(font);
portionFormat->set_LanguageId(u"zh-CN"); // установите идентификатор языка проверки
newPortion->set_Text(u"1。");
portions->Add(newPortion);
Установка языка по умолчанию
Этот код на C++ показывает, как установить язык по умолчанию для всей презентации PowerPoint:
System::SharedPtr<LoadOptions> loadOptions = System::MakeObject<LoadOptions>();
loadOptions->set_DefaultTextLanguage(u"en-US");
System::SharedPtr<Presentation> pres = System::MakeObject<Presentation>(loadOptions);
// Добавляет новую фигуру прямоугольной формы с текстом
System::SharedPtr<IAutoShape> shp = pres->get_Slide(0)->get_Shapes()->AddAutoShape(ShapeType::Rectangle, 50.0f, 50.0f, 150.0f, 50.0f);
System::SharedPtr<ITextFrame> textFrame = shp->get_TextFrame();
textFrame->set_Text(u"Новый текст");
// Проверка языка первой порции
System::Console::WriteLine(textFrame->get_Paragraph(0)->get_Portion(0)->get_PortionFormat()->get_LanguageId());
Установка стиля текста по умолчанию
Если вам нужно применить одно и то же форматирование текста по умолчанию ко всем текстовым элементам презентации сразу, вы можете использовать метод get_DefaultTextStyle
из интерфейса IPresentation и установить предпочитаемое форматирование. Пример кода ниже показывает, как установить шрифт по умолчанию (14 пт) для текста на всех слайдах новой презентации.
auto presentation = MakeObject<Presentation>();
// Получите формат абзаца верхнего уровня.
auto paragraphFormat = presentation->get_DefaultTextStyle()->GetLevel(0);
if (paragraphFormat != NULL) {
paragraphFormat->get_DefaultPortionFormat()->set_FontHeight(14);
paragraphFormat->get_DefaultPortionFormat()->set_FontBold(NullableBool::True);
}
presentation->Save(u"DefaultTextStyle.pptx", SaveFormat::Pptx);
presentation->Dispose();