วิธี Render LaTeX เป็น PNG โดยใช้ C++

หัวข้อที่น่าสนใจนี้แสดงการสาธิตวิธีการ เรนเดอร์ LaTeX เป็น PNG โดยใช้ C+* นอกจากนี้ เรายังเรียกไฟล์ LaTeX เป็นไฟล์ .tex และไฟล์อื่นอาจ *render LaTeX เป็น PNG ใน C+++ ได้อย่างง่ายดายด้วยคุณสมบัติและวิธีการของ API ที่เรียบง่าย ข้อดีอย่างหนึ่งเกี่ยวกับการใช้ตัวอย่างนี้คือ การเรียก API นั้นไม่ได้ขึ้นอยู่กับซอฟต์แวร์แอปพลิเคชันอื่นใดหรือเครื่องมือของบุคคลที่สามในการดำเนินการ

ขั้นตอนในการ Render LaTeX เป็น PNG โดยใช้ C++

  1. ติดตั้ง Aspose.Tex.Cpp โดยใช้เครื่องมือ NuGet package Manager
  2. รวมการอ้างอิงถึง Aspose::TeX, Aspose::TeX::IO และ Aspose::TeX::Presentation::Image namespaces
  3. ยกตัวอย่างวัตถุ TeXOptions Class สำหรับการตั้งค่า
  4. ยกตัวอย่างวัตถุ PngSaveOptions Class เพื่อบันทึกภาพ LaTeX เป็น PNG
  5. เริ่มต้น ImageDevice สำหรับการเรนเดอร์
  6. ใช้ TexJob เพื่อเรนเดอร์ภาพ LaTeX เป็น PNG

เอกสาร LaTeX มีไว้เพื่อวัตถุประสงค์ทางวิทยาศาสตร์และการวิจัยที่ผู้ใช้ด้านเทคนิคสามารถใช้ได้ และมีข้อมูลในรูปแบบข้อความล้วน ในการ ส่งออกรูปภาพ LaTeX เป็น PNG ใน C++ ก่อนอื่นเราจะสร้างอินสแตนซ์ของ TeXOptions class สำหรับการตั้งค่าที่เกี่ยวข้องกับอินพุตไดเร็กทอรี เอาต์พุตไดเร็กทอรี และตัวเลือกคอนโซล ในขั้นตอนต่อมา เราจะตั้งค่าคุณสมบัติ PngSaveOptions เช่น ความละเอียดของภาพ สุดท้าย เราจะเริ่มต้น ImageDevice และใช้ TexJob *render 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 ++

 ไทย