Програмно конвертуйте 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 або завантажити його безпосередньо з розділу Завантаження.

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 = новий 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 = новий 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 ZIP у каталог PDF ZIP за допомогою C++

Щоб конвертувати кілька файлів TeX у формат PDF за один раз, ви можете додати файли TeX до архіву ZIP і конвертувати їх у заархівовані файли PDF. Нижче наведено кроки для досягнення цього.

Наступний приклад коду показує, як перетворити архів TeX ZIP на архів PDF ZIP за допомогою C++.

// Відкрийте вихідний zip-файл у потоці
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 {
    // Відкрийте вихідний zip-файл у потоці
    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 for C++ надає багато додаткових можливостей для роботи з файлами TeX. Ви можете детально вивчити API, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також