تدوير النص داخل PDF باستخدام C++
Contents
[
Hide
]
تدوير النص داخل PDF باستخدام خاصية الدوران
باستخدام خاصية Rotation لفئة TextFragment، يمكنك تدوير النص بزوايا مختلفة. يمكن استخدام تدوير النص في سيناريوهات مختلفة لإنشاء المستندات. يمكنك تحديد زاوية الدوران بالدرجات لتدوير النص حسب متطلباتك. يرجى التحقق من السيناريوهات المختلفة التالية، حيث يمكنك تنفيذ تدوير النص.
تنفيذ الدوران باستخدام TextFragment وTextBuilder
using namespace System;
using namespace Aspose::Pdf;
using namespace Aspose::Pdf::Text;
void ImplementRotationUsingTextFragmentAndTextBuilder() {
String _dataDir("C:\\Samples\\");
// Initialize document object
auto document = MakeObject<Document>();
// Get particular page
auto page = document->get_Pages()->Add();
// Create text fragment
auto textFragment1 = MakeObject<TextFragment>("main text");
textFragment1->set_Position(MakeObject<Position>(100, 600));
// Set text properties
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// Create rotated text fragment
auto textFragment2 = MakeObject<TextFragment>("rotated text");
textFragment2->set_Position(MakeObject<Position>(200, 600));
// Set text properties
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment2->get_TextState()->set_Rotation(45);
// Create rotated text fragment
auto textFragment3 = MakeObject<TextFragment>("rotated text");
textFragment3->set_Position(MakeObject<Position>(300, 600));
// Set text properties
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment3->get_TextState()->set_Rotation(90);
// create TextBuilder object
auto textBuilder = MakeObject<TextBuilder>(page);
// Append the text fragment to the PDF page
textBuilder->AppendText(textFragment1);
textBuilder->AppendText(textFragment2);
textBuilder->AppendText(textFragment3);
// Save document
document->Save(_dataDir + u"TextFragmentTests_Rotated1_out.pdf");
}
تنفيذ الدوران باستخدام TextParagraph و TextBuilder (القطع الدوارة)
void ImplementRotationUsingTextParagraphAndTextBuilder_RotatedFragments() {
String _dataDir("C:\\Samples\\");
// تهيئة كائن المستند
auto document = MakeObject<Document>();
// الحصول على صفحة معينة
auto page = document->get_Pages()->Add();
auto paragraph = MakeObject<TextParagraph>();
paragraph->set_Position(MakeObject<Position>(200, 600));
// إنشاء جزء نصي
auto textFragment1 = MakeObject<TextFragment>("نص دوار");
// تعيين خصائص النص
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// تعيين الدوران
textFragment1->get_TextState()->set_Rotation(45);
// إنشاء جزء نصي
auto textFragment2 = MakeObject<TextFragment>("النص الرئيسي");
// تعيين خصائص النص
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// إنشاء جزء نصي
auto textFragment3 = MakeObject<TextFragment>("نص دوار آخر");
// تعيين خصائص النص
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// تعيين الدوران
textFragment3->get_TextState()->set_Rotation(-45);
// إلحاق الأجزاء النصية بالفقرة
paragraph->AppendLine(textFragment1);
paragraph->AppendLine(textFragment2);
paragraph->AppendLine(textFragment3);
// إنشاء كائن TextBuilder
auto textBuilder = MakeObject<TextBuilder>(page);
// إلحاق الفقرة النصية بصفحة PDF
textBuilder->AppendParagraph(paragraph);
// حفظ المستند
document->Save(_dataDir + u"TextFragmentTests_Rotated2_out.pdf");
}
تنفيذ التدوير باستخدام TextFragment وPage.Paragraphs
void ImplementRotationUsingTextFragmentAndPageParagraphs() {
String _dataDir("C:\\Samples\\");
// تهيئة كائن المستند
auto document = MakeObject<Document>();
// الحصول على صفحة معينة
auto page = document->get_Pages()->Add();
// إنشاء جزء نصي
auto textFragment1 = MakeObject<TextFragment>("النص الرئيسي");
// تعيين خصائص النص
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// إنشاء جزء نصي
auto textFragment2 = MakeObject<TextFragment>("نص مدور");
// تعيين خصائص النص
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// تعيين التدوير
textFragment2->get_TextState()->set_Rotation(315);
// إنشاء جزء نصي
auto textFragment3 = MakeObject<TextFragment>("نص مدور");
// تعيين خصائص النص
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
// تعيين التدوير
textFragment3->get_TextState()->set_Rotation(270);
page->get_Paragraphs()->Add(textFragment1);
page->get_Paragraphs()->Add(textFragment2);
page->get_Paragraphs()->Add(textFragment3);
// حفظ المستند
document->Save(_dataDir + u"TextFragmentTests_Rotated3_out.pdf");
}
تنفيذ التدوير باستخدام TextParagraph و TextBuilder (تدوير الفقرة كاملة)
void ImplementRotationUsingTextParagraphAndTextBuilder() {
String _dataDir("C:\\Samples\\");
// تهيئة كائن الوثيقة
auto document = MakeObject<Document>();
// الحصول على الصفحة المعينة
auto page = document->get_Pages()->Add();
for (int i = 0; i < 4; i++) {
auto paragraph = MakeObject<TextParagraph>();
paragraph->set_Position(MakeObject<Position>(200, 600));
// تحديد التدوير
paragraph->set_Rotation(i * 90 + 45);
// إنشاء جزء نصي
auto textFragment1 = MakeObject<TextFragment>("نص الفقرة");
// إنشاء جزء نصي
textFragment1->get_TextState()->set_FontSize(12);
textFragment1->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment1->get_TextState()->set_BackgroundColor(Color::get_LightGray());
textFragment1->get_TextState()->set_ForegroundColor(Color::get_Blue());
// إنشاء جزء نصي
auto textFragment2 = MakeObject<TextFragment>("السطر الثاني من النص");
// تعيين خصائص النص
textFragment2->get_TextState()->set_FontSize(12);
textFragment2->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment2->get_TextState()->set_BackgroundColor(Color::get_LightGray());
textFragment2->get_TextState()->set_ForegroundColor(Color::get_Blue());
// إنشاء جزء نصي
auto textFragment3 = MakeObject<TextFragment>("والمزيد من النص...");
// تعيين خصائص النص
textFragment3->get_TextState()->set_FontSize(12);
textFragment3->get_TextState()->set_Font(FontRepository::FindFont(u"TimesNewRoman"));
textFragment3->get_TextState()->set_BackgroundColor(Color::get_LightGray());
textFragment3->get_TextState()->set_ForegroundColor(Color::get_Blue());
textFragment3->get_TextState()->set_Underline(true);
paragraph->AppendLine(textFragment1);
paragraph->AppendLine(textFragment2);
paragraph->AppendLine(textFragment3);
// إنشاء كائن TextBuilder
auto textBuilder = MakeObject<TextBuilder>(page);
// إلحاق الجزء النصي بصفحة PDF
textBuilder->AppendParagraph(paragraph);
}
// حفظ الوثيقة
document->Save(_dataDir + u"TextFragmentTests_Rotated4_out.pdf");
}