LaTeX zu XPS | Aspose.TeX für C++

Ein weiteres von Aspose.TeX unterstütztes Zielformat ist XPS. Eine XPS-Datei ist eigentlich ein ZIP-Paket, das den paginierten Inhalt eines Dokuments zusammen mit den Metadaten enthält, die für die ordnungsgemäße Anzeige durch bestimmte Viewer (z. B. Windows XPS Viewer) und das Drucken erforderlich sind. Alle Daten in einem Paket werden durch Dateien repräsentiert. Einige davon sind binär und enthalten Ressourcen wie Bilder, Schriftarten und ICC-Profile. Andere sind XML-Dateien in verschiedenen spezifischen Schemata. Zu letzteren zählen Dateien, die die Dokumentdaten selbst enthalten. Dokumentdaten bestehen aus einer Reihe von Dateien – jede Datei enthält Daten für eine einzelne Seite des Dokuments. Solche Dateien bestehen aus einem einzelnen Seitenelement und einem Baum aus untergeordneten Elementen – Canvas, Path und Glyphs. Canvas ist ein Gruppierungselement, das andere Canvases, Pfade und Glyphen enthalten kann. Seine Aufgabe besteht darin, das Erscheinungsbild aller untergeordneten Elemente als Gruppe zu steuern. Path-Elemente werden zum Definieren von Vektorgrafikpfaden verwendet. Und Glyphen-Elemente werden verwendet, um Textinhalte zu definieren. Alle drei Elemente verfügen über Eigenschaften, um verschiedene Aspekte des Erscheinungsbilds zu definieren.

Es gibt die Bibliothek Aspose.Page, die eine API zum Bearbeiten von XPS-Dokumenten sowie zum Konvertieren dieser in PDF- und Rasterbildformate bereitstellt.

So konvertieren Sie LaTeX in XPS

Die Konvertierung in XPS ist genauso einfach wie die Konvertierung in Rasterbildformate, außer dass wir zusätzlich zu den SaveOptions das Gerät in eine Instanz von XpsDevice ändern müssen Klasse.

1...
2// Initialize the options for saving in Xps format.
3options->set_SaveOptions(System::MakeObject<XpsSaveOptions>());
4
5System::MakeObject<Aspose::TeX::TeXJob>(u"hello-world.ltx", System::MakeObject<XpsDevice>(), options)->Run();

Eine alternative Möglichkeit, die XPS-Hauptausgabedatei zu schreiben

Es gibt einen weiteren Konstruktor der Klasse XpsDevice, mit dem wir die resultierende XPS-Datei auf alternative Weise erhalten können.

 1    // Create the stream to write the XPS file to.
 2    {
 3        System::SharedPtr<System::IO::Stream> xpsStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::OutputDirectory, u"any-name.xps"), System::IO::FileMode::Create);
 4        // Clearing resources under 'using' statement
 5        System::Details::DisposeGuard<1> __dispose_guard_0({ xpsStream});
 6        // ------------------------------------------
 7        
 8        try
 9        {
10            // Create conversion options for Object LaTeX format on Object TeX engine extension.
11            System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::get_ObjectLaTeX());
12            // Specify the file system working directory for the output.
13            options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(RunExamples::OutputDirectory));
14            // Initialize the options for saving in XPS format.
15            options->set_SaveOptions(System::MakeObject<XpsSaveOptions>());
16            // Default value.
17            // Run LaTeX to XPS conversion.
18            System::MakeObject<TeXJob>(System::IO::Path::Combine(RunExamples::InputDirectory, u"hello-world.ltx"), System::MakeObject<XpsDevice>(xpsStream), options)->Run();
19        }
20        catch(...)
21        {
22            __dispose_guard_0.SetCurrentException(std::current_exception());
23        }
24    }

Der Effekt ist derselbe, den wir hier erhalten.

Sie können sich auch die kostenlose LaTeX-zu-XPS-Konvertierung Web-App ansehen, die auf der Aspose.TeX for .NET-API basiert. Hier ist die C++-Versionsseite.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.