Konwertuj TeX do pliku PDF lub XPS Programowo przy użyciu C++

Pliki TeX służą do składu różnych dokumentów i książek zawierających tekst, symbole i wyrażenia arytmetyczne. Ponadto pliki te mogą generować dane wyjściowe, takie jak PDF, XPS i różne formaty obrazów. W tym artykule dowiesz się, jak konwertować pliki TeX do formatu XPS i PDF za pomocą C++.

C++ API do konwersji TeX-a do formatu PDF i XPS

Aspose.TeX for C++ to biblioteka C++ do pracy z plikami TeX bez konieczności instalowania dodatkowego oprogramowania. Interfejs API umożliwia składanie plików TeX i generowanie danych wyjściowych w formatach takich jak XPS, PDF, PNG, JPEG, TIFF, [ BMP 10. Możesz zainstalować API przez NuGet lub pobrać bezpośrednio z sekcji Downloads.

PM> Install-Package Aspose.TeX.Cpp

Konwertuj TeX na format XPS za pomocą C++

Możesz konwertować pliki TeX do formatu XPS w zaledwie kilku wierszach kodu. Aby to osiągnąć, wykonaj czynności podane poniżej.

Poniższy przykładowy kod pokazuje, jak przekonwertować plik TeX do formatu XPS przy użyciu języka C++.

// Utwórz opcje składu dla domyślnego formatu ObjectTeX w rozszerzeniu silnika ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Określ katalog roboczy systemu plików dla danych wejściowych.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Określ katalog roboczy systemu plików dla danych wyjściowych.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Określ konsolę jako terminal wyjściowy.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Domyślna. Nie trzeba określać.
// Określ strumień pamięci jako terminal wyjściowy, jeśli nie chcesz, aby dane wyjściowe terminala były zapisywane w konsoli.
//options.TerminalOut = new OutputMemoryTerminal();

// Uruchom skład.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// Aby uzyskać dalsze wyniki, napisz.
options->get_TerminalOut()->get_Writer()->WriteLine();

Konwersja TeX-a do formatu PDF przy użyciu C++

Poniżej przedstawiono kroki konwersji plików TeX do formatu PDF.

Poniższy przykładowy kod pokazuje, jak przekonwertować plik TeX do formatu PDF przy użyciu języka C++.

// Utwórz opcje składu dla domyślnego formatu ObjectTeX w rozszerzeniu silnika ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Określ katalog roboczy systemu plików dla danych wejściowych.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Określ katalog roboczy systemu plików dla danych wyjściowych.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Określ konsolę jako terminal wyjściowy.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Domyślna. Nie trzeba określać.
// Określ strumień pamięci jako terminal wyjściowy, jeśli nie chcesz, aby dane wyjściowe terminala były zapisywane w konsoli.
//options.TerminalOut = new OutputMemoryTerminal();

// Ustaw opcję PdfSave
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// Uruchom skład.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// Aby uzyskać dalsze wyniki, napisz.
options->get_TerminalOut()->get_Writer()->WriteLine();

Konwersja katalogu TeX ZIP do katalogu PDF ZIP przy użyciu C++

Aby za jednym razem przekonwertować wiele plików TeX do formatu PDF, możesz dodać pliki TeX do archiwum ZIP i przekonwertować je na spakowane pliki PDF. Poniżej przedstawiono kroki, aby to osiągnąć.

Poniższy przykładowy kod pokazuje, jak przekonwertować archiwum TeX ZIP na archiwum ZIP PDF za pomocą C++.

// Otwórz źródłowy plik ZIP w strumieniu
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Czyszczenie zasobów w instrukcji „używanie”.
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------------------------------------

try {
    // Otwórz wyjściowy plik ZIP w strumieniu
    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);
    // Czyszczenie zasobów w instrukcji „używanie”.
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // ------------------------------------------------------------------------

    try
    {
        // Utwórz opcje składu dla domyślnego formatu ObjectTeX w rozszerzeniu silnika ObjectTeX.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // Określ katalog roboczy archiwum ZIP dla danych wejściowych.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // Określ katalog roboczy archiwum ZIP dla danych wyjściowych.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // Określ konsolę jako terminal wyjściowy.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // Domyślna. Nie trzeba określać.

        // Utwórz i określ opcje zapisywania.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Uruchom skład.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // Aby kolejne dane wyjściowe wyglądały jak write. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // Zakończ wyjściowe archiwum 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());
}

Uzyskaj bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się konwertować pliki TeX do formatu XPS i PDF za pomocą C++. Ponadto nauczyłeś się konwertować pliki TeX w archiwum ZIP na spakowane pliki PDF. Aspose.TeX for C++ zapewnia wiele dodatkowych funkcji do pracy z plikami TeX. Możesz szczegółowo zapoznać się z interfejsem API, odwiedzając oficjalną dokumentację. W przypadku jakichkolwiek pytań prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.

Zobacz też