Как да изобразите LaTeX в PNG с помощта на C++

Тази интересна тема предоставя демонстрация как да изобразите LaTeX в PNG с помощта на C++. Ние също наричаме LaTeX файловете като .tex файлове и човек може лесно да преобразува LaTeX в PNG в C++ с прости API свойства и методи. Едно добро нещо при използването на този пример е, че извикванията на API не зависят от друг приложен софтуер или инструменти на трети страни за тяхното изпълнение.

Стъпки за изобразяване на LaTeX в PNG с помощта на C++

  1. Инсталирайте Aspose.Tex.Cpp с помощта на инструмента NuGet Package Manager
  2. Включете препратка към пространствата от имена на Aspose::TeX, Aspose::TeX::IO и Aspose::TeX::Presentation::Image
  3. Създайте обект TeXOptions Class за задаване на конфигурации
  4. Създайте обект PngSaveOptions Class за запазване на LaTeX в PNG изображение
  5. Инициализирайте ImageDevice за изобразяване
  6. Използвайте TexJob за изобразяване на LaTeX в PNG изображение

Документите на LaTeX са предназначени за научни и изследователски цели, които могат да се използват от технически потребители и съдържат информация в обикновен текстов вид. За да експортираме LaTeX в PNG изображение в C++, първо ще създадем екземпляр на TeXOptions клас за настройка на конфигурации, включващи входна директория, изходна директория и опции на конзолата. В следващите стъпки ще зададем свойства PngSaveOptions като разделителна способност на изображението. Накрая ще инициализираме ImageDevice и с помощта на TexJob рендерираме LaTeX в PNG изображение с помощта на C++.

Код за конвертиране на LaTeX в PNG в 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();
}
};

В тази тема научихме как C++ създава PNG изображение от LaTeX с помощта на прости извиквания на API. Ако се интересувате да научите други функции като изобразяване на MPP файлове, вижте статията на как да конвертирате MPP в XPS с помощта на C++.

 Български