Kaip konvertuoti PUB į PNG naudojant C++

Šiame vadove suprasime, kaip konvertuoti PUB) į PNG naudojant C++. Pastebėsite, kad konversija vyksta dviem etapais. Pirma, PUB failas konvertuojamas į PDF failą, o tada tarpinis PDF failas pateikiamas į PNG formatą naudojant C++ naudojant paprastus API iškvietimus.

Veiksmai, kaip konvertuoti PUB į PNG naudojant C++

  1. Įdiekite Aspose.PUB for C++ ir Aspose.PDF for C++ iš NuGet paketų tvarkyklės įrankio
  2. Pridėkite nuorodą į Aspose::Pub ir Aspose::Pdf vardų erdves
  3. Įkelkite įvesties PUB failą naudodami Document klasės egzempliorių
  4. Sukurkite tarpinį PDF failą naudodami ConvertToPdf metodą
  5. Pakartokite kiekvieną puslapį ir sukurkite išvesties PNG vaizdus

Galite efektyviai eksportuoti PUB į PNG naudodami C++ su paprastais API iškvietimais keliomis kodo eilutėmis. Jums tereikia nurodyti failo kelius ir atlikti metodų iškvietimus, tada API pati atsižvelgia į visas smulkesnes konversijos proceso detales. Po apdorojimo išvesties PNG vaizdai išsaugomi pagal jūsų reikalavimus.

Kodas konvertuoti PUB į PNG naudojant 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();
}
}
};

Ankstesnėje temoje sužinojome kaip skaityti PDF failą C++. Tuo tarpu šiame straipsnyje aptarėme, kaip naudojant C++ sukurti PNG iš PUB failo.

 Latviski