Le immagini possono essere utilizzate per mostrare una varietà di cose che vanno dalle fotografie dei prodotti ai flussi di lavoro e ai diagrammi di flusso. I file PDF possono contenere immagini in base al tipo di informazioni in loro possesso. Ad esempio, una guida all’installazione della sedia includerà immagini della sedia che dimostrano come assemblarla. Potrebbero esserci scenari in cui è necessario manipolare le immagini nei file PDF a livello di codice. In questi casi, questo articolo ti insegnerà come lavorare con le immagini nei file PDF usando C++.
- API C++ per lavorare con le immagini nei file PDF
- Aggiungi un’immagine a un file PDF utilizzando C++
- Estrai immagini da un file PDF utilizzando C++
- Rimuovere un’immagine da un file PDF utilizzando C++
- Sostituisci un’immagine in un file PDF usando C++
API C++ per lavorare con le immagini nei file PDF
Aspose.PDF for C++ è una solida libreria C++ che consente di creare, leggere e modificare file PDF. Inoltre, l’API supporta il lavoro con le immagini nei documenti PDF. Puoi installare l’API tramite NuGet o scaricarla direttamente dalla sezione download.
PM> Install-Package Aspose.PDF.Cpp
Aggiungi un’immagine a un file PDF utilizzando C++
Di seguito sono riportati i passaggi per aggiungere un’immagine a un file PDF.
- Carica il file PDF utilizzando la classe Document.
- Recupera la pagina in cui desideri aggiungere l’immagine utilizzando il metodo Document->getPages()->idxget(int32t index).
- Crea un’istanza della classe Rectangle.
- Aggiungi l’immagine alla pagina utilizzando Page->AddImage(System::String imagePath, System::SharedPtrAspose::Pdf::Rectangle rettangolo).
- Salvare il file PDF utilizzando il metodo Document->Save(System::String outputFileName).
Il codice di esempio seguente mostra come aggiungere un’immagine a un file PDF usando C++.
// Carica il file PDF
auto pdfDocument = MakeObject<Document>(u"SourceDirectory\\PDF\\Sample 1.pdf");
// Recupera la prima pagina
auto page = pdfDocument->get_Pages()->idx_get(1);
// Crea un'istanza della classe Rectangle
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rectangle = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);
// Aggiungi un'immagine alla pagina
page->AddImage(u"SourceDirectory\\Images\\AsposeLogo.png", rectangle);
// Salva il file PDF
pdfDocument->Save(u"OutputDirectory\\add_image_output.pdf");
Estrai immagini da un file PDF utilizzando C++
Per estrarre immagini da un file PDF, segui i passaggi indicati di seguito.
- Carica il file PDF utilizzando la classe Document.
- Estrarre l’immagine utilizzando il metodo Document->getPages()->idxget(int32t index)->getResources()->getImages()->idxget(int32t index).
- Crea un’istanza della classe FileStream per salvare l’immagine di output.
- Salvare l’immagine utilizzando XImage->Save(System::SharedPtrSystem::IO::Stream flusso, System::SharedPtrSystem::Drawing::Imaging::ImageFormat formato).
- Chiudi il flusso.
Il codice di esempio seguente mostra come estrarre un’immagine da un file PDF usando C++.
// Carica il file PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Estrarre un'immagine particolare
auto image = pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->idx_get(1);
// Crea un oggetto flusso per salvare l'immagine di output
System::SharedPtr<System::IO::FileStream> outputImage = System::IO::File::Create(u"OutputDirectory\\extract_image_output.jpg");
// Salva l'immagine di output
image->Save(outputImage, System::Drawing::Imaging::ImageFormat::get_Jpeg());
// Chiudi il flusso
outputImage->Close();
Rimuovere un’immagine da un file PDF utilizzando C++
Di seguito sono riportati i passaggi per rimuovere un’immagine da un file PDF utilizzando C++.
- Carica il file PDF utilizzando la classe Document.
- Elimina un’immagine particolare usando il metodo Document->getPages()->idxget(int32t index)->getResources()->getImages()->Delete(int32t index).
- Salvare il file PDF utilizzando il metodo Document->Save(System::String outputFileName).
Il codice di esempio seguente mostra come eliminare un’immagine particolare da un file PDF usando C++.
// Carica il file PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Elimina un'immagine particolare
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Delete(1);
// Salva il file PDF
pdfDocument->Save(u"OutputDirectory\\delete_image_output.pdf");
Sostituisci un’immagine in un file PDF usando C++
Per sostituire un’immagine esistente in un file PDF, segui i passaggi indicati di seguito.
- Carica il file PDF utilizzando la classe Document.
- Apri la nuova immagine usando la classe FileStream.
- Sostituisci la vecchia immagine usando Document->getPages()->idxget(int32t index)->getResources()->getImages()->Replace(int32t index, System::SharedPtrSystem::IO::Stream flusso).
- Chiudi il flusso.
- Salvare il file PDF utilizzando il metodo Document->Save(System::String outputFileName).
Il codice seguente mostra come sostituire un’immagine in un file PDF usando C++.
// Carica il file PDF
auto pdfDocument = MakeObject<Document>(u"OutputDirectory\\add_image_output.pdf");
// Apri la nuova immagine con FileStream
System::SharedPtr<System::IO::FileStream> newImage = System::IO::File::OpenRead(u"SourceDirectory\\Images\\aspose.png");
// Sostituisci la vecchia immagine
pdfDocument->get_Pages()->idx_get(1)->get_Resources()->get_Images()->Replace(1, newImage);
// Chiudi il flusso
newImage->Close();
// Salva il file PDF
pdfDocument->Save(u"OutputDirectory\\replace_image_output.pdf");
Ottieni una licenza gratuita
Puoi provare l’API senza limitazioni di valutazione richiedendo una licenza temporanea gratuita.
Conclusione
In questo articolo hai imparato a lavorare con le immagini nei file PDF usando C++. In particolare, hai imparato come aggiungere, estrarre, sostituire e rimuovere immagini dai file PDF utilizzando Aspose.PDF per l’API C++. L’API fornisce una serie di funzionalità aggiuntive per lavorare con i file PDF che puoi esplorare in dettaglio visitando la documentazione ufficiale. In caso di domande, non esitare a contattarci nel nostro forum di supporto gratuito.