Os arquivos TeX são usados para compor diferentes documentos e livros contendo texto, símbolos e expressões aritméticas. Além disso, esses arquivos podem gerar saídas como PDF, XPS e vários formatos de imagem. Neste artigo, você aprenderá como converter arquivos TeX para o formato XPS e PDF usando C++.
- API C++ para converter TeX para PDF e formato XPS
- Converter TeX para formato XPS usando C++
- Convertendo TeX para o formato PDF usando C++
- Converter diretório ZIP TeX para diretório ZIP PDF usando C++
API C++ para converter TeX para PDF e formato XPS
Aspose.TeX for C++ é uma biblioteca C++ para trabalhar com arquivos TeX sem exigir a instalação de nenhum software adicional. A API permite que você componha arquivos TeX e gere saída em formatos como XPS, PDF, PNG, JPEG, TIFF, BMP. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.
PM> Install-Package Aspose.TeX.Cpp
Converter TeX para formato XPS usando C++
Você pode converter arquivos TeX para o formato XPS em apenas algumas linhas de código. Para conseguir isso, siga os passos abaixo.
- Crie uma instância da classe TeXOptions usando o TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) função membro.
- Especifique os diretórios de trabalho de entrada e saída.
- Especifique o console ou o fluxo de memória como um terminal de saída.
- Salve o arquivo XPS de saída usando o TeX::Typeset(System::String path, System::SharedPtrPresentation::Device dispositivo, System::SharedPtr options) com uma instância da classe XpsDevice.
O código de exemplo a seguir demonstra como converter um arquivo TeX para o formato XPS usando C++.
// Crie opções de composição para o formato padrão do ObjectTeX na extensão do mecanismo ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Especifique um diretório de trabalho do sistema de arquivos para entrada.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// Especifique um diretório de trabalho do sistema de arquivos para saída.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Especifique o console como terminal de saída.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Predefinição. Não há necessidade de especificar.
// Especifique o fluxo de memória como terminal de saída, se você não quiser que a saída do terminal seja gravada no console.
//opções.TerminalOut = new OutputMemoryTerminal();
// Execute a tipografia.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<XpsDevice>(), options);
// Para obter mais saídas, escreva.
options->get_TerminalOut()->get_Writer()->WriteLine();
Convertendo TeX para o formato PDF usando C++
A seguir estão as etapas para converter arquivos TeX para o formato PDF.
- Crie uma instância da classe TeXOptions usando o TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) função membro.
- Especifique os diretórios de trabalho de entrada e saída.
- Especifique o console ou o fluxo de memória como um terminal de saída.
- Passe uma instância da classe PdfSaveOptions para o TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions valor) método.
- Salve o arquivo PDF de saída usando o TeX::Typeset(System::String path, System::SharedPtrPresentation::Device dispositivo, System::SharedPtr options) com uma instância da classe PdfDevice.
O código de exemplo a seguir mostra como converter um arquivo TeX para o formato PDF usando C++.
// Crie opções de composição para o formato padrão do ObjectTeX na extensão do mecanismo ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Especifique um diretório de trabalho do sistema de arquivos para entrada.
options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u"SourceDirectory"));
// Especifique um diretório de trabalho do sistema de arquivos para saída.
options->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u"OutputDirectory"));
// Especifique o console como terminal de saída.
options->set_TerminalOut(System::MakeObject<Aspose::TeX::IO::OutputConsoleTerminal>());
// Predefinição. Não há necessidade de especificar.
// Especifique o fluxo de memória como terminal de saída, se você não quiser que a saída do terminal seja gravada no console.
//opções.TerminalOut = new OutputMemoryTerminal();
// Definir PdfSaveOptions
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Execute a tipografia.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// Para obter mais saídas, escreva.
options->get_TerminalOut()->get_Writer()->WriteLine();
Converter diretório ZIP TeX para diretório ZIP PDF usando C++
Para converter vários arquivos TeX para o formato PDF de uma só vez, você pode adicionar os arquivos TeX a um arquivo ZIP e convertê-los em arquivos PDF compactados. A seguir estão os passos para conseguir isso.
- Carregue os arquivos ZIP de entrada e saída em fluxos.
- Crie uma instância da classe TeXOptions usando o TeXConfig::ObjectTeX(System::SharedPtrAspose::TeX::ResourceProviders::FormatProvider formatProvider = nullptr) função membro.
- Defina os diretórios de trabalho de entrada e saída.
- Especifique o console ou o fluxo de memória como um terminal de saída.
- Passe uma instância da classe PdfSaveOptions para o TeXOptions->setSaveOptions(System::SharedPtrAspose::TeX::Presentation::SaveOptions valor) método.
- Salve o arquivo PDF de saída compactado usando o TeX::Typeset(System::String path, System::SharedPtrPresentation::Device dispositivo, System::SharedPtr options) com uma instância da classe PdfDevice.
O código de exemplo a seguir mostra como converter o arquivo ZIP TeX em arquivo ZIP PDF usando C++.
// Abra o arquivo zip de origem em um fluxo
System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(u"SourceDirectory", u"zip-in.zip"), System::IO::FileMode::Open);
// Limpando recursos sob a instrução 'usando'
System::Details::DisposeGuard<1> __dispose_guard_1({ inZipStream });
// ------------------------------------------
try {
// Abra o arquivo zip de saída em um fluxo
System::SharedPtr<System::IO::Stream> outZipStream = System::IO::File::Open(System::IO::Path::Combine(u"OutputDirectory", u"zip-pdf-out.zip"), System::IO::FileMode::Create);
// Limpando recursos sob a instrução 'usando'
System::Details::DisposeGuard<1> __dispose_guard_0({ outZipStream });
// ------------------------------------------
try
{
// Crie opções de composição para o formato padrão do ObjectTeX na extensão do mecanismo ObjectTeX.
System::SharedPtr<TeXOptions> options = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Especifique um diretório de trabalho do arquivo ZIP para entrada.
options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
// Especifique um diretório de trabalho do arquivo ZIP para saída.
options->set_OutputWorkingDirectory(System::MakeObject<OutputZipDirectory>(outZipStream));
// Especifique o console como terminal de saída.
options->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Predefinição. Não é necessário especificar.
// Crie e especifique opções de salvamento.
options->set_SaveOptions(System::MakeObject<PdfSaveOptions>());
// Execute a tipografia.
Aspose::TeX::TeX::Typeset(u"hello-world", System::MakeObject<PdfDevice>(), options);
// Para que a saída consequente pareça, escreva.
options->get_TerminalOut()->get_Writer()->WriteLine();
// Finalize o arquivo ZIP de saída.
(System::DynamicCast<Aspose::TeX::IO::OutputZipDirectory>(options->get_OutputWorkingDirectory()))->Finish();
}
catch (...)
{
__dispose_guard_0.SetCurrentException(std::current_exception());
}
}
catch (...)
{
__dispose_guard_1.SetCurrentException(std::current_exception());
}
Obtenha uma licença gratuita
Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como converter arquivos TeX para o formato XPS e PDF usando C++. Além disso, você aprendeu como converter arquivos TeX em um arquivo ZIP para arquivos PDF compactados. O Aspose.TeX para C++ fornece muitos recursos adicionais para trabalhar com arquivos TeX. Você pode explorar a API em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.