Comment rendre LaTeX en PNG en utilisant C++

Cette rubrique intéressante fournit une démonstration sur la façon de rendre LaTeX en PNG en utilisant C++. Nous appelons également les fichiers LaTeX en tant que fichiers .tex et on peut facilement rendre LaTeX en PNG en C++ avec des propriétés et des méthodes API simples. Une bonne chose à propos de l’utilisation de cet exemple est que les appels d’API ne dépendent d’aucun autre logiciel d’application ou outil tiers pour leur exécution.

Étapes pour rendre LaTeX en PNG en utilisant C++

  1. Installez Aspose.Tex.Cpp à l’aide de l’outil NuGet package Manager
  2. Inclure une référence à Aspose::TeX, Aspose::TeX::IO et Aspose::TeX::Presentation::Image namespaces
  3. Instanciez l’objet TeXOptions Class pour définir les configurations
  4. Instanciez l’objet PngSaveOptions Class pour enregistrer l’image LaTeX en PNG
  5. Initialiser ImageDevice pour le rendu
  6. Utiliser TexJob pour rendre l’image LaTeX en PNG

Les documents LaTeX sont destinés à des fins scientifiques et de recherche qui peuvent être utilisés par des utilisateurs techniques et contiennent des informations sous forme de texte brut. Afin d’exporter LaTeX vers une image PNG en C++, nous allons d’abord créer une instance de la classe TeXOptions pour définir les configurations impliquant le répertoire d’entrée, le répertoire de sortie et les options de la console. Dans les étapes suivantes, nous définirons les propriétés PngSaveOptions comme la résolution de l’image. Enfin, nous allons initialiser ImageDevice et en utilisant TexJob rendre LaTeX en image PNG en utilisant C++.

Code pour convertir LaTeX en PNG en C++

#pragma once
#include <system/text/encoding.h>
#include <system/io/text_writer.h>
#include <system/io/memory_stream.h>
#include <system/array.h>
#include <Aspose.TeX.Cpp/TeXOptions.h>
#include <Aspose.TeX.Cpp/TeXConfig.h>
#include <Aspose.TeX.Cpp/TeXJob.h>
#include <Aspose.TeX.Cpp/Presentation/SaveOptions.h>
#include <Aspose.TeX.Cpp/Presentation/Image/PngSaveOptions.h>
#include <Aspose.TeX.Cpp/Presentation/Image/ImageDevice.h>
#include <Aspose.TeX.Cpp/IO/OutputFileSystemDirectory.h>
#include <Aspose.TeX.Cpp/IO/OutputConsoleTerminal.h>
#include <Aspose.TeX.Cpp/IO/IOutputWorkingDirectory.h>
#include <Aspose.TeX.Cpp/IO/IOutputTerminal.h>
#include <Aspose.TeX.Cpp/IO/InputFileSystemDirectory.h>
#include <Aspose.TeX.Cpp/IO/InputConsoleTerminal.h>
#include <Aspose.TeX.Cpp/IO/IInputTerminal.h>
#include <cstdint>
#include <Aspose.TeX.Cpp/License.h>
using namespace Aspose::TeX;
using namespace Aspose::TeX::IO;
using namespace Aspose::TeX::Presentation::Image;
class TexToPngConverter{
public:
static void TexToPNGRendering()
{
// Initialize license object
System::SharedPtr<License> TexLicense = System::MakeObject<License>();
// Applying license for rendering PNG
TexLicense->SetLicense(u"Aspose.Total.NET.lic");
// Instantiate TeXOptions object for configuring settings
System::SharedPtr<TeXOptions> RenderingOptions = TeXOptions::ConsoleAppOptions(TeXConfig::ObjectTeX());
// Specify the job name.
RenderingOptions->set_JobName(u"stream-image-out");
// Specify the input file working directory.
RenderingOptions->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(u""));
// Specify the output file working directory.
RenderingOptions->set_OutputWorkingDirectory(System::MakeObject<OutputFileSystemDirectory>(u""));
// Setting the console input terminal
RenderingOptions->set_TerminalIn(System::MakeObject<InputConsoleTerminal>());
// Setting the console output terminal
RenderingOptions->set_TerminalOut(System::MakeObject<OutputConsoleTerminal>());
// Creating and specifying PngSaveOptions
System::SharedPtr<PngSaveOptions> ImageOptions = System::MakeObject<PngSaveOptions>();
ImageOptions->set_Resolution(300);
RenderingOptions->set_SaveOptions(ImageOptions);
// Instantiating ImageDevice for rendering
System::SharedPtr<ImageDevice> ImageDevise = System::MakeObject<ImageDevice>();
// Running TexJob for rendering to PNG
TeXJob::TeXJob(System::MakeObject<System::IO::MemoryStream>(System::Text::Encoding::get_ASCII()->
GetBytes(u"\\hrule height 10pt width 95pt\\vskip10pt\\hrule height 5pt")),
ImageDevise, RenderingOptions);
// During executoion, when the console prompts the input,
// Step 1: Type "ABC", press Enter
// Step 2: Type "\end" and press Enter again
// In order to view the ouptut and to look write.
RenderingOptions->get_TerminalOut()->get_Writer()->WriteLine();
// Alternatively, you can also get the images in form of array of byte arrays
// The 0th index belong to first page.
System::ArrayPtr<System::ArrayPtr<uint8_t>> result = ImageDevise->get_Result();
}
};

Dans cette rubrique, nous avons appris comment C++ crée une image PNG à partir de LaTeX à l’aide d’appels d’API simples. Si vous souhaitez découvrir d’autres fonctionnalités telles que le rendu des fichiers MPP, reportez-vous à l’article sur comment convertir MPP en XPS en utilisant C++.

 Français