З розвитком Інтернету все стало цифровим, а безпаперові системи стали популярними. Цифрові документи, тобто PDF, є одними з будівельних блоків безпаперових систем, які полегшили життя завдяки забезпеченню функцій автоматизованого створення та обробки. Більшість підприємств використовують автоматизацію PDF-документів для динамічного створення звітів, квитанцій, рахунків-фактур та інших бізнес-документів. Тому в цій статті я покажу, як інтегрувати функції автоматизації PDF у програми на основі C++ і створювати файли PDF за допомогою C++.
Бібліотека C++ PDF
Для створення PDF-файлів ми використовуватимемо API Aspose.PDF for C++, який є рідною бібліотекою C++ для програмної роботи з PDF-документами. Він дозволяє створювати інтерактивні документи PDF із підтримкою різних елементів PDF. Aspose.PDF for C++ доступний на NuGet, а також у розділі Завантаження Aspose.
Створіть файл PDF на C++
Перш за все, ми створимо простий PDF-файл і додамо трохи тексту на першу сторінку у вигляді абзацу. Слід виконати наступні дії:
- Створіть об’єкт Документ.
- Додайте сторінку до PageCollection документа.
- Отримати абзац сторінки.
- Створіть об’єкт TextFragment і додайте його до абзацу.
- Збережіть документ PDF.
У наведеному нижче прикладі коду показано, як створити PDF-документ на C++.
// Створити документ
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Нумерація сторінок починається з 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();
// Створення текстового фрагмента
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Встановити стан тексту
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// Додати до абзацу
paragraps->Add(text);
// Додати текст до абзацу
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// Зберегти файл PDF
doc->Save(u"Example1.pdf");
Вихід
Створіть PDF-файл за допомогою TextBuilder у C++
У цьому розділі я покажу вам, як використовувати клас TextBuilder для додавання різноманітних фрагментів тексту та абзаців на сторінку. Крім того, в цьому прикладі ви дізнаєтеся, як задати положення фрагмента тексту на сторінці. Нижче наведено кроки для виконання цієї операції.
- Створіть об’єкт «Документ».
- Додати сторінку до документа.
- Створіть об’єкт TextBuilder.
- Створіть TextFragment і додайте його текст.
- Встановіть положення TextFragment.
- Додайте TextFragment за допомогою TextBuilder.
- Зберегти документ PDF.
У наведеному нижче прикладі коду показано, як створити PDF-файл за допомогою TextBuilder у C++.
// Створити об'єкт документа
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Створіть TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// Створіть TextFragment
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// Додайте TextFragment
tb->AppendText(text);
// Створіть інший TextFragment
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Створіть інший 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);
// Створіть 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);
// Зберегти документ PDF
doc->Save(u"Created PDF.pdf");
Вихід
Створіть PDF-файл із зображенням у C++
Ви також можете створювати та додавати зображення до документів PDF за допомогою Aspose.PDF for C++. Нижче наведено кроки для виконання цієї операції.
- Створіть об’єкт «Документ».
- Додати сторінку до документа.
- Створіть зображення для додавання.
- Додайте зображення до PDF-файлу.
- Зберегти файл PDF.
У наведеному нижче прикладі коду показано, як створити та додати зображення до PDF-документа на C++.
// Створити об'єкт документа
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Створіть образ
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());
// Створіть прямокутник
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);
// Додати зображення до PDF
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// Зберегти документ PDF
doc->Save(u"Created PDF.pdf");
Вихід
Створіть PDF-файл із вкладеннями на C++
Формат PDF також дозволяє додавати вкладення до документа. Існує безліч форматів файлів, які можна додати як вкладення до файлу PDF. Нижче наведено кроки, щоб вставити файл у PDF за допомогою Aspose.PDF for C++:
- Завантажте файл для прикріплення в SharedPtr .
- Створіть об’єкт класу Document.
- Вставте файл у документ.
- Збережіть файл PDF.
У наведеному нижче прикладі коду показано, як додати вкладення до документа PDF у C++.
// Створіть текстовий файл
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Додати вкладення до колекції вкладень документа
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Додати сторінку до PDF
doc->get_Pages()->Add();
// Зберегти документ PDF
doc->Save(u"Created PDF.pdf");
Вихід
Дізнайтеся більше про Aspose.PDF for C++
Ви можете дізнатися більше про Aspose.PDF for C++ з документації та вихідного коду приклади.