Dzięki potędze Internetu wszystko stało się cyfrowe, a systemy bezpapierowe stały się popularne. Dokumenty cyfrowe, np. PDF, to jeden z elementów składowych systemów elektronicznych, które ułatwiają życie, zapewniając funkcje automatycznego generowania i przetwarzania. Większość firm korzysta z automatyzacji dokumentów PDF do dynamicznego generowania raportów, paragonów, faktur i innych dokumentów biznesowych. Dlatego w tym artykule pokażę, jak zintegrować funkcje automatyzacji PDF w aplikacjach opartych na C++ i generować pliki PDF za pomocą C++.
Biblioteka PDF w C++
Do tworzenia plików PDF użyjemy API Aspose.PDF for C++, które jest natywną biblioteką C++ do programowej pracy z dokumentami PDF. Pozwala tworzyć interaktywne dokumenty PDF z obsługą różnych elementów PDF. Aspose.PDF for C++ jest dostępny w NuGet, jak również w sekcji Downloads Aspose.
Utwórz plik PDF w C++
Przede wszystkim stworzymy prosty plik PDF i dodamy tekst na pierwszą stronę w formie akapitu. Oto kroki, które należy wykonać:
- Utwórz obiekt Document.
- Dodaj stronę do PageCollection dokumentu.
- Pobierz akapit strony.
- Utwórz obiekt TextFragment i dodaj go do akapitu.
- Zapisz dokument PDF.
Poniższy przykładowy kod pokazuje, jak utworzyć dokument PDF w języku C++.
// Utwórz dokument
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Numeracja Stron zaczyna się od 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();
// Utwórz fragment tekstu
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Ustaw stan tekstu
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// Dodaj do ust
paragraps->Add(text);
// Dodaj tekst do akapitu
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// Zapisz plik PDF
doc->Save(u"Example1.pdf");
Wyjście
Utwórz plik PDF za pomocą TextBuilder w C++
W tej sekcji pokażę, jak używać klasy TextBuilder do dołączania różnych fragmentów tekstu i akapitów na stronie. Ponadto w tym przykładzie dowiesz się, jak ustawić pozycję fragmentu tekstu na stronie. Aby wykonać tę operację, wykonaj następujące czynności:
- Utwórz obiekt dokumentu.
- Dodaj stronę do dokumentu.
- Utwórz obiekt TextBuilder.
- Utwórz TextFragment i dodaj jego tekst.
- Ustaw pozycję TextFragment.
- Dołącz TextFragment za pomocą TextBuilder.
- Zapisz dokument PDF.
Poniższy przykładowy kod pokazuje, jak utworzyć plik PDF przy użyciu programu TextBuilder w języku C++.
// Utwórz obiekt dokumentu
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Utwórz TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// Utwórz fragment tekstu
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// Dołącz fragment tekstu
tb->AppendText(text);
// Utwórz kolejny TextFragment
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Utwórz kolejny 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);
// Utwórz akapit tekstowy
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);
// Zapisz dokument PDF
doc->Save(u"Created PDF.pdf");
Wyjście
Utwórz plik PDF z obrazem w C++
Możesz także tworzyć i dodawać obrazy do dokumentów PDF za pomocą Aspose.PDF for C++. Aby wykonać tę operację, wykonaj następujące kroki:
- Utwórz obiekt dokumentu.
- Dodaj stronę do dokumentu.
- Utwórz obraz do dodania.
- Dodaj obraz do pliku PDF.
- Zapisz plik PDF.
Poniższy przykładowy kod pokazuje, jak utworzyć i dodać obraz do dokumentu PDF w języku C++.
// Utwórz obiekt dokumentu
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Utwórz obraz
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());
// Utwórz prostokąt
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);
// Dodaj obraz do pliku PDF
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// Zapisz dokument PDF
doc->Save(u"Created PDF.pdf");
Wyjście
Utwórz plik PDF z załącznikami w C++
Format PDF umożliwia również dodawanie załączników do dokumentu. Istnieje wiele formatów plików, które można dodać jako załącznik do pliku PDF. Poniżej przedstawiono kroki, aby osadzić plik w formacie PDF przy użyciu Aspose.PDF for C++:
- Załaduj plik do załączenia w SharedPtr .
- Utwórz obiekt klasy Document.
- Osadź plik w Document.
- Zapisz plik PDF.
Poniższy przykładowy kod pokazuje, jak dodać załącznik do dokumentu PDF w języku C++.
// Utwórz plik tekstowy
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Dodaj załącznik do kolekcji załączników dokumentu
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Dodaj stronę do pliku PDF
doc->get_Pages()->Add();
// Zapisz dokument PDF
doc->Save(u"Created PDF.pdf");
Wyjście
Dowiedz się więcej o Aspose.PDF for C++
Możesz dowiedzieć się więcej o Aspose.PDF for C++ z dokumentacji i kodu źródłowego przykłady.