Convertir PUB en image en utilisant C++

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

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.

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.

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.

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.

Voir également