LaTeX vers XPS | Aspose.TeX pour C++

Un autre format cible pris en charge par Aspose.TeX est XPS. Un fichier XPS est en fait un package ZIP qui contient le contenu paginé d’un document, ainsi que les métadonnées requises pour un affichage correct par des visualiseurs spécifiques (tels que Windows XPS Viewer) et une impression. Toutes les données d’un package sont représentées par des fichiers. Certains d’entre eux sont binaires et contiennent des ressources telles que des images, des polices et des profils ICC. D’autres sont des fichiers XML dans divers schémas spécifiques. Ces derniers incluent des fichiers contenant les données du document elles-mêmes. Les données du document se composent d’un ensemble de fichiers - chaque fichier contient des données pour une page individuelle du document. Ces fichiers se composent d’un seul élément de page et d’une arborescence d’éléments enfants - Canvas, Path et Glyphs. Canvas est un élément de regroupement qui peut contenir d’autres Canvas, Paths et Glyphs. Sa mission est de contrôler l’apparence de tous les éléments enfants en tant que groupe. Les éléments Path sont utilisés pour définir des chemins de graphiques vectoriels. Et les éléments Glyphs sont utilisés pour définir le contenu textuel. Les trois éléments ont des propriétés permettant de définir divers aspects de l’apparence.

Il existe la bibliothèque Aspose.Page qui fournit une API pour manipuler les documents XPS, ainsi que pour les convertir aux formats PDF et d’image raster.

Comment convertir LaTeX en XPS

La conversion en XPS est aussi simple que la conversion aux formats d’image raster, sauf qu’en plus des SaveOptions, nous devons changer le périphérique en une instance du XpsDevice classe.

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

Une autre façon d’écrire le fichier XPS de sortie principal

Il existe un autre constructeur de la classe XpsDevice, qui nous permet d’obtenir le fichier XPS résultant d’une manière alternative.

 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    }

L’effet est le même que celui que nous obtenons ici.

Vous pouvez également consulter la conversion gratuite LaTeX vers XPS application Web construite sur la base de l’API Aspose.TeX for .NET. Ici est la page de la version C++.

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.