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
- Converti file PUB in immagini JPG usando C++
- Converti file PUB in immagini PNG usando C++
- Conversione di file PUB in immagini TIFF utilizzando 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.
- Carica il file PUB utilizzando il metodo PubFactory::CreateParser(System::String fileName).
- Converti il file PUB in formato PDF utilizzando ConvertToPdf(System::SharedPtr doc, System::String nomefile).
- Carica il file PDF generato utilizzando la classe Document.
- Scorri le pagine del file PDF.
- Ottieni le dimensioni della pagina PDF.
- Crea un’istanza della classe Resolution.
- Crea un’istanza della classe JpegDevice fornendo la larghezza, l’altezza e la risoluzione.
- Crea un’istanza di FileStream per l’immagine di output.
- Converti la pagina PDF in un’immagine JPG usando JpegDevice->Process(System::SharedPtr pagina, metodo System::SharedPtr< System::IO::Stream > output).
- Chiudi il flusso.
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.
- Caricare il file PUB utilizzando il metodo PubFactory::CreateParser(System::String fileName).
- Converti il file PUB in formato PDF utilizzando ConvertToPdf(System::SharedPtr doc, System::String nomefile).
- Carica il file PDF generato utilizzando la classe Document.
- Scorri le pagine del file PDF.
- Ottieni le dimensioni della pagina PDF.
- Crea un’istanza della classe Resolution.
- Crea un’istanza della classe PngDevice fornendo la larghezza, l’altezza e la risoluzione.
- Crea un’istanza di FileStream per l’immagine di output.
- Converti la pagina PDF in un’immagine PNG usando PngDevice->Process(System::SharedPtr pagina, System::SharedPtrSystem::IO::Stream output).
- Chiudi il flusso.
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.
- Caricare il file PUB utilizzando il metodo PubFactory::CreateParser(System::String fileName).
- Converti il file PUB in formato PDF utilizzando ConvertToPdf(System::SharedPtr doc, System::String nomefile).
- Carica il file PDF generato utilizzando la classe Document.
- Ottieni le dimensioni della prima pagina PDF.
- Crea un’istanza della classe Resolution.
- Crea un’istanza della classe TiffSettings e imposta le impostazioni richieste.
- Istanziare la classe TiffDevice fornendo la larghezza, l’altezza, la risoluzione e TiffSettings.
- Crea un’istanza di FileStream per l’immagine di output.
- Converti il file PDF in un’immagine TIFF utilizzando TiffDevice->Process( System::SharedPtrAspose::Pdf::Document documento, int32t daPagina, int32t aPagina, System::SharedPtrSystem::IO::Stream output).
- Chiudi il flusso.
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.