Перетворення PUB на зображення за допомогою C++

Файли Microsoft Publisher (PUB) використовуються для друку або публікації інформації. Можуть бути ситуації, коли вам потрібно надати спільний доступ до цих файлів, а сторона, яка отримує, не має доступу до Microsoft Publisher. У таких випадках може виявитися корисним конвертування цих файлів у зображення перед загальним доступом. З цією метою ця стаття навчить вас конвертувати файли PUB у різні формати зображень за допомогою C++.

C++ API для перетворення файлів PUB у формат зображення

Для виконання цього перетворення ми використовуватимемо API Aspose.PUB for C++ і Aspose.PDF for C++. Перший є бібліотекою для роботи з файлами Microsoft Publisher (PUB), тоді як другий є бібліотекою для створення, читання та редагування файлів PDF. Ми будемо використовувати API Aspose.PUB for C++ для перетворення файлів PUB у формат PDF і API Aspose.PDF for C++ для перетворення згенерованих файлів PDF у формат зображення. Ви можете встановити API через NuGet або завантажити їх безпосередньо з розділу Завантаження.

PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp

Перетворюйте файли PUB на зображення JPG за допомогою C++

Нижче наведено кроки для перетворення файлів PUB на зображення JPG.

У наведеному нижче прикладі коду показано, як конвертувати файли PUB у зображення JPG за допомогою C++.

// Шляхи вихідного PUB та вихідного PDF-файлу
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Завантажте файл PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Перетворіть файл PUB на PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Завантажте створений файл PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Переглядайте сторінки PDF
for (auto page : pdfDocument->get_Pages())
{
	// Отримайте розміри сторінки PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Створіть екземпляр класу Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Створіть пристрій JPEG із зазначеними шириною, висотою та роздільною здатністю
	auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);

	// Створіть файловий потік для вихідного зображення
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));

	// Перетворіть сторінку PDF на зображення JPG
	device->Process(page, imageStream);

	// Закрийте потік
	imageStream->Close();
}

Перетворюйте файли PUB на зображення PNG за допомогою C++

Щоб конвертувати файли PUB у зображення PNG, виконайте наведені нижче дії.

У наступному прикладі коду показано, як конвертувати файли PUB у зображення PNG за допомогою C++.

// Шляхи вихідного PUB та вихідного PDF-файлу
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Завантажте файл PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Перетворіть файл PUB на PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Завантажте створений файл PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Переглядайте сторінки PDF
for (auto page : pdfDocument->get_Pages())
{
	// Отримайте розміри сторінки PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Створіть екземпляр класу Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Створіть пристрій у форматі PNG із зазначеними шириною, висотою та роздільною здатністю
	auto device = MakeObject<Devices::PngDevice>(width, height, resolution);

	// Створіть файловий потік для вихідного зображення
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));

	// Перетворіть сторінку PDF на зображення PNG
	device->Process(page, imageStream);

	// Закрийте потік
	imageStream->Close();
}

Перетворення файлів PUB на зображення TIFF за допомогою C++

Нижче наведено кроки для перетворення файлів PUB на зображення TIFF.

Наведений нижче приклад коду демонструє, як конвертувати файли PUB у зображення TIFF за допомогою C++.

// Шляхи вихідного PUB та вихідного PDF-файлу
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Завантажте файл PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Перетворіть файл PUB на PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Завантажте створений файл PDF
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Отримайте розміри першої сторінки PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);

// Створіть екземпляр класу Resolution
auto resolution = MakeObject<Devices::Resolution>(300);

// Створіть екземпляр класу TiffSettings і встановіть необхідні параметри
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);

// Створіть пристрій у форматі TIFF із зазначеними параметрами Width, Height, Resolution і TiffSettings
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);

// Створіть файловий потік для вихідного зображення
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");

// Перетворіть файл PDF на зображення TIFF
device->Process(pdfDocument, 1, 1, imageStream);

// Закрийте потік
imageStream->Close();

Отримайте безкоштовну ліцензію

Ви можете спробувати API без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.

Висновок

У цій статті ви дізналися, як конвертувати файли Microsoft Publisher (PUB) у зображення JPG, PNG і TIFF за допомогою C++. Для цього ми використали API Aspose.PUB for C++ і Aspose.PDF for C++. Ви можете детально вивчити ці API, відвідавши їхню офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.

Дивись також