Այս հետաքրքիր թեման ցույց է տալիս, թե ինչպես պետք է արտադրել 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 namespace-ներին
- Ստեղծեք TeXOptions Class օբյեկտ` կոնֆիգուրացիաներ կարգավորելու համար
- Instantiate PngSaveOptions Class օբյեկտ` LaTeX-ը PNG պատկերը պահելու համար
- Նախաձեռնեք ImageDevice-ը ցուցադրման համար
- Օգտագործեք TexJob-ը LaTeX-ի PNG պատկերի վերածելու համար
LaTeX փաստաթղթերը նախատեսված են գիտական և հետազոտական նպատակների համար, որոնք կարող են օգտագործվել տեխնիկական օգտագործողների կողմից և պարունակում են տեղեկատվություն պարզ տեքստի տեսքով: Որպեսզի արտահանեք LaTeX-ը PNG պատկեր C++-ում, մենք նախ կստեղծենք TeXOptions դասի օրինակ՝ մուտքագրման գրացուցակի, ելքային գրացուցակի և կոնսոլի ընտրանքները կարգավորելու համար: Հետագա քայլերում մենք կսահմանենք PngSaveOptions հատկությունները, ինչպիսիք են պատկերի լուծումը: Ի վերջո, մենք նախաստորագրելու ենք ImageDevice-ը և օգտագործելով TexJob կատարում ենք LaTeX-ը PNG պատկերին՝ օգտագործելով C++:
Կոդ՝ C++-ում LaTeX-ը PNG-ի փոխարկելու համար
#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++-ում: