S mocí internetu se vše zdigitalizovalo a bezpapírové systémy se staly populárními. Digitální dokumenty, tj. PDF, patří mezi stavební kameny bezpapírových systémů, které usnadňují život tím, že poskytují funkce automatického generování a zpracování. Většina podniků používá automatizaci dokumentů PDF pro dynamické generování sestav, účtenek, faktur a dalších obchodních dokumentů. Proto v tomto článku předvedu, jak integrovat funkce automatizace PDF do aplikací založených na C++ a generovat soubory PDF pomocí C++.

Knihovna PDF C++

Pro vytváření souborů PDF použijeme Aspose.PDF for C++ API, což je nativní knihovna C++ pro programovou práci s dokumenty PDF. Umožňuje vytvářet interaktivní dokumenty PDF s podporou různých prvků PDF. Aspose.PDF for C++ je k dispozici na NuGet a také v sekci Stahování Aspose.

Vytvořte soubor PDF v C++

Nejprve si vytvoříme jednoduchý PDF soubor a na první stránku přidáme nějaký text ve formě odstavce. Následující kroky je třeba dodržet:

  • Vytvořte objekt Document.
  • Přidejte stránku do PageCollection dokumentu.
  • Získejte odstavec stránky.
  • Vytvořte objekt TextFragment a přidejte jej do odstavce.
  • Uložte dokument PDF.

Následující ukázka kódu ukazuje, jak vytvořit dokument PDF v C++.

// Vytvořte dokument
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Číslování stránek začíná od 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();	
// Vytvořte fragment textu
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Nastavit stav textu
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// Přidat do odstavce
paragraps->Add(text);
// Přidejte text do odstavce
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// Uložit soubor PDF
doc->Save(u"Example1.pdf");

Výstup

Vytvářejte soubory PDF v C++

Vytvořte soubor PDF pomocí TextBuilder v C++

V této části vám ukážu, jak používat třídu TextBuilder k připojení různých fragmentů textu a odstavců na stránku. Dále se v tomto příkladu naučíte, jak nastavit pozici textového fragmentu na stránce. K provedení této operace jsou uvedeny následující kroky:

  • Vytvořte objekt dokumentu.
  • Přidejte stránku do dokumentu.
  • Vytvořte objekt TextBuilder.
  • Vytvořte TextFragment a přidejte jeho text.
  • Nastavte polohu TextFragmentu.
  • Připojte TextFragment pomocí TextBuilderu.
  • Uložit dokument PDF.

Následující ukázka kódu ukazuje, jak vytvořit PDF pomocí TextBuilder v C++.

// Vytvořit objekt dokumentu
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Vytvořte TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// Vytvořte TextFragment
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// Připojit TextFragment
tb->AppendText(text);
// Vytvořte další TextFragment
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Vytvořte další 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);
// Vytvořte 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);
// Uložit dokument PDF
doc->Save(u"Created PDF.pdf");

Výstup

C++ PDF API

Vytvořte soubor PDF s obrázkem v C++

Můžete také vytvářet a přidávat obrázky do dokumentů PDF pomocí Aspose.PDF for C++. K provedení této operace jsou uvedeny následující kroky:

  • Vytvořte objekt dokumentu.
  • Přidejte stránku do dokumentu.
  • Vytvořte obrázek, který chcete přidat.
  • Přidejte obrázek do souboru PDF.
  • Uložit soubor PDF.

Následující ukázka kódu ukazuje, jak vytvořit a přidat obrázek do dokumentu PDF v C++.

// Vytvořit objekt dokumentu
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Vytvořte obrázek
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());
// Vytvořte obdélník
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);
// Přidat obrázek do PDF
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// Uložit dokument PDF
doc->Save(u"Created PDF.pdf");

Výstup

C++ knihovna PDF

Vytvořte soubor PDF s přílohami v C++

Formát PDF také umožňuje přidávat k dokumentu přílohy. Existuje celá řada formátů souborů, které lze přidat jako přílohu k souboru PDF. Níže jsou uvedeny kroky pro vložení souboru do PDF pomocí Aspose.PDF for C++:

  • Načtěte soubor, který chcete přiložit do SharedPtr .
  • Vytvořte objekt třídy Document.
  • Vložte soubor do dokumentu.
  • Uložte soubor PDF.

Následující ukázka kódu ukazuje, jak přidat přílohu k dokumentu PDF v C++.

// Vytvořte textový soubor
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Přidejte přílohu do sbírky příloh dokumentu
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Přidejte stránku do PDF
doc->get_Pages()->Add();	 
// Uložit dokument PDF
doc->Save(u"Created PDF.pdf");

Výstup

Generování PDF v C++

Další informace o Aspose.PDF for C++

Více o Aspose.PDF for C++ se můžete dozvědět z dokumentace a zdrojového kódu příklady.

Viz také