تنضيد TeX مع إدخال/إخراج ZIP

تحويل TeX إلى PDF باستخدام أرشيفات ZIP كمدخلات ومخرجات. واجهة برمجة تطبيقات لـ C++

 

لغة TeX هي أداة تنضيد تسمح لك بإنشاء مستندات احترافية دون القلق بشأن التنسيق. مع TeX، تقوم بإدخال نص عادي يحتوي على أجزاء نصية من مستند جنباً إلى جنب مع الأوامر التي تتحكم في المخرجات. في المخرجات ستحصل على ملف منسق بالتنسيق المطلوب (المحدد). لفهم أفضل لمدخلات ومخرجات TeX، راجع توثيق TeX.

تعد TeX أيضاً نظاماً قوياً ومتقدماً، لكنها لا تُستخدم على نطاق واسع خارج الدوائر الأكاديمية والعلمية. من ناحية أخرى، يعد PDF تنسيقاً محمولاً يمكن عرضه بسهولة على معظم الأجهزة وهو مقبول بشكل أوسع. تتوفر القدرة على قراءة PDF على كل جهاز، وفي معظم المتصفحات الحديثة. يسمح تحويل TeX إلى PDF بمشاركة المستندات مع جمهور أوسع ويوفر تنسيقاً يسهل الوصول إليه لأولئك الذين ليس لديهم برامج متخصصة. بالإضافة إلى ذلك، يوفر PDF العديد من المزايا مقارنة بـ TeX، مثل عرض الخطوط بشكل أفضل، ودعم التفاعل، وتحكم أسهل في حجم الصفحة وتخطيطها.

يقوم كود C++ أدناه بتنضيد ملف TeX، وإنشاء ملف PDF، والذي يتم حفظه بعد ذلك في أرشيف ZIP على نظام الملفات المحلي. لإنجاز هذه المهمة، استخدم واجهة برمجة تطبيقات Aspose.TeX لـ C++، وهي أداة معالجة وتحويل مستندات غنية بالميزات وقوية وسهلة الاستخدام. لتثبيت واجهة برمجة التطبيقات، افتح مدير حزم NuGet وابحث عن Aspose.TeX.Cpp. بدلاً من ذلك، يمكنك استخدام الأمر التالي في وحدة تحكم مدير الحزم:

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

في الكود أدناه، يأخذ TeX ملف الإدخال الرئيسي من أرشيف ZIP، ويحوله إلى PDF، والذي يتم كتابته في أرشيف ZIP آخر. اتبع الدليل التوجيهي:

  1. افتح تدفقاً يحتوي على أرشيف ZIP الذي سيعمل كدليل عمل للإدخال. يمكنك اختيارياً تحديد دليل فرعي في الأرشيف. خلاف ذلك، سيتم البحث عن الملف في جميع أنحاء الأرشيف.
  2. أنشئ تدفق ملف لأرشيف ZIP جديد ليعمل كدليل عمل للمخرجات.
  3. أنشئ خيارات التنضيد لتنسيق Object TeX بناءً على امتداد محرك Object TeX.
  4. حدد أدلة عمل أرشيف ZIP للإدخال والإخراج باستخدام فئتي InputZipDirectory و OutputZipDirectory .
  5. حدد وحدة التحكم (console) كطرفية للمخرجات.
  6. باستخدام فئة PdfSaveOptions ، حدد خيارات الحفظ لخيارات التنضيد.
  7. قم بإنشاء مثيل لفئة TeXJob ممرراً اسم ملف الإدخال الرئيسي، وكائن PdfDevice تم إنشاؤه حديثاً وخيارات التنضيد كوسطاء. قم بتشغيل التحويل عن طريق استدعاء طريقة Run().
  8. قم بإنهاء أرشيف ZIP للمخرجات.

مثال على كود C++: تحويل TeX إلى PDF مع إدخل وإخراج ZIP

using Aspose::TeX::IO;
using Aspose::TeX::Presentation::Pdf;
// 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 the '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 the 'using' statement
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    try
    {
        // Create typesetting options for the default Object TeX format on the Object TeX 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 console as output terminal.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());

        // Create and specify saving options.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
        // Run the typesetting job.
        System::MakeObject<Aspose::TeX::TeXJob>(u"hello-world", System::MakeObject<PdfDevice>(), options)->Run();

        // 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());
}



التعليمات

1. هل يمكنني طباعة مستندات TeX باستخدام ملف ZIP كمدخل؟

يدعم Aspose.TeX قراءة ملفات مصدر TeX من الأرشيفات المضغوطة مثل ملفات ZIP. يمكنك تضمين جميع الملفات الضرورية، بما في ذلك ملفات مصدر TeX والصور والموارد الإضافية، ضمن أرشيف ZIP ثم تحديد ملف ZIP كمدخل لمترجم LaTeX. يتيح ذلك التنظيم والتوزيع المناسب لمشروعات LaTeX، خاصة عند التعامل مع المستندات الكبيرة أو المعقدة ذات التبعيات المتعددة.

2. هل هناك أي مزايا لاستخدام ملفات ZIP لتنضيد مستندات TeX؟

نعم، يوفر استخدام ملفات ZIP لتنضيد مستندات TeX العديد من المزايا. أولاً، توفر ملفات ZIP طريقة ملائمة لحزم وتنظيم ملفات متعددة مرتبطة بمشروع LaTeX، بما في ذلك ملفات مصدر TeX، والببليوغرافيات، والصور، وملفات الأنماط، في أرشيف واحد مضغوط. يعمل ذلك على تبسيط توزيع مستندات LaTeX ومشاركتها، خاصة عند التعاون مع الآخرين أو مشاركة المشاريع عبر الإنترنت.

3. كيفية تنضيد ملفات TeX؟

لتعيين ملفات TeX باستخدام Aspose.TeX API Solution، تحتاج إلى إنشاء خيارات تحويل لتنسيق Object TeX أو Object LaTeX استنادًا إلى ملحق محرك Object TeX. ثم حدد دليل عمل نظام الملفات للإخراج. وأخيرًا، قم بإنشاء مثيل لفئة TeXJob وقم بتشغيل عملية التنضيد باستخدام أسلوب TeXJob.Run().

TeX What is TeX File Format

TeX (تقنية تاِك) هو نظام تنضيد نصوص يُستخدم لإنشاء مستندات ذات جودة طباعة عالية، خاصة للمعادلات الرياضية. يُكتب المستند بصيغة نصية تُعالجها محركات TeX (مثل pdfTeX أو XeTeX) لتوليد مخرجات مثل PDF أو DVI. يوفر تحكمًا دقيقًا في التخطيط، الخطوط، والرياضيات.