LaTeX a XPS | C++
Un altro formato target supportato da aspose.tex è xps. Un file XPS è in realtà un pacchetto zip che contiene contenuto paginato di un documento, insieme ai metadati richiesti per la visualizzazione corretta da specifici telespettatori (come Windows XPS Viewer) e la stampa. Tutti i dati in un pacchetto sono rappresentati dai file. Alcuni di essi sono binari e contengono risorse come immagini, caratteri e profili ICC. Altri sono file XML in vari schemi specifici. Quest’ultimo include file che contengono i dati del documento stesso. I dati del documento sono costituiti da un set di file: ogni file contiene dati per una singola pagina del documento. Tali file sono costituiti da un singolo elemento di pagina e un albero di elementi figlio - tela, percorso e glicfi. Canvasè un elemento di raggruppamento che può contenere altretele,percorsi e glicfi. La sua missione è quella di controllare l’aspetto di tutti gli elementi infantili come gruppo. Path Gli elementi vengono utilizzati per definire percorsi grafici vettoriali. E gli elementi glifi vengono utilizzati per definire il contenuto testuale. Tutti e tre gli elementi hanno proprietà per definire vari aspetti dell’apparenza.
Esiste la libreria Aspose.Page che fornisce un’API per manipolare i documenti XPS, oltre a convertirli in formati di immagini PDF e raster.
Come convertire il LaTeX in XPS
La conversione in XPS è altrettanto semplice come la conversione in formati di immagini raster, tranne che oltre ai SaveOptions, dobbiamo cambiare il dispositivo in un’istanza della classe XPSDevice.
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();
Un modo alternativo per scrivere il file XPS di output principale
C’è un altro costruttore della classe XPSDevice, che ci consente di ottenere il file XPS risultante in modo alternativo.
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’effetto è lo stesso che otteniamo qui.
È inoltre possibile controllare la conversione da lattoce a XPS gratuita app Web basata in base all’API Aspose.TeX per .NET. Qui è la pagina della versione C ++.