تبدیل TeX به PDF یا XPS به صورت برنامه ریزی شده با استفاده از ++C

فایل‌های TeX برای حروفچینی اسناد و کتاب‌های مختلف حاوی متن، نمادها و عبارات حسابی استفاده می‌شوند. علاوه بر این، این فایل‌ها می‌توانند خروجی‌هایی مانند PDF، XPS و فرمت‌های مختلف تصویر تولید کنند. در این مقاله با نحوه تبدیل فایل های TeX به فرمت XPS و PDF با استفاده از C++ آشنا می شوید.

C++ API برای تبدیل TeX به فرمت PDF و XPS

Aspose.TeX for C++ یک کتابخانه C++ برای کار با فایل های TeX بدون نیاز به نصب نرم افزار اضافی است. API به شما امکان می دهد فایل های TeX را تایپ کنید و خروجی را در قالب هایی مانند XPS، PDF، PNG، JPEG، TIFF، BMP. می‌توانید API را از طریق NuGet نصب کنید یا آن را مستقیماً از بخش Downloads دانلود کنید.

PM> Install-Package Aspose.TeX.Cpp

تبدیل TeX به فرمت XPS با استفاده از ++C

شما می توانید فایل های TeX را تنها در چند خط کد به فرمت XPS تبدیل کنید. برای رسیدن به این هدف، لطفا مراحل زیر را دنبال کنید.

کد نمونه زیر نحوه تبدیل یک فایل TeX به فرمت XPS را با استفاده از C++ نشان می دهد.

// گزینه های حروفچینی را برای قالب پیش فرض ObjectTeX در پسوند موتور ObjectTeX ایجاد کنید.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// یک دایرکتوری کار سیستم فایل را برای ورودی مشخص کنید.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// یک دایرکتوری کار سیستم فایل را برای خروجی مشخص کنید.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// کنسول را به عنوان ترمینال خروجی مشخص کنید.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// پیش فرض نیازی به تعیین نیست.
// اگر نمی خواهید خروجی ترمینال روی کنسول نوشته شود، جریان حافظه را به عنوان پایانه خروجی مشخص کنید.
//options.TerminalOut = new OutputMemoryTerminal();

// حروفچینی را اجرا کنید.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// برای خروجی بیشتر بنویسید.
options->get_TerminalOut()->get_Writer()->WriteLine();

تبدیل TeX به فرمت PDF با استفاده از C++

در زیر مراحل تبدیل فایل های TeX به فرمت PDF آورده شده است.

کد نمونه زیر نحوه تبدیل فایل TeX به فرمت PDF را با استفاده از C++ نشان می دهد.

// گزینه های حروفچینی را برای قالب پیش فرض ObjectTeX در پسوند موتور ObjectTeX ایجاد کنید.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// یک دایرکتوری کار سیستم فایل را برای ورودی مشخص کنید.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// یک دایرکتوری کار سیستم فایل را برای خروجی مشخص کنید.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// کنسول را به عنوان ترمینال خروجی مشخص کنید.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// پیش فرض نیازی به تعیین نیست.
// اگر نمی خواهید خروجی ترمینال روی کنسول نوشته شود، جریان حافظه را به عنوان پایانه خروجی مشخص کنید.
//options.TerminalOut = new OutputMemoryTerminal();

// PdfSaveOptions را تنظیم کنید
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// حروفچینی را اجرا کنید.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// برای خروجی بیشتر بنویسید.
options->get_TerminalOut()->get_Writer()->WriteLine();

دایرکتوری زیپ TeX را با استفاده از C++ به دایرکتوری ZIP PDF تبدیل کنید

به منظور تبدیل چندین فایل TeX به فرمت PDF در یک حرکت، می توانید فایل های TeX را به یک آرشیو ZIP اضافه کرده و آنها را به فایل های PDF فشرده تبدیل کنید. مراحل زیر برای دستیابی به این مهم است.

کد نمونه زیر نحوه تبدیل آرشیو TeX ZIP به آرشیو PDF ZIP با استفاده از C++ را نشان می دهد.

// فایل فشرده منبع را در یک جریان باز کنید
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// پاک کردن منابع تحت عبارت «استفاده»
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// -----------------------------------------

try {
    // فایل فشرده خروجی را در یک جریان باز کنید
    System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(u"OutputDirectory", u"zip-pdf-out.zip"), System::IO::FileMode::Create);
    // پاک کردن منابع تحت عبارت «استفاده»
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // -----------------------------------------

    try
    {
        // گزینه های حروفچینی را برای قالب پیش فرض ObjectTeX در پسوند موتور ObjectTeX ایجاد کنید.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // یک دایرکتوری کاری بایگانی ZIP برای ورودی مشخص کنید.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // یک دایرکتوری کار بایگانی ZIP را برای خروجی مشخص کنید.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // کنسول را به عنوان ترمینال خروجی مشخص کنید.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // پیش فرض لازم نیست مشخص شود.

        // گزینه های ذخیره سازی را ایجاد و مشخص کنید.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // حروفچینی را اجرا کنید.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // برای اینکه خروجی بعدی به نظر برسد بنویسید. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // آرشیو ZIP خروجی را نهایی کنید.
        (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());
}

مجوز رایگان دریافت کنید

با درخواست [مجوز موقت رایگان] می‌توانید API را بدون محدودیت ارزیابی امتحان کنید.

نتیجه

در این مقاله با نحوه تبدیل فایل های TeX به فرمت XPS و PDF با استفاده از ++C آشنا شدید. علاوه بر این، شما یاد گرفته اید که چگونه فایل های TeX را در یک آرشیو ZIP به فایل های PDF فشرده تبدیل کنید. Aspose.TeX برای C++ بسیاری از ویژگی های اضافی را برای کار با فایل های TeX فراهم می کند. می‌توانید با مراجعه به مستندات رسمی API را با جزئیات بررسی کنید. در صورت وجود هرگونه سوال، لطفاً در [تالار گفتمان پشتیبانی رایگان31 ما با ما تماس بگیرید.

همچنین ببینید