Les fichiers Microsoft Publisher (PUB) sont utilisés pour imprimer ou publier des informations. Il peut arriver que vous ayez besoin de partager ces fichiers et que le destinataire n’ait pas accès à Microsoft Publisher. Dans de tels cas, la conversion de ces fichiers en images avant le partage peut s’avérer utile. À cette fin, cet article vous apprendra comment convertir des fichiers PUB en différents formats d’image à l’aide de C++.
- API C++ pour la conversion de fichiers PUB au format d’image
- Convertir des fichiers PUB en images JPG en utilisant C++
- Convertir des fichiers PUB en images PNG à l’aide de C++
- Conversion de fichiers PUB en images TIFF à l’aide de C++
API C++ pour la conversion de fichiers PUB au format d’image
Nous utiliserons les API Aspose.PUB for C++ et Aspose.PDF for C++ pour effectuer cette conversion. Le premier est une bibliothèque pour travailler avec des fichiers Microsoft Publisher (PUB), tandis que le second est la bibliothèque pour créer, lire et modifier des fichiers PDF. Nous utiliserons l’API Aspose.PUB for C++ pour convertir les fichiers PUB au format PDF et l’API Aspose.PDF for C++ pour convertir les fichiers PDF générés au format image. Vous pouvez soit installer les API via NuGet, soit les télécharger directement à partir de la section Téléchargements.
PM> Install-Package Aspose.PUB.Cpp
PM> Install-Package Aspose.PDF.Cpp
Convertir des fichiers PUB en images JPG en utilisant C++
Voici les étapes pour convertir les fichiers PUB en images JPG.
- Chargez le fichier PUB à l’aide de la méthode PubFactory::CreateParser(System::String fileName).
- Convertissez le fichier PUB au format PDF à l’aide de ConvertToPdf(System::SharedPtr doc, System::String fileName) méthode.
- Chargez le fichier PDF généré à l’aide de la classe Document.
- Parcourez les pages du fichier PDF.
- Obtenez les dimensions de la page PDF.
- Créez une instance de la classe Resolution.
- Instanciez la classe JpegDevice en fournissant la largeur, la hauteur et la résolution.
- Créez une instance de FileStream pour l’image de sortie.
- Convertissez la page PDF en image JPG en utilisant JpegDevice->Process(System::SharedPtr page, System::SharedPtr< System::IO::Stream > sortie) méthode.
- Fermez le flux.
L’exemple de code suivant montre comment convertir des fichiers PUB en images JPG à l’aide de C++.
// Chemins des fichiers PUB source et PDF de sortie
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Charger le fichier PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Convertir le fichier PUB en PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Charger le fichier PDF généré
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Parcourir les pages PDF
for (auto page : pdfDocument->get_Pages())
{
// Obtenir les dimensions de la page PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Créer une instance de la classe Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Créer un périphérique JPEG avec la largeur, la hauteur et la résolution spécifiées
auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);
// Créer le flux de fichiers pour l'image de sortie
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));
// Convertir la page PDF en image JPG
device->Process(page, imageStream);
// Fermer le flux
imageStream->Close();
}
Convertir des fichiers PUB en images PNG à l’aide de C++
Pour convertir des fichiers PUB en images PNG, suivez les étapes ci-dessous.
- Chargez le fichier PUB à l’aide de la méthode PubFactory::CreateParser(System::String fileName).
- Convertissez le fichier PUB au format PDF à l’aide de ConvertToPdf(System::SharedPtr doc, System::String fileName) méthode.
- Chargez le fichier PDF généré à l’aide de la classe Document.
- Parcourez les pages du fichier PDF.
- Obtenez les dimensions de la page PDF.
- Créez une instance de la classe Resolution.
- Instanciez la classe PngDevice en fournissant la largeur, la hauteur et la résolution.
- Créez une instance de FileStream pour l’image de sortie.
- Convertissez la page PDF en image PNG en utilisant PngDevice->Process(System::SharedPtr page, System::SharedPtrSystem::IO::Stream sortie) méthode.
- Fermez le flux.
L’exemple de code suivant montre comment convertir des fichiers PUB en images PNG à l’aide de C++.
// Chemins des fichiers PUB source et PDF de sortie
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Charger le fichier PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Convertir le fichier PUB en PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Charger le fichier PDF généré
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Parcourir les pages PDF
for (auto page : pdfDocument->get_Pages())
{
// Obtenir les dimensions de la page PDF
int width = info->GetPageWidth(page->get_Number());
int height = info->GetPageHeight(page->get_Number());
// Créer une instance de la classe Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Créer un périphérique PNG avec la largeur, la hauteur et la résolution spécifiées
auto device = MakeObject<Devices::PngDevice>(width, height, resolution);
// Créer le flux de fichiers pour l'image de sortie
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));
// Convertir la page PDF en image PNG
device->Process(page, imageStream);
// Fermer le flux
imageStream->Close();
}
Conversion de fichiers PUB en images TIFF à l’aide de C++
Voici les étapes pour convertir des fichiers PUB en images TIFF.
- Chargez le fichier PUB à l’aide de la méthode PubFactory::CreateParser(System::String fileName).
- Convertissez le fichier PUB au format PDF à l’aide de ConvertToPdf(System::SharedPtr doc, méthode System::String fileName).
- Chargez le fichier PDF généré à l’aide de la classe Document.
- Obtenez les dimensions de la première page PDF.
- Créez une instance de la classe Resolution.
- Créez une instance de la classe TiffSettings et définissez les paramètres requis.
- Instanciez la classe TiffDevice en fournissant la largeur, la hauteur, la résolution et TiffSettings.
- Créez une instance de FileStream pour l’image de sortie.
- Convertissez le fichier PDF en image TIFF à l’aide de TiffDevice->Process( System::SharedPtrAspose::Pdf::Document document, int32t dePage, int32t versPage, System::SharedPtrSystem::IO::Stream sortie) méthode.
- Fermez le flux.
L’exemple de code suivant montre comment convertir des fichiers PUB en images TIFF à l’aide de C++.
// Chemins des fichiers PUB source et PDF de sortie
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";
// Charger le fichier PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();
// Convertir le fichier PUB en PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);
// Charger le fichier PDF généré
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);
// Obtenir les dimensions de la première page PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);
// Créer une instance de la classe Resolution
auto resolution = MakeObject<Devices::Resolution>(300);
// Créez une instance de la classe TiffSettings et définissez les paramètres requis
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);
// Créer un périphérique TIFF avec la largeur, la hauteur, la résolution et les paramètres Tiff spécifiés
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);
// Créer le flux de fichiers pour l'image de sortie
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");
// Convertir le fichier PDF en image TIFF
device->Process(pdfDocument, 1, 1, imageStream);
// Fermer le flux
imageStream->Close();
Obtenez une licence gratuite
Vous pouvez essayer l’API sans limitation d’évaluation en demandant une licence temporaire gratuite.
Conclusion
Dans cet article, vous avez appris à convertir des fichiers Microsoft Publisher (PUB) en images JPG, PNG et TIFF à l’aide de C++. Nous avons utilisé les API Aspose.PUB for C++ et Aspose.PDF for C++ pour y parvenir. Vous pouvez explorer ces API en détail en visitant leur documentation officielle. En cas de questions, n’hésitez pas à nous contacter sur notre forum d’assistance gratuit.