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
- Convierta archivos PUB a imágenes JPG usando C++
- Convierta archivos PUB a imágenes PNG usando C++
- Conversión de archivos PUB a imágenes TIFF 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.
- Cargue el archivo PUB usando el método PubFactory::CreateParser(System::String fileName).
- Convierta el archivo PUB a formato PDF usando ConvertToPdf(System::SharedPtr doc, System::String fileName) método.
- Cargue el archivo PDF generado usando la clase Document.
- Recorra las páginas del archivo PDF.
- Obtenga las dimensiones de la página PDF.
- Cree una instancia de la clase Resolución.
- Cree una instancia de la clase JpegDevice proporcionando el ancho, el alto y la resolución.
- Cree una instancia de FileStream para la imagen de salida.
- Convierta la página PDF a una imagen JPG usando JpegDevice->Process(System::SharedPtr página, System::SharedPtr< System::IO::Stream > output) método.
- Cierra la corriente.
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.
- Cargue el archivo PUB usando el método PubFactory::CreateParser(System::String fileName).
- Convierta el archivo PUB a formato PDF usando ConvertToPdf(System::SharedPtr doc, System::String fileName) método.
- Cargue el archivo PDF generado usando la clase Document.
- Recorra las páginas del archivo PDF.
- Obtenga las dimensiones de la página PDF.
- Cree una instancia de la clase Resolución.
- Cree una instancia de la clase PngDevice proporcionando el ancho, el alto y la resolución.
- Cree una instancia de FileStream para la imagen de salida.
- Convierta la página PDF a una imagen PNG usando PngDevice->Process(System::SharedPtr página, System::PtrCompartidoSystem::IO::Stream salida) método.
- Cierra la corriente.
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.
- Cargue el archivo PUB usando el método PubFactory::CreateParser(System::String fileName).
- Convierta el archivo PUB a formato PDF usando ConvertToPdf(System::SharedPtr doc, System::String fileName) método.
- Cargue el archivo PDF generado utilizando la clase Document.
- Obtenga las dimensiones de la primera página PDF.
- Cree una instancia de la clase Resolución.
- Cree una instancia de la clase TiffSettings y establezca la configuración necesaria.
- Cree una instancia de la clase TiffDevice proporcionando el ancho, la altura, la resolución y TiffSettings.
- Cree una instancia de FileStream para la imagen de salida.
- Convierta el archivo PDF a una imagen TIFF usando TiffDevice->Process( System::SharedPtrAspose::Pdf::Document documento, int32t fromPage, int32t toPage, System::SharedPtrSystem::IO::Stream salida) método.
- Cierra la corriente.
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.