Работа со шрифтами

Шрифт - это набор символов определенного размера, цвета и оформления. Aspose.Words позволяет работать со шрифтами, используя пространство имен Fonts и класс Font.

Форматирование шрифта

Текущее форматирование шрифта представлено объектом Font, возвращаемым свойством Font. Класс Font содержит широкий спектр свойств шрифта, аналогичных тем, которые доступны в Microsoft Word.

В следующем примере кода показано, как задать форматирование шрифта:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Set font formatting properties
System::SharedPtr<Font> font = builder->get_Font();
font->set_Bold(true);
font->set_Color(System::Drawing::Color::get_DarkBlue());
font->set_Italic(true);
font->set_Name(u"Arial");
font->set_Size(24);
font->set_Spacing(5);
font->set_Underline(Underline::Double);
// Output formatted text
builder->Writeln(u"I'm a very nice formatted string.");
System::String outputPath = outputDataDir + u"DocumentBuilderSetFormatting.SetFontFormatting.doc";
doc->Save(outputPath);

Свойства заливки теперь доступны и для шрифтов, чтобы задать форматирование заливки текста. Это дает возможность изменять, например, цвет переднего плана или прозрачность заливки текста.

Получение межстрочного интервала между шрифтами

Межстрочный интервал шрифта - это расстояние по вертикали между базовыми линиями двух последовательных строк текста. Таким образом, межстрочный интервал включает в себя пробел между строками, а также высоту самого символа.

Свойство LineSpacing было введено в класс Font для получения этого значения, как показано в примере ниже:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
// Initialize document.
System::SharedPtr<Document> doc = System::MakeObject<Document>();
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
builder->get_Font()->set_Name(u"Calibri");
builder->Writeln(u"qText");
// Obtain line spacing.
System::SharedPtr<Font> font = builder->get_Document()->get_FirstSection()->get_Body()->get_FirstParagraph()->get_Runs()->idx_get(0)->get_Font();
//Console.WriteLine($"lineSpacing = {font.LineSpacing}");
std::cout << "lineSpacing = " << font->get_LineSpacing() << std::endl;

Знак подчеркивания шрифта

В некоторых восточноазиатских языках для обозначения ударения используется специальный знак. Класс Font предоставляет свойство EmphasisMark, позволяющее получить или задать значения перечисления EmphasisMark, которые будут применяться при форматировании.

В следующем примере кода показано, как установить свойство EphasisMark:

For complete examples and data files, please go to https://github.com/aspose-words/Aspose.Words-for-C
auto document = System::MakeObject<Document>();
auto builder = System::MakeObject<DocumentBuilder>(document);
builder->get_Font()->set_EmphasisMark(EmphasisMark::UnderSolidCircle);
builder->Write(u"Emphasis text");
builder->Writeln();
builder->get_Font()->ClearFormatting();
builder->Write(u"Simple text");
document->Save(outputDataDir + u"FontEmphasisMark_out.doc");