Látex para xps | C++
Outro formato de destino suportado por Aspose.TeX é xps. Um arquivo xps é na verdade um pacote zip que contém conteúdo paginado de um documento, juntamente com os metadados necessários para a exibição adequada por visualizadores específicos (como o Windows XPS Viewer) e a impressão. Todos os dados em um pacote são representados por arquivos. Alguns deles são binários e contêm recursos como imagens, fontes e perfis da ICC. Outros são arquivos XML em vários esquemas específicos. Este último inclui arquivos que contêm os dados do documento em si. Os dados do documento consistem em um conjunto de arquivos - cada arquivo contém dados para uma página individual do documento. Esses arquivos consistem em um elemento de página única e uma árvore de elementos filhos - Canvas, Paths e Glyphs. Canvas é um elemento de agrupamento que pode conter outras Canvas, Paths e Glyphs. Sua missão é controlar a aparência de todos os elementos infantis como um grupo. * Os elementos do caminho* são usados para definir os caminhos gráficos vetoriais. E Glyphs elementos são usados para definir conteúdo textual. Todos os três elementos têm propriedades para definir vários aspectos da aparência.
Existe a biblioteca Aspose.page que fornece uma API para manipular documentos XPS, além de convertê -los em formatos de imagem PDF e raster.
Como converter LaTeX em xps
A conversão em XPS é tão simples quanto a conversão em formatos de imagem raster, exceto que, além das SaveOptions, precisamos alterar o dispositivo para uma instância da 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();
Uma maneira alternativa de escrever o arquivo XPS de saída principal
Há outro construtor da classe XPSDevice, que permite obter o arquivo XPS resultante de uma maneira alternativa.
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 }
O efeito é o mesmo que chegamos aqui.
Você também pode conferir a conversão LATEX-XPS gratuita aplicativo da Web construído com base no Aspose.TeX para .NET API. Aqui é a página da versão C ++.