У цьому посібнику ми зрозуміємо, як перетворити 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.