Преобразование PUB в изображение с помощью C++

Файлы Microsoft Publisher (PUB) используются для печати или публикации информации. Могут быть сценарии, когда вам нужно поделиться этими файлами, а принимающая сторона не имеет доступа к Microsoft Publisher. В таких случаях преобразование этих файлов в изображения перед отправкой может оказаться полезным. С этой целью эта статья научит вас конвертировать файлы PUB в различные форматы изображений с помощью C++.

API-интерфейсы C++ для преобразования файлов PUB в формат изображения

Мы будем использовать API Aspose.PUB для C++ и Aspose.PDF для C++ для выполнения этого преобразования. Первая — это библиотека для работы с файлами Microsoft Publisher (PUB), а вторая — библиотека для создания, чтения и изменения файлов PDF. Мы будем использовать Aspose.PUB для API C++ для преобразования файлов PUB в формат PDF и Aspose.PDF для API 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 с указанными параметрами ширины, высоты, разрешения и 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++. Для этого мы использовали Aspose.PUB для C++ и Aspose.PDF для C++ API. Вы можете подробно изучить эти API, посетив их официальную документацию. Если у вас возникнут вопросы, обращайтесь к нам на бесплатный форум поддержки.

Смотрите также