Αυτό το ενδιαφέρον θέμα παρέχει επίδειξη σχετικά με τον τρόπο απόδοσης του LaTeX στο PNG χρησιμοποιώντας C++. Ονομάζουμε επίσης τα αρχεία LaTeX ως αρχεία .tex και κάποιος μπορεί εύκολα να αποδόσει το LaTeX σε PNG σε C++ με απλές ιδιότητες και μεθόδους API. Ένα καλό με τη χρήση αυτού του παραδείγματος είναι ότι οι κλήσεις API δεν εξαρτώνται από κανένα άλλο λογισμικό εφαρμογής ή εργαλεία τρίτων για την εκτέλεσή τους.
Βήματα για την απόδοση του LaTeX σε PNG χρησιμοποιώντας C++
- Εγκαταστήστε το Aspose.Tex.Cpp χρησιμοποιώντας το εργαλείο διαχείρισης πακέτων NuGet
- Συμπεριλάβετε αναφορά στα Aspose::TeX, Aspose::TeX::IO και Aspose::TeX::Presentation::Image namespaces
- Δημιουργήστε το αντικείμενο TeXOptions Class για τη ρύθμιση των διαμορφώσεων
- Δημιουργήστε το αντικείμενο PngSaveOptions Class για αποθήκευση εικόνας LaTeX σε PNG
- Εκκινήστε το ImageDevice για απόδοση
- Χρησιμοποιήστε το 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++.