Вы можете легко создавать, редактировать или манипулировать файлами XPS. Кроме того, вы можете контролировать содержимое и его положение в соответствии с вашими требованиями. Вы можете вставить изображение или текст в файлы XPS программно, используя язык C++. Давайте подробно рассмотрим эту функцию в следующих темах:
- Работа с текстовым или графическим содержимым в XPS-файлах — установка API
- Добавить текст в файл XPS с помощью C++
- Добавить текст в файл XPS, используя строку Unicode в C++
- Вставьте изображение в документ XPS с помощью С++
- Вставьте мозаичное изображение в файл XPS с помощью С++
Работа с текстовым или графическим содержимым в XPS-файлах — установка API
Вы можете добавлять текст или изображение в файлы XPS в приложениях C++. Вам не нужно учитывать мелкие детали формата файла документа, так как несколько вызовов API могут выполнить работу в соответствии с вашими требованиями. Aspose.Page for C++ API можно легко настроить, загрузив его из Новые выпуски или с помощью следующей команды установки NuGet:
PM> Install-Package Aspose.Page.Cpp
Добавить текст в файл XPS с помощью C++
Текст в файле XPS можно использовать для маркировки некоторых рисунков, изображений или другого содержимого. Точно так же вы также можете использовать текст в качестве водяного знака для файла. Чтобы добавить или вставить текст в файлы XPS, выполните следующие действия:
- Создайте новый XPS-документ
- Создайте кисть, чтобы добавить текст
- Добавить глиф в документ
- Сохранить выходной XPS-документ
В приведенном ниже коде показано, как добавить текст в файл XPS с помощью C++:
// Создать новый XPS-документ
auto doc = System::MakeObject<XpsDocument>();
//Создать кисть
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
//Добавить глиф в документ
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 12.0f, System::Drawing::FontStyle::Regular, 300.f, 450.f, u"Hello World!");
glyphs->set_Fill(textFill);
// Сохраните полученный XPS-документ
doc->Save(RunExamples::outDir() + u"AddText_out.xps");
Добавить текст в файл XPS, используя строку Unicode в C++
Мы научились добавлять простую текстовую строку в файл XPS. Давайте продолжим и рассмотрим сценарий, в котором вам нужно добавить строку Unicode в файлы XPS. Вам необходимо выполнить следующие шаги для добавления текста в файл XPS на основе строки Unicode:
- Создать новый XPS-документ
- Добавить текст Юникода
- Сохранить выходной XPS-документ
Следующий код основан на этих шагах и показывает, как добавить текст в файл XPS с помощью строки Unicode на языке C++:
// Создать новый XPS-документ
auto doc = System::MakeObject<XpsDocument>();
// Добавить текст
System::SharedPtr<XpsSolidColorBrush> textFill = doc->CreateSolidColorBrush(System::Drawing::Color::get_Black());
System::SharedPtr<XpsGlyphs> glyphs = doc->AddGlyphs(u"Arial", 20.0f, System::Drawing::FontStyle::Regular, 400.f, 200.f, u"++C. rof SPX.esopsA");
glyphs->set_BidiLevel(1);
glyphs->set_Fill(textFill);
// Сохраните полученный XPS-документ
doc->Save(RunExamples::outDir() + u"AddText_unicode.xps");
Вставьте изображение в документ XPS с помощью С++
Изображения могут содержать много визуальной информации, поэтому API поддерживает вставку изображения в файл XPS в ваших приложениях C++. Aspose.Page for C++ API позволяет вставлять изображения или изображения в файлы XPS, выполнив следующие действия:
- Создайте новый XPS-документ
- Загрузить входное изображение
- Создайте матрицу и ImageBrush
- Сохранить выходной файл XPS
В приведенном ниже примере кода показано, как вставить изображение в документ XPS с помощью C++:
// Создать новый XPS-документ
System::SharedPtr<XpsDocument> doc = System::MakeObject<XpsDocument>();
// Добавить изображение
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 30,20 l 258.24,0 0,56.64 -258.24,0 Z"));
// Создание матрицы необязательно, ее можно использовать для правильного позиционирования
path->set_RenderTransform(doc->CreateMatrix(0.7f, 0.f, 0.f, 0.7f, 0.f, 20.f));
//Создать кисть изображения
path->set_Fill(doc->CreateImageBrush(RunExamples::dataDir() + u"QL_logo_color.tif", System::Drawing::RectangleF(0.f, 0.f, 258.24f, 56.64f), System::Drawing::RectangleF(50.f, 20.f, 193.68f, 42.48f)));
// Сохраните полученный XPS-документ
doc->Save(RunExamples::outDir() + u"AddImage_out.xps");
Вставьте мозаичное изображение в файл XPS с помощью С++
Мы изучили первый шаг добавления или вставки изображения в файл XPS, давайте перейдем к соответствующему примеру вставки мозаичного изображения в документ XPS. Ниже приведены шаги для добавления мозаичного изображения в файл XPS:
- Создать новый XPS-документ
- Добавьте ImageBrush заполненный прямоугольник
- Добавить мозаичное изображение
- Сохраните полученный XPS-документ
В следующем фрагменте кода показано, как добавить мозаичное изображение в файл XPS с помощью C++:
// Создать новый XPS-документ
System::SharedPtr<XpsDocument> doc = System::MakeObject<XpsDocument>();
// Мозаичное изображение
// Заполненный прямоугольник ImageBrush в правом верхнем углу ниже
System::SharedPtr<XpsPath> path = doc->AddPath(doc->CreatePathGeometry(u"M 10,160 L 228,160 228,305 10,305"));
path->set_Fill(doc->CreateImageBrush(RunExamples::dataDir() + u"R08LN_NN.jpg", System::Drawing::RectangleF(0.f, 0.f, 128.f, 96.f), System::Drawing::RectangleF(0.f, 0.f, 64.f, 48.f)));
(System::DynamicCast<Aspose::Page::Xps::XpsModel::XpsImageBrush>(path->get_Fill()))->set_TileMode(Aspose::Page::Xps::XpsModel::XpsTileMode::Tile);
path->get_Fill()->set_Opacity(0.5f);
// Сохраните полученный XPS-документ
doc->Save(RunExamples::outDir() + u"AddTiledImage_out.xps");
Вывод
В этой статье вы узнали, как вставлять или добавлять текст или изображение в файлы XPS с помощью языка C++. Эта функция может быть полезна в таких сценариях, как добавление водяного знака в документы XPS или добавление штампа в соответствии с вашими требованиями. Кроме того, для формата файлов XPS поддерживается множество других интересных функций. Вы можете узнать больше, посетив Документацию по API, или вы также можете обсудить это с нами на Форуме бесплатной поддержки. Мы с нетерпением ждем возможности связаться с вами!