Med internets kraft har allt blivit digitalt och papperslösa system har blivit populära. De digitala dokumenten, det vill säga PDF, är bland byggstenarna i papperslösa system som har gjort livet lättare genom att tillhandahålla automatiserade genererings- och bearbetningsfunktioner. De flesta företag använder PDF-dokumentautomation för att generera rapporter, kvitton, fakturor och andra affärsdokument dynamiskt. Därför ska jag i den här artikeln visa hur man integrerar funktionerna i PDF-automatisering i C++-baserade applikationer och genererar PDF-filer med C++.

C++ PDF-bibliotek

För att skapa PDF-filer använder vi Aspose.PDF for C++ API som är ett inbyggt C++-bibliotek för att arbeta med PDF-dokument programmatiskt. Det låter dig skapa interaktiva PDF-dokument med stöd av en mängd olika PDF-element. Aspose.PDF för C++ är tillgängligt på NuGet såväl som i avsnittet Nedladdningar i Aspose.

Skapa en PDF-fil i C++

Först och främst kommer vi att skapa en enkel PDF-fil och lägga till lite text på första sidan i form av ett stycke. Följande är stegen som ska följas:

  • Skapa ett Dokument-objekt.
  • Lägg till en sida till PageCollection i dokumentet.
  • Hämta stycket på sidan.
  • Skapa ett TextFragment-objekt och lägg till det i stycket.
  • Spara PDF-dokumentet.

Följande kodexempel visar hur man skapar ett PDF-dokument i C++.

// Skapa dokument
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Numrering av sidor börjar från 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();	
// Skapa textfragment
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Ställ in texttillstånd
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// Lägg till i stycket
paragraps->Add(text);
// Lägg till text i stycket
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// Spara PDF-fil
doc->Save(u"Example1.pdf");

Produktion

Skapa PDF-filer i C++

Skapa en PDF-fil med TextBuilder i C++

I det här avsnittet kommer jag att visa dig hur du använder klassen TextBuilder för att lägga till olika textfragment och stycken på sidan. I det här exemplet kommer du dessutom att lära dig hur du ställer in textfragmentets position på sidan. Följande är stegen för att utföra denna operation:

  • Skapa ett dokumentobjekt.
  • Lägg till en sida i dokumentet.
  • Skapa ett TextBuilder-objekt.
  • Skapa ett TextFragment och lägg till dess text.
  • Ställ in positionen för textfragmentet.
  • Lägg till TextFragment med hjälp av TextBuilder.
  • Spara PDF-dokument.

Följande kodexempel visar hur man skapar en PDF med TextBuilder i C++.

// Skapa dokumentobjekt
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Skapa TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// Skapa TextFragment
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// Lägg till TextFragment
tb->AppendText(text);
// Skapa ett annat TextFragment
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Skapa ett annat 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);
// Skapa TextParagraph
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);
// Spara PDF-dokument
doc->Save(u"Created PDF.pdf");

Produktion

C++ PDF API

Skapa en PDF-fil med bild i C++

Du kan också skapa och lägga till bilder till PDF-dokumenten med Aspose.PDF för C++. Följande är stegen för att utföra denna operation:

  • Skapa ett dokumentobjekt.
  • Lägg till en sida i dokumentet.
  • Skapa en bild som ska läggas till.
  • Lägg till bilden i PDF-filen.
  • Spara PDF-fil.

Följande kodexempel visar hur man skapar och lägger till en bild i ett PDF-dokument i C++.

// Skapa dokumentobjekt
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Skapa en bild
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());
// Skapa rektangel
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);
// Lägg till bild till PDF
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// Spara PDF-dokument
doc->Save(u"Created PDF.pdf");

Produktion

C++ PDF-bibliotek

Skapa en PDF-fil med bilagor i C++

PDF-formatet gör det också möjligt att lägga till bilagor till dokumentet. Det finns en mängd olika filformat som kan läggas till som en bilaga till PDF-filen. Följande är stegen för att bädda in en fil i PDF med Aspose.PDF för C++:

  • Ladda en fil som ska bifogas i SharedPtr .
  • Skapa ett objekt av klassen Document.
  • Bädda in filen i dokumentet.
  • Spara PDF-filen.

Följande kodexempel visar hur man lägger till en bilaga till PDF-dokumentet i C++.

// Skapa en textfil
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Lägg till bilaga till dokumentets bilagasamling
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Lägg till en sida till PDF
doc->get_Pages()->Add();	 
// Spara PDF-dokument
doc->Save(u"Created PDF.pdf");

Produktion

Skapa PDF i C++

Läs mer om Aspose.PDF för C++

Du kan lära dig mer om Aspose.PDF för C++ från dokumentationen och källkoden exempel.

Se även