TeX هو نظام تنضيد معروف بأنه أحد أكثر أنظمة الطباعة الرقمية تطورًا. تُستخدم TeX لتنضيد المستندات وإنشاء مخرجات مثل PDF و XPS وتنسيقات صور مختلفة. قد تكون هناك مواقف تحتاج فيها إلى تصميم مجموعة من المستندات بشكل موحد. لذلك ، فإن إنشاء تنسيق TeX مخصص سيكون مفيدًا. تحقيقًا لهذه الغاية ، ستعلمك هذه المقالة كيفية إنشاء تنسيق TeX مخصص وتنضيده إلى تنسيقات PDF و XPS باستخدام C ++.
- C ++ API لإنشاء تنسيق TeX مخصص وتنضيده إلى PDF و XPS
- قم بإنشاء تنسيق TeX مخصص باستخدام C ++
- يُطبع تنسيق TeX المخصص لتنسيق XPS
- تنضيد تنسيق TeX المخصص إلى تنسيق PDF
C ++ API لإنشاء تنسيق TeX مخصص وتنضيده إلى PDF و XPS
Aspose.TeX for C ++ هي مكتبة C ++ للعمل مع ملفات TeX دون الحاجة إلى تثبيت أي برامج إضافية. تتيح لك واجهة برمجة التطبيقات (API) تنضيد ملفات TeX وإنشاء تنسيق TeX مخصص وإنشاء مخرجات بتنسيقات مثل XPS و PDF و PNG و JPEG و TIFF و BMP. يمكنك إما تثبيت API من خلال NuGet أو تنزيلها مباشرة من قسم التنزيلات.
PM> Install-Package Aspose.TeX.Cpp
قم بإنشاء تنسيق TeX مخصص باستخدام C ++
فيما يلي خطوات إنشاء تنسيق TeX مخصص.
- قم بإنشاء مثيل لفئة TeXOptions باستخدام قيمة الخاصية TeXConfig :: getObjectIniTeX().
- حدد أدلة عمل الإدخال والإخراج.
- قم بإنشاء التنسيق باستخدام TeX :: CreateFormat (System :: String path، System :: SharedPtr خيارات) طريقة.
يوضح نموذج التعليمات البرمجية التالي كيفية إنشاء تنسيق TeX مخصص باستخدام C ++.
// إنشاء خيارات التنضيد على امتداد محرك ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::get_ObjectIniTeX());
// حدد دليل عمل نظام الملفات للإدخال.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// حدد دليل عمل نظام الملفات للإخراج.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// تشغيل إنشاء التنسيق.
Aspose::TeX::TeX::CreateFormat(u"customtex", options);
يُطبع تنسيق TeX المخصص لتنسيق XPS
فيما يلي خطوات تنضيد تنسيق TeX المخصص إلى تنسيق XPS.
- قم بإنشاء مثيل لفئة IWorkingDirectory لتمثيل دليل عمل الإدخال.
- قم بتحميل ملف TeX باستخدام فئة FormatProvider.
- قم بإنشاء مثيل لفئة TeXOptions باستخدام كائن FormatProvider الذي تم إنشاؤه مسبقًا.
- قم بتعيين JobName و InputWorkingDirectory و OutputWorkingDirectory.
- استخدم Typeset (System :: SharedPtrSystem::IO::Stream تيار ، نظام :: SharedPtrPresentation::Device الجهاز ، النظام :: SharedPtr خيارات) طريقة وتمرير كائن XpsDevice كوسيطة لإنشاء إخراج XPS.
ما يلي هو نموذج التعليمات البرمجية لتنضيد تنسيق TeX مخصص إلى تنسيق XPS.
// قم بإنشاء دليل عمل إدخال نظام الملفات.
System::SharedPtr<IWorkingDirectory> wd = System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory");
{
// قم بإنشاء موفر تنسيق.
System::SharedPtr<FormatProvider> formatProvider = System::MakeObject<FormatProvider>(wd, u"customtex");
// مسح الموارد تحت بيان "استخدام"
System::Details::DisposeGuard<1> __dispose_guard_0({ formatProvider });
// ------------------------------------------
try
{
// إنشاء خيارات التنضيد لتنسيق مخصص على ملحق محرك ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
options->set_JobName(u"typeset-with-custom-format");
// حدد دليل عمل الإدخال.
options->set_InputWorkingDirectory(wd);
// حدد دليل عمل نظام الملفات للإخراج.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// تشغيل التنضيد.
Aspose::TeX::TeX::Typeset(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<XpsDevice>(), options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
تنضيد تنسيق TeX المخصص إلى تنسيق PDF
فيما يلي خطوات تنضيد تنسيق TeX المخصص إلى تنسيق PDF.
- قم بإنشاء مثيل لفئة IWorkingDirectory لتمثيل دليل عمل الإدخال.
- قم بتحميل ملف TeX باستخدام فئة FormatProvider.
- قم بإنشاء مثيل لفئة TeXOptions باستخدام كائن FormatProvider الذي تم إنشاؤه مسبقًا.
- قم بتعيين JobName و InputWorkingDirectory و OutputWorkingDirectory.
- قم بإنشاء مثيل لفئة PdfSaveOptions ومررها إلى TeXOptions-> setSaveOptions (System :: SharedPtrAspose::TeX::Presentation::SaveOptions القيمة) طريقة.
- استخدم Typeset (System :: SharedPtrSystem::IO::Stream تيار ، نظام :: SharedPtrPresentation::Device الجهاز ، النظام :: SharedPtr خيارات) طريقة وتمرير PdfDevice كائن كوسيطة لإنشاء إخراج PDF.
يوضح نموذج التعليمات البرمجية التالي كيفية تنضيد تنسيق TeX مخصص إلى تنسيق PDF.
// قم بإنشاء دليل عمل إدخال نظام الملفات.
System::SharedPtr<IWorkingDirectory> wd = System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory");
{
// قم بإنشاء موفر تنسيق.
System::SharedPtr<FormatProvider> formatProvider = System::MakeObject<FormatProvider>(wd, u"customtex");
// مسح الموارد تحت بيان "استخدام"
System::Details::DisposeGuard<1> __dispose_guard_0({ formatProvider });
// ------------------------------------------
try
{
// إنشاء خيارات التنضيد لتنسيق مخصص على ملحق محرك ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX(formatProvider));
options->set_JobName(u"typeset-with-custom-format");
// حدد دليل عمل الإدخال.
options->set_InputWorkingDirectory(wd);
// حدد دليل عمل نظام الملفات للإخراج.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// حدد PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// تشغيل التنضيد.
Aspose::TeX::TeX::Typeset(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->GetBytes(u"Congratulations! You have successfully typeset this text with your own TeX format!\\end")), System::MakeObject<PdfDevice>(), options);
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
احصل على رخصة مجانية
يمكنك تجربة واجهة برمجة التطبيقات بدون قيود التقييم من خلال طلب ترخيص مؤقت مجاني.
استنتاج
في هذه المقالة ، تعلمت كيفية إنشاء تنسيق TeX مخصص باستخدام C ++. علاوة على ذلك ، تعلمت كيفية تنضيد تنسيق TeX مخصص إلى تنسيقات PDF و XPS باستخدام Aspose.TeX لـ C ++ API. يمكنك استكشاف API بالتفصيل من خلال زيارة الوثائق الرسمية. في حالة وجود أي أسئلة ، لا تتردد في الاتصال بنا على منتدى الدعم المجاني.