Con la potenza di Internet, tutto è diventato digitale e i sistemi paperless sono diventati popolari. I documenti digitali, ad esempio PDF, sono tra gli elementi costitutivi dei sistemi paperless che hanno semplificato la vita fornendo funzionalità di generazione ed elaborazione automatizzate. La maggior parte delle aziende utilizza l’automazione dei documenti PDF per generare rapporti, ricevute, fatture e altri documenti aziendali in modo dinamico. Pertanto, in questo articolo, dimostrerò come integrare le funzionalità dell’automazione PDF in applicazioni basate su C++ e generare file PDF utilizzando C++.

Libreria PDF C++

Per creare file PDF, utilizzeremo l’API Aspose.PDF for C++ che è una libreria C++ nativa per lavorare con i documenti PDF a livello di codice. Ti consente di creare documenti PDF interattivi con il supporto di una varietà di elementi PDF. Aspose.PDF per C++ è disponibile su NuGet e nella sezione Download di Aspose.

Crea un file PDF in C++

Per prima cosa creeremo un semplice file PDF e aggiungeremo del testo alla prima pagina sotto forma di paragrafo. Di seguito sono riportati i passaggi da seguire:

  • Crea un oggetto Documento.
  • Aggiungi una pagina a PageCollection del documento.
  • Ottieni il paragrafo della pagina.
  • Crea un oggetto TextFragment e aggiungilo al paragrafo.
  • Salva il documento PDF.

L’esempio di codice seguente mostra come creare un documento PDF in C++.

// Crea documento
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// La numerazione delle pagine inizia da 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();	
// Crea frammento di testo
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Imposta lo stato del testo
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// Aggiungi al paragrafo
paragraps->Add(text);
// Aggiungi testo al paragrafo
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// Salva file PDF
doc->Save(u"Example1.pdf");

Produzione

Crea file PDF in C++

Crea un file PDF usando TextBuilder in C++

In questa sezione, ti mostrerò come usare la classe TextBuilder per aggiungere vari frammenti di testo e paragrafi alla pagina. Inoltre, in questo esempio, imparerai come impostare la posizione del frammento di testo nella pagina. Di seguito sono riportati i passaggi per eseguire questa operazione:

  • Crea un oggetto Documento.
  • Aggiungi una pagina al documento.
  • Crea un oggetto TextBuilder.
  • Crea un TextFragment e aggiungi il suo testo.
  • Imposta la posizione del TextFragment.
  • Aggiungi TextFragment usando TextBuilder.
  • Salva documento PDF.

L’esempio di codice seguente mostra come creare un PDF usando TextBuilder in C++.

// Crea oggetto documento
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Crea TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// Crea un frammento di testo
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// Aggiungi frammento di testo
tb->AppendText(text);
// Crea un altro TextFragment
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Crea un altro TextFragment
text = MakeObject<TextFragment>(u"It demonstrates how to use TextBuilder to append text into PDF file.");
text->set_Position(MakeObject<Position>(200, 700));
tb->AppendText(text);
// Crea paragrafo di testo
auto par = MakeObject<TextParagraph>();
par->set_Position(MakeObject<Position>(250,650));
par->AppendLine(u"New paragraph");
par->AppendLine(u"Line 2");
par->AppendLine(u"Line 3");
tb->AppendParagraph(par);
// Salva documento PDF
doc->Save(u"Created PDF.pdf");

Produzione

API PDF C++

Crea un file PDF con immagine in C++

Puoi anche creare e aggiungere immagini ai documenti PDF usando Aspose.PDF per C++. Di seguito sono riportati i passaggi per eseguire questa operazione:

  • Crea un oggetto Documento.
  • Aggiungi una pagina al documento.
  • Crea un’immagine da aggiungere.
  • Aggiungi l’immagine al file PDF.
  • Salva file PDF.

L’esempio di codice seguente mostra come creare e aggiungere un’immagine a un documento PDF in C++.

// Crea oggetto documento
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Crea un'immagine
auto stream = MakeObject<IO::MemoryStream>();
SharedPtr<Bitmap> bitmap = MakeObject<Bitmap>(200, 200);
SharedPtr<Graphics> graphics = Graphics::FromImage(bitmap);
graphics->Clear(System::Drawing::Color::get_Yellow());
graphics->FillRectangle(Brushes::get_Blue(), System::Drawing::Rectangle(0, 0, 200, 100));
bitmap->Save(stream, Imaging::ImageFormat::get_Bmp());
// Crea rettangolo
double x = 100.0, y = 600.0, width = 200.0, height = 200.0;
auto rect = MakeObject<Aspose::Pdf::Rectangle>(x, y, x + width, y + height);
// Aggiungi immagine al PDF
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// Salva documento PDF
doc->Save(u"Created PDF.pdf");

Produzione

Libreria PDF C++

Crea un file PDF con allegati in C++

Il formato PDF consente anche di aggiungere allegati al documento. Esiste una varietà di formati di file che possono essere aggiunti come allegati al file PDF. Di seguito sono riportati i passaggi per incorporare un file in PDF utilizzando Aspose.PDF per C++:

  • Carica un file da allegare in SharedPtr .
  • Crea un oggetto della classe Document.
  • Incorpora il file nel documento.
  • Salva il file PDF.

L’esempio di codice seguente mostra come aggiungere un allegato al documento PDF in C++.

// Crea un file di testo
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Aggiungi allegato alla raccolta di allegati del documento
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Aggiungi una pagina al PDF
doc->get_Pages()->Add();	 
// Salva documento PDF
doc->Save(u"Created PDF.pdf");

Produzione

Genera PDF in C++

Ulteriori informazioni su Aspose.PDF per C++

Puoi saperne di più su Aspose.PDF per C++ dalla documentazione e dal codice sorgente esempi.

Guarda anche