Konvertieren Sie TeX programmgesteuert mit C++ in eine PDF oder XPS Datei

TeX Dateien werden zum Setzen verschiedener Dokumente und Bücher verwendet, die Text, Symbole und arithmetische Ausdrücke enthalten. Darüber hinaus können diese Dateien Ausgaben wie PDF, XPS und verschiedene Bildformate generieren. In diesem Artikel erfahren Sie, wie Sie TeX Dateien mit C++ in das XPS und PDF Format konvertieren.

C++-API zum Konvertieren von TeX in das PDF und XPS Format

Aspose.TeX for C++ ist eine C++ Bibliothek zum Arbeiten mit TeX Dateien, ohne dass zusätzliche Software installiert werden muss. Mit der API können Sie TeX Dateien setzen und Ausgaben in Formaten wie XPS, PDF, PNG, JPEG, TIFF, BMP. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt Downloads herunterladen.

PM> Install-Package Aspose.TeX.Cpp

Konvertieren Sie TeX in das XPS Format mit C++

Sie können TeX Dateien in nur wenigen Codezeilen in das XPS Format konvertieren. Um dies zu erreichen, folgen Sie bitte den unten angegebenen Schritten.

Der folgende Beispielcode zeigt, wie eine TeX Datei mit C++ in das XPS Format konvertiert wird.

// Erstellen Sie Satzoptionen für das standardmäßige ObjectTeX Format in der ObjectTeX engine erweiterung.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Eingabe an.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Ausgabe an.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Konsole als Ausgabeterminal angeben.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Standard. Keine Angabe erforderlich.
// Geben Sie den Speicherstrom als Ausgabeterminal an, wenn Sie nicht möchten, dass die Terminalausgabe auf die Konsole geschrieben wird.
//options.TerminalOut = new OutputMemoryTerminal();

// Schriftsatz ausführen.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);

// Für weitere Ausgaben siehe schreiben.
options->get_TerminalOut()->get_Writer()->WriteLine();

Konvertieren von TeX in das PDF Format mit C++

Im Folgenden sind die Schritte zum Konvertieren von TeX Dateien in das PDF Format aufgeführt.

Der folgende Beispielcode zeigt, wie eine TeX Datei mit C++ in das PDF Format konvertiert wird.

// Erstellen Sie Satzoptionen für das standardmäßige ObjectTeX Format in der ObjectTeX engine erweiterung.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Eingabe an.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));

// Geben Sie ein Dateisystem-Arbeitsverzeichnis für die Ausgabe an.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));

// Konsole als Ausgabeterminal angeben.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Standard. Keine Angabe erforderlich.
// Geben Sie den Speicherstrom als Ausgabeterminal an, wenn Sie nicht möchten, dass die Terminalausgabe auf die Konsole geschrieben wird.
//options.TerminalOut = new OutputMemoryTerminal();

// Legen Sie PdfSaveOptions fest
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

// Schriftsatz ausführen.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

// Für weitere Ausgaben siehe schreiben.
options->get_TerminalOut()->get_Writer()->WriteLine();

Konvertieren Sie das TeX-ZIP-Verzeichnis mit C++ in das PDF-ZIP-Verzeichnis

Um mehrere TeX Dateien auf einmal in das PDF Format zu konvertieren, können Sie die TeX Dateien zu einem ZIP Archiv hinzufügen und sie in gezippte PDF Dateien konvertieren. Im Folgenden sind die Schritte aufgeführt, um dies zu erreichen.

Der folgende Beispielcode zeigt, wie Sie ein TeX-ZIP-Archiv mit C++ in ein PDF-ZIP-Archiv konvertieren.

// Öffnen Sie die Quell-ZIP Datei in einem Stream
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Löschen von Ressourcen unter der 'using'-Anweisung
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------

try {
    // Öffnen Sie die ZIP-Ausgabedatei in einem Stream
    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);
    // Löschen von Ressourcen unter der 'using'-Anweisung
    System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
    // ------------------------------------------

    try
    {
        // Erstellen Sie Satzoptionen für das standardmäßige ObjectTeX Format in der ObjectTeX engine erweiterung.
        System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());

        // Geben Sie ein ZIP Archiv-Arbeitsverzeichnis für die Eingabe an.
        options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));

        // Geben Sie ein ZIP Archiv-Arbeitsverzeichnis für die Ausgabe an.
        options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));

        // Konsole als Ausgabeterminal angeben.
        options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
        // Standard. Angabe nicht erforderlich.

        // Speicheroptionen erstellen und festlegen.
        options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());

        // Schriftsatz ausführen.
        Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

        // Für eine konsequente Ausgabe suchen Sie schreiben. 
        options->get_TerminalOut()->get_Writer()->WriteLine();

        // Ausgabe-ZIP-Archiv abschließen.
        (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());
}

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie TeX Dateien mit C++ in das XPS und PDF Format konvertieren. Außerdem haben Sie gelernt, TeX Dateien in einem ZIP Archiv in gezippte PDF Dateien umzuwandeln. Aspose.TeX for C++ bietet viele zusätzliche Funktionen für die Arbeit mit TeX Dateien. Sie können die API im Detail erkunden, indem Sie die offizielle Dokumentation besuchen. Bei Fragen können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.

Siehe auch