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
- Converter arquivos PUB em imagens JPG usando C++
- Converter arquivos PUB em imagens PNG usando C++
- Convertendo arquivos PUB em imagens TIFF 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.
- Carregue o arquivo PUB usando o método PubFactory::CreateParser(System::String fileName).
- Converta o arquivo PUB para o formato PDF usando o ConvertToPdf(System::SharedPtr doc, System::String fileName) método.
- Carregue o arquivo PDF gerado usando a classe Document.
- Percorra as páginas do arquivo PDF.
- Obtenha as dimensões da página PDF.
- Crie uma instância da classe Resolution.
- Instancie a classe JpegDevice fornecendo a largura, a altura e a resolução.
- Crie uma instância do FileStream para a imagem de saída.
- Converta a página PDF para imagem JPG usando o JpegDevice->Process(System::SharedPtr page, System::SharedPtr< System::IO::Stream > output).
- Feche o fluxo.
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.
- Carregue o arquivo PUB usando o método PubFactory::CreateParser(System::String fileName).
- Converta o arquivo PUB para o formato PDF usando o ConvertToPdf(System::SharedPtr doc, System::String fileName).
- Carregue o arquivo PDF gerado usando a classe Document.
- Percorra as páginas do arquivo PDF.
- Obtenha as dimensões da página PDF.
- Crie uma instância da classe Resolution.
- Instancie a classe PngDevice fornecendo a largura, a altura e a resolução.
- Crie uma instância do FileStream para a imagem de saída.
- Converta a página PDF para imagem PNG usando o PngDevice->Process(System::SharedPtr página, System::SharedPtrSystem::IO::Stream output) método.
- Feche o fluxo.
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.
- Carregue o arquivo PUB usando o método PubFactory::CreateParser(System::String fileName).
- Converta o arquivo PUB para o formato PDF usando o ConvertToPdf(System::SharedPtr doc, System::String fileName) método.
- Carregue o arquivo PDF gerado usando a classe Document.
- Obtenha as dimensões da primeira página do PDF.
- Crie uma instância da classe Resolution.
- Crie uma instância da classe TiffSettings e defina as configurações necessárias.
- Instancie a classe TiffDevice fornecendo a largura, altura, resolução e TiffSettings.
- Crie uma instância de FileStream para a imagem de saída.
- Converta o arquivo PDF para imagem TIFF usando o TiffDevice->Process( System::SharedPtrAspose::Pdf::Document document, int32t fromPage, int32t toPage, System::SharedPtrSystem::IO::Stream saída) método.
- Feche o fluxo.
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.