Ausgabe nach ZIP schreiben

Speichern Sie das Ergebnis der TeX-Dateikonvertierung als ZIP über C++

 

TeX ist eine Datenmarkup-Sprache und der Kern des Computer-Satzsystems, das auch als Publikationssatzsystem bekannt ist. Obwohl es oft als Dateiformat bezeichnet wird, ist es eigentlich eine Programmiersprache und eine Interpreter-Engine, die zur Erstellung mathematischer, technischer und anderer komplexer Dokumente verwendet wird. Sobald jedoch eine Datei erstellt wurde, kann es erforderlich sein, sie in ein gängigeres Format zu konvertieren, um das Ergebnis auf jedem Gerät und jeder Plattform verwenden zu können.

Die Aspose.TeX-API-Lösung bietet eine Funktion zum Konvertieren von TeX-Dateien und zum Speichern des Ergebnisses als ZIP-Archiv. Das hier bereitgestellte Code-Snippet zeigt, wie man eine TeX-Datei in PDF konvertiert und die Ausgabe als Zip-Datei speichert. Der API-Konverter kann TeX-Dateien in der Sprache C++ transformieren und kann zur Erstellung einer plattformübergreifenden Anwendung verwendet oder in Ihr C++-Projekt integriert werden.

Um die Beispiele auszuführen, benötigen Sie die Aspose.TeX-API für C++, ein funktionsreiches und benutzerfreundliches Dokumentenbearbeitungs- und Konvertierungstool für die C++-Plattform. Sie können die Aspose.TeX-API installieren, indem Sie im NuGet-Paketmanager danach suchen oder den Befehl Install-Package Aspose.TeX in der Paketmanager-Konsole verwenden.

Package Manager Console Command


    PM> Install-Package Aspose.TeX

Der Code hier konvertiert eine TeX-Datei und speichert sie als PDF in einem ZIP-Archiv. Führen Sie die nächsten Schritte aus, um eine solche Konvertierung zu verarbeiten:

  1. Erstellen Sie eine Instanz der Klasse TeXOptions . Verwenden Sie diese, um ein ZIP-Archiv-Arbeitsverzeichnis für die Ausgabe mithilfe der Eigenschaft OutputWorkingDirectory anzugeben.
  2. Geben Sie die Konsole als Ausgabeterminal unter Verwendung der Klasse OutputConsoleTerminal an.
  3. Definieren Sie die Optionen zum Speichern der Ausgabe unter Verwendung der Klasse PdfSaveOptions .
  4. Führen Sie die TeX-nach-PDF-Konvertierung mit der Methode TeXJob für PdfDevice aus.
  5. Verfeinern Sie die Ausgabe.
  6. Schließen Sie das Ausgabe-ZIP-Archiv unter Verwendung der Klasse OutputZipDirectory ab. Der Code verwendet einen try-catch-Block, um alle Ausnahmen zu behandeln, die während des Prozesses auftreten können.

C++-Code zur Verwendung von ZIP-Verzeichnissen für die Ausgabe

    using Aspose::TeX::IO;
    using Aspose::TeX::Presentation::Pdf;
    using System::IO;
    // 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 '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 'using' statement
            System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream});
            // ------------------------------------------

            try
            {
                // Create typesetting options for default ObjectTeX format on ObjectTeX 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 the console as an output terminal.
                options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
                // Default. Not necessary to specify.

                // Create and specify saving options.
                options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
                // Run typesetting.
                Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);

                // For the consequent output to look right. 
                options->get_TerminalOut()->get_Writer()->WriteLine();

                // 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());
        }
    }

TeX What is TeX File Format

TeX ist ein Satzsystem und eine Programmiersprache, das Dokumente in Klartext beschreibt. TeX‑Dateien werden von einer TeX‑Engine (z. B. pdfTeX, XeTeX, LuaTeX) verarbeitet und erzeugen Ausgaben wie PDF oder DVI. Es bietet präzise Kontrolle über Layout, Typografie und mathematische Formeln.