Converti PUB in immagine usando C++

I file di Microsoft Publisher (PUB) vengono utilizzati per la stampa o la pubblicazione di informazioni. Potrebbero verificarsi scenari in cui è necessario condividere questi file e la parte ricevente non ha accesso a Microsoft Publisher. In questi casi, la conversione di questi file in immagini prima della condivisione può rivelarsi utile. A tal fine, questo articolo ti insegnerà come convertire i file PUB in vari formati di immagine usando C++.

API C++ per la conversione di file PUB in formato immagine

Utilizzeremo le API Aspose.PUB per C++ e Aspose.PDF per C++ per eseguire questa conversione. La prima è una libreria per lavorare con i file di Microsoft Publisher (PUB), mentre la seconda è la libreria per creare, leggere e modificare file PDF. Utilizzeremo l’API Aspose.PUB per C++ per convertire i file PUB in formato PDF e l’API Aspose.PDF per C++ per convertire i file PDF generati in formato immagine. Puoi installare le API tramite NuGet o scaricarle direttamente dalla sezione Download.

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

Converti file PUB in immagini JPG usando C++

Di seguito sono riportati i passaggi per convertire i file PUB in immagini JPG.

Il codice di esempio seguente mostra come convertire i file PUB in immagini JPG usando C++.

// PUB di origine e percorsi dei file PDF di output
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Carica il file PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Converti il file PUB in PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Carica il file PDF generato
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Scorri le pagine PDF
for (auto page : pdfDocument->get_Pages())
{
	// Ottieni le dimensioni della pagina PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Crea un'istanza della classe Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Crea un dispositivo JPEG con la larghezza, l'altezza e la risoluzione specificate
	auto device = MakeObject<Devices::JpegDevice>(width, height, resolution);

	// Crea il flusso di file per l'immagine di output
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.jpg", page->get_Number()));

	// Converti la pagina PDF in un'immagine JPG
	device->Process(page, imageStream);

	// Chiudi il flusso
	imageStream->Close();
}

Converti file PUB in immagini PNG usando C++

Per convertire i file PUB in immagini PNG, segui i passaggi indicati di seguito.

Il codice di esempio seguente mostra come convertire i file PUB in immagini PNG usando C++.

// PUB di origine e percorsi dei file PDF di output
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Carica il file PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Converti il file PUB in PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Carica il file PDF generato
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Scorri le pagine PDF
for (auto page : pdfDocument->get_Pages())
{
	// Ottieni le dimensioni della pagina PDF
	int width = info->GetPageWidth(page->get_Number());
	int height = info->GetPageHeight(page->get_Number());

	// Crea un'istanza della classe Resolution
	auto resolution = MakeObject<Devices::Resolution>(300);

	// Crea un dispositivo PNG con la larghezza, l'altezza e la risoluzione specificate
	auto device = MakeObject<Devices::PngDevice>(width, height, resolution);

	// Crea il flusso di file per l'immagine di output
	System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(String::Format(u"OutputDirectory\\page_{0}.png", page->get_Number()));

	// Converti la pagina PDF in un'immagine PNG
	device->Process(page, imageStream);

	// Chiudi il flusso
	imageStream->Close();
}

Conversione di file PUB in immagini TIFF utilizzando C++

Di seguito sono riportati i passaggi per convertire i file PUB in immagini TIFF.

Il codice di esempio seguente illustra come convertire i file PUB in immagini TIFF usando C++.

// PUB di origine e percorsi dei file PDF di output
System::String filePub = u"SourceDirectory\\1.pub";
System::String filePdf = u"OutputDirectory\\1.pdf";

// Carica il file PUB
System::SharedPtr<IPubParser> parser = PubFactory::CreateParser(filePub);
System::SharedPtr<Aspose::Pub::Document> document = parser->Parse();

// Converti il file PUB in PDF
PubFactory::CreatePdfConverter()->ConvertToPdf(document, filePdf);

// Carica il file PDF generato
auto pdfDocument = MakeObject<Aspose::Pdf::Document>(filePdf);
auto info = MakeObject<Facades::PdfFileInfo>(pdfDocument);

// Ottieni le dimensioni della prima pagina PDF
int width = info->GetPageWidth(1);
int height = info->GetPageHeight(1);

// Crea un'istanza della classe Resolution
auto resolution = MakeObject<Devices::Resolution>(300);

// Crea un'istanza della classe TiffSettings e imposta le impostazioni richieste
auto settings = MakeObject<Devices::TiffSettings>();
settings->set_Compression(Devices::CompressionType::None);
settings->set_Depth(Devices::ColorDepth::Default);

// Crea un dispositivo TIFF con Larghezza, Altezza, Risoluzione e Impostazioni Tiff specificate
auto device = MakeObject<Devices::TiffDevice>(width, height, resolution, settings);

// Crea il flusso di file per l'immagine di output
System::SharedPtr<System::IO::FileStream> imageStream = System::IO::File::Create(u"OutputDirectory\\pdf.tiff");

// Converti il file PDF in un'immagine TIFF
device->Process(pdfDocument, 1, 1, imageStream);

// Chiudi il flusso
imageStream->Close();

Ottieni una licenza gratuita

Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.

Conclusione

In questo articolo, hai imparato come convertire i file di Microsoft Publisher (PUB) in immagini JPG, PNG e TIFF usando C++. Abbiamo utilizzato le API Aspose.PUB per C++ e Aspose.PDF per C++ per ottenere questo risultato. Puoi esplorare queste API in dettaglio visitando la loro documentazione ufficiale. In caso di domande, non esitare a contattarci nel nostro forum di supporto gratuito.

Guarda anche