Jak vykreslit LaTeX do PNG pomocí C++

Toto zajímavé téma poskytuje ukázku toho, jak vykreslit LaTeX do PNG pomocí C++. Soubory LaTeX také nazýváme jako soubory .tex a je možné snadno renderovat LaTeX do PNG v C++ pomocí jednoduchých vlastností a metod API. Jedna dobrá věc na použití tohoto příkladu je, že volání API nejsou při jejich provádění závislá na žádném jiném aplikačním softwaru nebo nástrojích třetích stran.

Kroky k vykreslení LaTeXu do PNG pomocí C++

  1. Nainstalujte Aspose.Tex.Cpp pomocí nástroje Správce balíčků NuGet
  2. Zahrňte odkaz na jmenné prostory Aspose::TeX, Aspose::TeX::IO a Aspose::TeX::Presentation::Image
  3. Vytvořit instanci objektu TeXOptions Class pro nastavení konfigurací
  4. Vytvořte instanci objektu PngSaveOptions Class pro uložení LaTeXu do obrázku PNG
  5. Inicializujte ImageDevice pro vykreslování
  6. Použijte TexJob pro vykreslení obrazu LaTeX do PNG

Dokumenty LaTeX jsou určeny pro vědecké a výzkumné účely, které mohou používat technici a obsahují informace ve formě prostého textu. Abychom mohli exportovat LaTeX do obrazu PNG v C++, nejprve vytvoříme instanci třídy TeXOptions pro nastavení konfigurací zahrnujících vstupní adresář, výstupní adresář a možnosti konzole. V následujících krocích nastavíme vlastnosti PngSaveOptions, jako je rozlišení obrázku. Nakonec inicializujeme ImageDevice a pomocí TexJob vykreslíme LaTeX na obrázek PNG pomocí C++.

Kód pro převod LaTeXu na PNG v 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();
}
};

V tomto tématu jsme se naučili, jak C++ vytváří obraz PNG z LaTeXu pomocí jednoduchých volání API. Pokud se chcete naučit další funkce, jako je vykreslování souborů MPP, přečtěte si článek na jak převést MPP na XPS pomocí C++.

 Čeština