تنضيد TeX مع ZIP I/O

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

 

لغة TeX هي أداة تنضيد لإنشاء مستندات احترافية دون القلق بشأن التنسيق. تقدم لك Aspose.TeX حل API لـ C++ وهي مكتبة مرنة وسهلة الاستخدام لتنضيد ملفات TeX و LaTeX.

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

تمكن واجهة برمجة التطبيقات (API) من فصل أدلة الإدخال والإخراج ، مما يوفر واجهة IOutputWorkingDirectory لتخصيص المستخدم للمخرجات. لها تطبيقاتها الخاصة. تمتد هذه الواجهة إلى IInputWorkingDirectory حيث قد يتطلب المحرك الكتابة إلى ملف قبل قراءته. تقوم طريقة GetOutputFile() للواجهة بإرجاع الدفق للكتابة ، بدلاً من دفق القراءة الذي يوفره GetFile().

Package Manager Console Command

PM> Install-Package Aspose.TeX.Cpp

في الكود أدناه ، سنضع ملفات الإدخال في أرشيف ZIP ونعتبره دليل إدخال وننشئ ملفًا (أو دفقًا) ونترك لمحرك TeX استخدامه كأرشيف ZIP لتخزين ملفات الإخراج. اتبع الإرشادات:

  1. افتح دفقًا في أرشيف ZIP والذي سيكون بمثابة دليل عمل الإدخال.
  2. إنشاء خيارات التنضيد لتنسيق ObjectTeX الافتراضي على ملحق محرك ObjectTeX.
  3. حدد دليل عمل أرشيف ZIP للإدخال والإخراج باستخدام InputZipDirectory و OutputZipDirectory فئات.
  4. حدد وحدة التحكم كمحطة إخراج.
  5. باستخدام PdfSaveOptions إنشاء وتحديد خيارات الحفظ.
  6. قم بتشغيل التحويل.
  7. صقل الإخراج.
  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 ما هو TeX تنسيق الملف

إن TeX ليس في الواقع تنسيقًا. إنها في نفس الوقت لغة برمجة وأيضًا محرك مترجم يفهم هذه اللغة. ملف TeX هو مستند تم إنشاؤه في LaTeX. يمكن أن يتضمن هذا المستند رسومات وجداول ورموز وقوائم وصيغ ومعادلات.