Σε αυτό το σεμινάριο, θα καταλάβουμε πώς να μετατρέψετε το PUB) σε PNG χρησιμοποιώντας C++. Θα παρατηρήσετε ότι η μετατροπή πραγματοποιείται σε δύο βήματα. Αρχικά, το αρχείο PUB μετατρέπεται σε αρχείο PDF και στη συνέχεια το ενδιάμεσο αρχείο PDF αποδίδεται σε μορφή PNG χρησιμοποιώντας C++ με απλές κλήσεις API.
Βήματα για να μετατρέψετε το PUB σε PNG χρησιμοποιώντας C++
- Εγκαταστήστε τα Aspose.PUB for C++ και Aspose.PDF for C++ από το Εργαλείο διαχείρισης πακέτων NuGet
- Προσθέστε αναφορά στους χώρους ονομάτων Aspose::Pub και Aspose::Pdf
- Φορτώστε το αρχείο εισόδου PUB με την παρουσία κλάσης Document
- Δημιουργήστε το ενδιάμεσο αρχείο PDF με τη μέθοδο ConvertToPdf
- Επαναλάβετε κάθε σελίδα και δημιουργήστε τις εικόνες εξόδου PNG
Μπορείτε να εξάγετε αποτελεσματικά το PUB σε PNG χρησιμοποιώντας C++ με απλές κλήσεις API σε λίγες γραμμές κώδικα. Χρειάζεται μόνο να καθορίσετε τις διαδρομές του αρχείου και να πραγματοποιήσετε τις κλήσεις μεθόδων και, στη συνέχεια, το API εξετάζει όλες τις δευτερεύουσες λεπτομέρειες της διαδικασίας μετατροπής από μόνο του. Μετά την επεξεργασία, οι εικόνες PNG εξόδου αποθηκεύονται σύμφωνα με τις απαιτήσεις σας.
Κώδικας για μετατροπή PUB σε PNG χρησιμοποιώντας C++
#pragma once | |
#include <stdio.h> | |
#include <tchar.h> | |
#include <cstdint> | |
#include <iostream> | |
// TODO: reference additional headers your program requires here | |
#include "system/console.h" | |
#include "system/string.h" | |
#include "system/io/directory.h" | |
#include <Aspose.Pub.Cpp/Properties/AssemblyInfo.h> | |
#include <Aspose.Pub.Cpp/PubFactory.h> | |
#include <Aspose.Pub.Cpp/Document.h> | |
#include <Aspose.Pub.Cpp/Interfaces.h> | |
#include <Aspose.Pub.Cpp/License.h> | |
#include <Aspose.Pub.Cpp/MetaInfo.h> | |
#include <Aspose.PDF.Cpp/Page.h> | |
#include <Aspose.PDF.Cpp/Document.h> | |
#include <Aspose.PDF.Cpp/PageCollection.h> | |
#include <Aspose.PDF.Cpp/Resources.h> | |
#include <Aspose.PDF.Cpp/XImageCollection.h> | |
#include <Aspose.PDF.Cpp/XImage.h> | |
#include <Aspose.PDF.Cpp/License.h> | |
#include <Aspose.PDF.Cpp/License.h> | |
#include <Aspose.PDF.Cpp/Devices/PngDevice.h> | |
#include <Aspose.PDF.Cpp/Devices/Resolution.h> | |
#include <Aspose.PUB.Cpp/License.h> | |
#include <Aspose.PUB.Cpp/PubFactory.h> | |
#include <Aspose.PUB.Cpp/Utils/UtilityObjects.h> | |
#include <system/smart_ptr.h> | |
using namespace System; | |
using namespace Aspose::Pdf; | |
using namespace Aspose::Pub; | |
class ConvertPUBtoPNGEx { | |
public: | |
static void PUBtoPNG() | |
{ | |
// Initialize license object of Aspose.PUB to convert PUB to PDF | |
auto PUBlicense = System::MakeObject<Aspose::Pub::License>(); | |
// Set license | |
PUBlicense->SetLicense(u"Aspose.Total.NET.lic"); | |
// Initialize license object of Aspose.PDF API to convert PDF to PNG | |
auto PDFlicense = System::MakeObject<Aspose::Pdf::License>(); | |
// Set license | |
PDFlicense->SetLicense(u"Aspose.Total.NET.lic"); | |
System::String filePub = u"Sample.pub"; | |
System::String filePdf = u"Test.pdf"; | |
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub); | |
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse(); | |
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf); | |
// Load the intermediate PDF file created from PUB file | |
System::SharedPtr<Aspose::Pdf::Document> pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf); | |
// Iterate throught the PDF pages for image conversion | |
for (System::SharedPtr<Page> page : pdfDocument->get_Pages()) | |
{ | |
// Create an instance of the FileStream class for output PNG image | |
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"page_{0}.png", page->get_Number())); | |
// Create an instance of the Resolution class to set resolution of PNG | |
System::SharedPtr<Aspose::Pdf::Devices::Resolution> resolution = MakeObject<Aspose::Pdf::Devices::Resolution>(300); | |
// Create an instance of the PngDevice class to render images | |
System::SharedPtr<Aspose::Pdf::Devices::PngDevice> pngDevice = MakeObject<Aspose::Pdf::Devices::PngDevice>(500, 700, resolution); | |
// Save the page as PNG image output | |
pngDevice->Process(page, imageStream); | |
// Close the stream | |
imageStream->Close(); | |
} | |
} | |
}; |
Στο προηγούμενο θέμα, μάθαμε το πώς να διαβάσετε το αρχείο PDF σε C++. Ενώ, σε αυτό το άρθρο συζητήσαμε πώς χρησιμοποιώντας το C++ δημιουργείτε PNG από αρχείο PUB.