Πώς να αποδώσετε το LaTeX σε PNG χρησιμοποιώντας C++

Αυτό το ενδιαφέρον θέμα παρέχει επίδειξη σχετικά με τον τρόπο απόδοσης του LaTeX στο PNG χρησιμοποιώντας C++. Ονομάζουμε επίσης τα αρχεία LaTeX ως αρχεία .tex και κάποιος μπορεί εύκολα να αποδόσει το LaTeX σε PNG σε C++ με απλές ιδιότητες και μεθόδους API. Ένα καλό με τη χρήση αυτού του παραδείγματος είναι ότι οι κλήσεις API δεν εξαρτώνται από κανένα άλλο λογισμικό εφαρμογής ή εργαλεία τρίτων για την εκτέλεσή τους.

Βήματα για την απόδοση του LaTeX σε PNG χρησιμοποιώντας C++

  1. Εγκαταστήστε το Aspose.Tex.Cpp χρησιμοποιώντας το εργαλείο διαχείρισης πακέτων NuGet
  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 * θα αποδώσουμε την εικόνα 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++.

 Ελληνικά