LaTeX zu XPS | Aspose.TeX für Java
Ein weiteres Zielformat ist XPS. Eine XPS-Datei ist physisch ein ZIP-Paket, das den paginierten Inhalt eines Dokuments sowie die 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 als Dateien in Verzeichnissen organisiert. Einige davon 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 sind eine 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. Sein Zweck ist die Kontrolle über das Erscheinungsbild aller untergeordneten Elemente als Gruppe. 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 eine Instanz der Klasse XpsDevice verwenden müssen.
1// Create conversion options instance.
2...
3// Initialize the options for saving in XPS format.
4options.setSaveOptions(new XpsSaveOptions()); // Default value. Arbitrary assignment.
5// Run LaTeX to XPS conversion.
6new TeXJob(Utils.getInputDirectory() + "sample.ltx", new XpsDevice(), options).run();
Eine alternative Möglichkeit, die XPS-Hauptausgabedatei zu schreiben
Es gibt einen weiteren Konstruktor der Klasse XpsDevice, der es uns ermöglicht, die resultierende XPS-Datei auf alternative Weise abzurufen.
1// Create the stream to write the XPS file to.
2final OutputStream xpsStream = new FileOutputStream(Utils.getOutputDirectory() + "any-name.xps");
3{
4 // Create conversion options for Object LaTeX format upon Object TeX engine extension.
5 ...
6 // Initialize the options for saving in XPS format.
7 options.setSaveOptions(new XpsSaveOptions()); // Default value. Arbitrary assignment.
8 // Run LaTeX to XPS conversion.
9 new TeXJob(Utils.getInputDirectory() + "hello-world.ltx", new XpsDevice(xpsStream), options).run();
10} finally {
11 if (xpsStream != null)
12 xpsStream.close();
13}
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 Java-Versionsseite.