Cách chuyển đổi PUB sang PNG bằng C++

Trong hướng dẫn này, chúng ta sẽ hiểu cách chuyển đổi PUB) sang PNG bằng C++. Bạn sẽ nhận thấy rằng quá trình chuyển đổi diễn ra theo hai bước. Đầu tiên, tệp PUB được chuyển đổi thành tệp PDF và sau đó tệp PDF trung gian được hiển thị ở định dạng PNG bằng C++ với các lệnh gọi API đơn giản.

Các bước chuyển đổi PUB sang PNG bằng C++

  1. Cài đặt Aspose.PUB for C++Aspose.PDF for C++ từ Công cụ quản lý gói NuGet
  2. Thêm tham chiếu vào không gian tên Aspose::PubAspose::Pdf
  3. Tải tệp PUB đầu vào với phiên bản lớp Document
  4. Tạo tệp PDF trung gian bằng phương thức ConvertToPdf
  5. Lặp lại từng trang và tạo hình ảnh PNG đầu ra

Bạn có thể xuất PUB sang PNG một cách hiệu quả bằng C++ bằng các lệnh gọi API đơn giản trong một vài dòng mã. Bạn chỉ cần chỉ định đường dẫn tệp và thực hiện lệnh gọi phương thức, sau đó API sẽ tự xem xét tất cả các chi tiết nhỏ của quá trình chuyển đổi. Sau khi xử lý, hình ảnh PNG đầu ra được lưu theo yêu cầu của bạn.

Mã để chuyển đổi PUB sang PNG bằng 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();
}
}
};

Trong chủ đề trước, chúng ta đã học cách đọc file PDF trong C++. Trong khi đó, trong bài viết này, chúng tôi đã thảo luận về cách sử dụng C++ tạo PNG từ tệp PUB.

 Tiếng Việt