كتابة المخرجات إلى ZIP
حفظ نتيجة تحويل ملف TeX كـ ZIP عبر C++
TeX هي لغة ترميز بيانات وقلب نظام التنضيد الحاسوبي المعروف أيضًا بنظام مجموعة المنشورات. في حين يُشار إليها غالبًا على أنها تنسيق ملف، إلا أنها في الواقع لغة برمجة ومحرك مفسر يُستخدم لإنشاء مستندات رياضية وفنية وغيرها من المستندات المعقدة. ومع ذلك، بمجرد إنشاء ملف، قد يكون من الضروري تحويله إلى تنسيق أكثر شيوعًا لتتمكن من استخدام النتيجة على أي جهاز ومنصة.
يوفر حل Aspose.TeX API ميزة لتحويل ملفات TeX وحفظ النتيجة كأرشيف ZIP. يوضح مقتطف الكود المقدم هنا كيفية تحويل ملف TeX إلى PDF وحفظ المخرجات كملف zip. يمكن لمحول API تحويل ملفات TeX بلغة C++ ويمكن استخدامه لإنشاء تطبيق عابر للمنصات أو دمجه في مشروع C++ الخاص بك.
لتشغيل الأمثلة، ستحتاج إلى Aspose.TeX لـ C++ API، وهي أداة معالجة وتحويل مستندات غنية بالميزات وسهلة الاستخدام لمنصة C++. يمكنك تثبيت Aspose.TeX API من خلال البحث عنها في مدير حزم NuGet أو باستخدام الأمر Install-Package Aspose.TeX في وحدة تحكم مدير الحزم.
Package Manager Console Command
PM> Install-Package Aspose.TeX
الكود الموضح هنا يقوم بتحويل ملف TeX وحفظه كملف PDF في أرشيف ZIP. اتبع الخطوات التالية لمعالجة هذا التحويل:
- قم بإنشاء مثيل من فئة TeXOptions . استخدمه لتحديد دليل عمل أرشيف ZIP للمخرجات باستخدام خاصية OutputWorkingDirectory.
- حدد وحدة التحكم كطرفية للمخرجات باستخدام فئة OutputConsoleTerminal .
- حدد خيارات حفظ المخرجات باستخدام فئة PdfSaveOptions .
- قم بتشغيل تحويل TeX إلى PDF باستخدام طريقة TeXJob لـ PdfDevice.
- تحسين المخرجات.
- وضع اللمسات الأخيرة على أرشيف ZIP للمخرجات باستخدام فئة OutputZipDirectory . يستخدم الكود كتلة try-catch للتعامل مع أي استثناءات قد تحدث أثناء العملية.
كود C++ لاستخدام أدلة ZIP للمخرجات
using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;
using System::IO; // Open a stream on a ZIP archive that will serve as the input working directory.
{
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream});
// ------------------------------------------
try{
System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"zip-pdf-out.zip"), System::IO::FileMode::Create);
// Clearing resources under 'using' statement
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream});
// ------------------------------------------
try
{
// Create typesetting options for default ObjectTeX format on ObjectTeX engine extension.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Specify a ZIP archive working directory for the input.
options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
// Specify a ZIP archive working directory for the output.
options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
// Specify the console as an output terminal.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Default. Not necessary to specify.
// Create and specify saving options.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Run typesetting.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// For the consequent output to look right.
options->get_TerminalOut()->get_Writer()->WriteLine();
// Finalize the output ZIP archive.
(System::DynamicCast<Aspose::TeX::IO::OutputZipDirectory>(options->get_OutputWorkingDirectory()))->Finish();
}
catch(...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch(...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
}TeX What is TeX File Format
TeX (تقنية تاِك) هو نظام تنضيد نصوص يُستخدم لإنشاء مستندات ذات جودة طباعة عالية، خاصة للمعادلات الرياضية. يُكتب المستند بصيغة نصية تُعالجها محركات TeX (مثل pdfTeX أو XeTeX) لتوليد مخرجات مثل PDF أو DVI. يوفر تحكمًا دقيقًا في التخطيط، الخطوط، والرياضيات.