Kā formatēt tekstu C++
Aspose.Slides FOSS for C++ provides fine-grained text formatting through the PortionFormat class. A Portion ir mazākā neatkarīgā teksta vienība; tas atbilst vienam formatēšanas posmam rindkopā. Šis ceļvedis parāda, kā prezentācijā uz teksta piemērot treknrakstu, slīprakstu, fonta lielumu un krāsas formatēšanu.
Solī pa solim rokasgrāmata
1. solis: Veidot un sasaistīt bibliotēku
git clone https://github.com/aspose-slides-foss/Aspose.Slides-FOSS-for-Cpp.git
cd Aspose.Slides-FOSS-for-Cpp && mkdir build && cd build
cmake .. && cmake --build .2. solis: Pievienojiet formu ar teksta rāmi
Pirms teksta formatēšanas pievienojiet formu un iestatiet tās teksta saturu, izmantojot shape.text_frame()->set_text().
#include <Aspose/Slides/Foss/presentation.h>
int main() {
namespace asf = Aspose::Slides::Foss;
asf::Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
asf::ShapeType::RECTANGLE, 50, 50, 500, 150);
shape.text_frame()->set_text("Default text: will be formatted");
prs.save("output.pptx", asf::SaveFormat::PPTX);
return 0;
}3. solis: Piekļūstiet TextFrame
shape.text_frame() atgriež rādītāju uz formas TextFrame. Izmantojiet -> lai izsauktu metodes uz tās.
auto* tf = shape.text_frame(); // pointer to the shape's text frame
tf->set_text("your text here");A TextFrame satur Paragraph objektus (tf->paragraphs()). Katrs Paragraph satur Portion objektus (paragraph.portions()).
4. solis: Pielietojiet treknraksta un slīpraksta formatēšanu
Izmantojiet portion_format().set_font_bold() un portion_format().set_font_italic(). Šīs metodes pieņem NullableBool::TRUE, NullableBool::FALSE, vai NullableBool::NOT_DEFINED (mantot no galvenā).
#include <Aspose/Slides/Foss/presentation.h>
int main() {
namespace asf = Aspose::Slides::Foss;
asf::Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
asf::ShapeType::RECTANGLE, 50, 50, 500, 150);
shape.text_frame()->set_text("Bold and italic text");
auto* tf = shape.text_frame();
auto& fmt = tf->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_bold(asf::NullableBool::TRUE);
fmt.set_font_italic(asf::NullableBool::TRUE);
prs.save("bold-italic.pptx", asf::SaveFormat::PPTX);
return 0;
}5. solis: Iestatiet fonta lielumu un krāsu
Iestatīt portion_format().set_font_height() izmēram (punktos) un lietošanai fill_format() krāsai.
#include <Aspose/Slides/Foss/presentation.h>
int main() {
namespace asf = Aspose::Slides::Foss;
asf::Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
asf::ShapeType::RECTANGLE, 50, 50, 500, 150);
shape.text_frame()->set_text("Large corporate-blue heading");
auto* tf = shape.text_frame();
auto& fmt = tf->paragraphs()[0].portions()[0].portion_format();
fmt.set_font_height(32); // 32pt font
fmt.set_font_bold(asf::NullableBool::TRUE);
fmt.fill_format().set_fill_type(asf::FillType::SOLID);
fmt.fill_format().solid_fill_color().set_color(
asf::Color::from_argb(255, 0, 70, 127));
prs.save("colored-text.pptx", asf::SaveFormat::PPTX);
return 0;
}Color::from_argb(alpha, red, green, blue) pieņem vērtības no 0 līdz 255 katram kanālam.
6. solis: Vairāki fragmenti vienā rindkopā
Viena rindkopa var saturēt vairākas daļas ar atšķirīgu formatējumu. Pievieno jaunu Portion rindkopas portions() kolekcija:
#include <Aspose/Slides/Foss/presentation.h>
int main() {
namespace asf = Aspose::Slides::Foss;
asf::Presentation prs;
auto& slide = prs.slides()[0];
auto& shape = slide.shapes().add_auto_shape(
asf::ShapeType::RECTANGLE, 50, 50, 600, 100);
shape.text_frame()->set_text(""); // start with empty text
auto* tf = shape.text_frame();
auto& paragraph = tf->paragraphs()[0];
// First portion: normal text
auto& portion1 = paragraph.portions()[0];
portion1.set_text("Normal text followed by ");
portion1.portion_format().set_font_height(20);
// Second portion: bold red text
asf::Portion portion2;
portion2.set_text("bold red text");
portion2.portion_format().set_font_height(20);
portion2.portion_format().set_font_bold(asf::NullableBool::TRUE);
portion2.portion_format().fill_format().set_fill_type(asf::FillType::SOLID);
portion2.portion_format().fill_format().solid_fill_color().set_color(
asf::Color::from_argb(255, 200, 0, 0));
paragraph.portions().add(portion2);
prs.save("mixed-format.pptx", asf::SaveFormat::PPTX);
return 0;
}Biežāk sastopamās problēmas un to risinājumi
Teksts parādās melns, pat pēc krāsas iestatīšanas
Pārliecinies fill_format().set_fill_type(FillType::SOLID) ir iestatīts pirms krāsas piešķiršanas. Bez aizpildījuma tipa iestatīšanas krāsas maiņa var neizraisīt nekādu efektu.
NullableBool::TRUE vs true
portion_format().set_font_bold() gaida NullableBool::TRUE, nevis C++ true. Pārsūtot true tieši netiks kompilēts vai radīs nenoteiktu uzvedību, atkarībā no pārsniegšanas izšķiršanas.
Fonts neparādās saglabātajā failā
Šis set_latin_font() metode iestata Latīņu fontu ģimeni. Ja nav iestatīta, tiek izmantots prezentācijas tēmas fonts. Pielāgotie fonti jāiekļauj vai jābūt pieejamiem skatīšanas ierīcē.
Biežāk uzdotie jautājumi
Kā es varu mainīt fonta ģimeni?
Iestatīt portion_format().set_latin_font():
fmt.set_latin_font(asf::FontData("Arial"));FontData pieņem fonta ģimenes nosaukumu kā virkni.
Kā iestatīt rindkopas līdzinājumu?
Izmantot paragraph_format().set_alignment():
tf.paragraphs()[0].paragraph_format().set_alignment(asf::TextAlignment::CENTER);Atbalstītās vērtības: LEFT, CENTER, RIGHT, JUSTIFY.
Kā iestatīt rindas atstarpi?
Izmantot paragraph_format().set_space_before() (punkti pirms rindkopas) vai paragraph_format().set_space_after() (punkti pēc rindkopas):
tf.paragraphs()[0].paragraph_format().set_space_before(12); // 12pt before
tf.paragraphs()[0].paragraph_format().set_space_after(6); // 6pt after