![](images/PDF-Automation-C.png#center)
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++](images/Create-PDF-in-C-1.png#center)
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](images/Create-PDF-in-C-2.png#center)
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](images/Create-PDF-in-C-3.png#center)
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++](images/Create-PDF-in-C-4.png#center)
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.