Convertir PUB a Imagen usando C++

Los archivos de Microsoft Publisher (PUB) se utilizan para imprimir o publicar información. Puede haber escenarios en los que necesite compartir estos archivos y la parte receptora no tenga acceso a Microsoft Publisher. En tales casos, convertir estos archivos en imágenes antes de compartirlos puede resultar útil. Con ese fin, este artículo le enseñará cómo convertir archivos PUB a varios formatos de imagen usando C++.

API de C++ para convertir archivos PUB a formato de imagen

Usaremos las API Aspose.PUB for C++ y Aspose.PDF for C++ para realizar esta conversión. La primera es una biblioteca para trabajar con archivos de Microsoft Publisher (PUB), mientras que la segunda es la biblioteca para crear, leer y modificar archivos PDF. Usaremos la API Aspose.PUB for C++ para convertir archivos PUB a formato PDF y la API Aspose.PDF for C++ para convertir los archivos PDF generados a formato de imagen. Puede instalar las API a través de NuGet o descargarlas directamente desde la sección Descargas.

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

Convierta archivos PUB a imágenes JPG usando C++

Los siguientes son los pasos para convertir archivos PUB a imágenes JPG.

El siguiente código de muestra muestra cómo convertir archivos PUB a imágenes JPG usando C++.

// Rutas de archivo PUB de origen y PDF de salida
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Cargue el archivo PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Convierte el archivo PUB a PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Cargue el archivo PDF generado
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterar a través de las páginas PDF
for (auto page : pdfDocument->get_Pages())
{
	// Obtener dimensiones de la página PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Crea una instancia de la clase Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Cree un dispositivo JPEG con el ancho, alto y resolución especificados
	auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);

	// Cree el flujo de archivos para la imagen de salida
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));

	// Convierta la página PDF a una imagen JPG
	device->Process(page, imageStream);

	// Cierra la corriente
	imageStream->Close();
}

Convierta archivos PUB a imágenes PNG usando C++

Para convertir archivos PUB a imágenes PNG, siga los pasos que se indican a continuación.

El siguiente código de ejemplo muestra cómo convertir archivos PUB a imágenes PNG usando C++.

// Rutas de archivo PUB de origen y PDF de salida
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Cargue el archivo PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Convierte el archivo PUB a PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Cargue el archivo PDF generado
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Iterar a través de las páginas PDF
for (auto page : pdfDocument->get_Pages())
{
	// Obtener dimensiones de la página PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Crea una instancia de la clase Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Cree un dispositivo PNG con el ancho, alto y resolución especificados
	auto device = MakeObject<Devices::PngDevice>(width, height, resolution);

	// Cree el flujo de archivos para la imagen de salida
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));

	// Convertir la página PDF a imagen PNG
	device->Process(page, imageStream);

	// Cierra la corriente
	imageStream->Close();
}

Conversión de archivos PUB a imágenes TIFF usando C++

Los siguientes son los pasos para convertir archivos PUB a imágenes TIFF.

El siguiente código de ejemplo demuestra cómo convertir archivos PUB a imágenes TIFF usando C++.

// Rutas de archivo PUB de origen y PDF de salida
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Cargue el archivo PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Convierte el archivo PUB a PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Cargue el archivo PDF generado
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Obtener dimensiones de la primera página PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);

// Crea una instancia de la clase Resolution
auto resolution = MakeObject<Devices::Resolution>(300);

// Cree una instancia de la clase TiffSettings y establezca la configuración requerida
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);

// Cree un dispositivo TIFF con el Ancho, Alto, Resolución y TiffSettings especificados
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);

// Cree el flujo de archivos para la imagen de salida
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");

// Convierta el archivo PDF a una imagen TIFF
device->Process(pdfDocument, 1, 1, imageStream);

// Cierra la corriente
imageStream->Close();

Obtenga una licencia gratis

Puede probar la API sin limitaciones de evaluación solicitando una licencia temporal gratuita.

Conclusión

En este artículo, ha aprendido cómo convertir archivos de Microsoft Publisher (PUB) a imágenes JPG, PNG y TIFF usando C++. Usamos las API Aspose.PUB for C++ y Aspose.PDF for C++ para lograr esto. Puede explorar estas API en detalle visitando su documentación oficial. Si tiene alguna pregunta, no dude en comunicarse con nosotros en nuestro foro de soporte gratuito.

Ver también