Converter PUB em imagem usando C++

Os arquivos do Microsoft Publisher (PUB) são usados para imprimir ou publicar informações. Pode haver cenários em que você precise compartilhar esses arquivos e a parte receptora não tenha acesso ao Microsoft Publisher. Nesses casos, converter esses arquivos em imagens antes de compartilhar pode ser útil. Para isso, este artigo ensinará como converter arquivos PUB para vários formatos de imagem usando C++.

APIs C++ para converter arquivos PUB em formato de imagem

Usaremos as APIs Aspose.PUB para C++ e Aspose.PDF para C++ para realizar essa conversão. A primeira é uma biblioteca para trabalhar com arquivos do Microsoft Publisher (PUB), enquanto a segunda é a biblioteca para criar, ler e modificar arquivos PDF. Usaremos a API Aspose.PUB para C++ para converter arquivos PUB para o formato PDF e Aspose.PDF para API C++ para converter os arquivos PDF gerados para o formato de imagem. Você pode instalar as APIs por meio do NuGet ou baixá-las diretamente da seção Downloads.

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

Converter arquivos PUB em imagens JPG usando C++

A seguir estão as etapas para converter arquivos PUB em imagens JPG.

O código de exemplo a seguir mostra como converter arquivos PUB em imagens JPG usando C++.

// PUB de origem e caminhos de arquivo PDF de saída
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Carregar o arquivo PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Converter o arquivo PUB para PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Carregue o arquivo PDF gerado
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterar pelas páginas do PDF
for (auto page : pdfDocument->get_Pages())
{
	// Obter dimensões da página PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Crie uma instância da classe Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Crie um dispositivo JPEG com a largura, altura e resolução especificadas
	auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);

	// Crie o fluxo de arquivos para a imagem de saída
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));

	// Converter a página PDF para imagem JPG
	device->Process(page, imageStream);

	// Fechar o fluxo
	imageStream->Close();
}

Converter arquivos PUB em imagens PNG usando C++

Para converter arquivos PUB em imagens PNG, siga as etapas abaixo.

O código de exemplo a seguir mostra como converter arquivos PUB em imagens PNG usando C++.

// PUB de origem e caminhos de arquivo PDF de saída
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Carregar o arquivo PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Converter o arquivo PUB para PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Carregue o arquivo PDF gerado
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterar pelas páginas do PDF
for (auto page : pdfDocument->get_Pages())
{
	// Obter dimensões da página PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Crie uma instância da classe Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Crie um dispositivo PNG com a largura, altura e resolução especificadas
	auto device = MakeObject<Devices::PngDevice>(width, height, resolution);

	// Crie o fluxo de arquivos para a imagem de saída
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));

	// Converter a página PDF em imagem PNG
	device->Process(page, imageStream);

	// Fechar o fluxo
	imageStream->Close();
}

Convertendo arquivos PUB em imagens TIFF usando C++

A seguir estão as etapas para converter arquivos PUB em imagens TIFF.

O código de exemplo a seguir demonstra como converter arquivos PUB em imagens TIFF usando C++.

// PUB de origem e caminhos de arquivo PDF de saída
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Carregar o arquivo PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Converter o arquivo PUB para PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Carregue o arquivo PDF gerado
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Obtenha as dimensões da primeira página do PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);

// Crie uma instância da classe Resolution
auto resolution = MakeObject<Devices::Resolution>(300);

// Crie uma instância da classe TiffSettings e defina as configurações necessárias
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);

// Crie um dispositivo TIFF com as configurações de largura, altura, resolução e Tiff especificadas
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);

// Crie o fluxo de arquivos para a imagem de saída
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");

// Converter o arquivo PDF para imagem TIFF
device->Process(pdfDocument, 1, 1, imageStream);

// Fechar o fluxo
imageStream->Close();

Obtenha uma licença gratuita

Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como converter arquivos do Microsoft Publisher (PUB) em imagens JPG, PNG e TIFF usando C++. Usamos as APIs Aspose.PUB para C++ e Aspose.PDF para C++ para conseguir isso. Você pode explorar essas APIs em detalhes visitando sua documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.

Veja também