Với sức mạnh của Internet, mọi thứ đã trở thành kỹ thuật số và các hệ thống không cần giấy tờ đã trở nên phổ biến. Các tài liệu kỹ thuật số, tức là PDF, nằm trong số các khối xây dựng của hệ thống không cần giấy tờ giúp cuộc sống dễ dàng hơn bằng cách cung cấp các tính năng xử lý và tạo tự động. Hầu hết các doanh nghiệp sử dụng tính năng tự động hóa tài liệu PDF để tạo báo cáo, biên lai, hóa đơn và các tài liệu kinh doanh khác một cách linh hoạt. Do đó, trong bài viết này, tôi sẽ trình bày cách tích hợp các tính năng của tự động hóa PDF trong các ứng dụng dựa trên C++ và tạo tệp PDF bằng C++.
Thư viện C++ PDF
Để tạo tệp PDF, chúng tôi sẽ sử dụng API Aspose.PDF for C++ là thư viện C++ gốc để hoạt động với các tài liệu PDF theo chương trình. Nó cho phép bạn tạo các tài liệu PDF tương tác với sự hỗ trợ của nhiều phần tử PDF. Aspose.PDF for C++ có sẵn trên NuGet cũng như trong phần Tải xuống của Aspose.
Tạo tệp PDF trong C++
Trước hết, chúng tôi sẽ tạo một tệp PDF đơn giản và thêm một số văn bản vào trang đầu tiên dưới dạng một đoạn văn. Sau đây là các bước cần thực hiện:
- Tạo một đối tượng Document.
- Thêm một trang vào PageCollection của Tài liệu.
- Nhận đoạn văn của trang.
- Tạo một đối tượng TextFragment và thêm nó vào đoạn văn.
- Lưu tài liệu PDF.
Mẫu mã sau đây cho biết cách tạo tài liệu PDF trong C++.
// Tạo tài liệu
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Số trang bắt đầu từ 1
auto page = pages->idx_get(1);
auto paragraps = page->get_Paragraphs();
// Tạo đoạn văn bản
auto text = MakeObject<TextFragment>(u"PDF API for C++");
auto ts = text->get_TextState();
// Đặt trạng thái văn bản
ts->set_FontSize(16);
ts->set_FontStyle(FontStyles::Italic);
// thêm vào đoạn văn
paragraps->Add(text);
// Thêm văn bản vào đoạn văn
paragraps->Add(MakeObject<TextFragment>(u"This example shows how to create a PDF with text using Aspose.PDF for C++."));
// Lưu tệp PDF
doc->Save(u"Example1.pdf");
đầu ra
Tạo tệp PDF bằng TextBuilder trong C++
Trong phần này, tôi sẽ chỉ cho bạn cách sử dụng lớp TextBuilder để nối thêm các đoạn văn bản và đoạn văn khác nhau trên trang. Hơn nữa, trong ví dụ này, bạn sẽ học cách đặt vị trí của đoạn văn bản trên trang. Sau đây là các bước để thực hiện thao tác này:
- Tạo một đối tượng Tài liệu.
- Thêm một trang vào tài liệu.
- Tạo đối tượng TextBuilder.
- Tạo một TextFragment và thêm văn bản của nó.
- Đặt vị trí của TextFragment.
- Nối thêm TextFragment bằng TextBuilder.
- Lưu tài liệu PDF.
Mẫu mã sau đây cho biết cách tạo tệp PDF bằng TextBuilder trong C++.
// Tạo đối tượng Tài liệu
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
// Tạo TextBuilder
auto tb = MakeObject<TextBuilder>(pages->idx_get(1));
// Tạo đoạn văn bản
auto text = MakeObject<TextFragment>(u"Hello world!");
text->set_Position(MakeObject<Position>(100, 800));
// Nối đoạn văn bản
tb->AppendText(text);
// Tạo một TextFragment khác
text = MakeObject<TextFragment>(u"This example is created by Aspose.Pdf for C++.");
text->set_Position(MakeObject<Position>(150, 750));
tb->AppendText(text);
// Tạo một TextFragment khác
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);
// Tạo đoạn văn bản
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);
// Lưu tài liệu PDF
doc->Save(u"Created PDF.pdf");
đầu ra
Tạo tệp PDF có hình ảnh trong C++
Bạn cũng có thể tạo và thêm hình ảnh vào tài liệu PDF bằng Aspose.PDF for C++. Sau đây là các bước để thực hiện thao tác này:
- Tạo một đối tượng Tài liệu.
- Thêm một trang vào tài liệu.
- Tạo một hình ảnh để được thêm vào.
- Thêm hình ảnh vào tệp PDF.
- Lưu tệp PDF.
Mẫu mã sau đây cho biết cách tạo và thêm hình ảnh vào tài liệu PDF trong C++.
// Tạo đối tượng Tài liệu
auto doc = MakeObject<Document>();
auto pages = doc->get_Pages();
pages->Add();
auto page = pages->idx_get(1);
// Tạo một hình ảnh
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());
// Tạo hình chữ nhậ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);
// Thêm hình ảnh vào PDF
stream->Seek(0, System::IO::SeekOrigin::Begin);
page->AddImage(stream, rect);
// Lưu tài liệu PDF
doc->Save(u"Created PDF.pdf");
đầu ra
Tạo tệp PDF có tệp đính kèm trong C++
Định dạng PDF cũng cho phép thêm tệp đính kèm vào tài liệu. Có nhiều định dạng tệp có thể được thêm dưới dạng tệp đính kèm vào tệp PDF. Sau đây là các bước để nhúng tệp vào PDF bằng Aspose.PDF for C++:
- Tải tệp được đính kèm trong SharedPtr .
- Tạo một đối tượng của lớp Tài liệu.
- Nhúng tệp vào Tài liệu.
- Lưu tệp PDF.
Mẫu mã sau đây cho biết cách thêm tệp đính kèm vào tài liệu PDF trong C++.
// Tạo một tệp văn bản
System::IO::File::WriteAllText(u"Attachment.txt", u"Some info");
SharedPtr<FileSpecification> fileSpecification = MakeObject<FileSpecification>(u"Attachment.txt", u"Sample text file");
// Thêm tệp đính kèm vào bộ sưu tập tệp đính kèm của tài liệu
auto doc = MakeObject<Document>();
doc->get_EmbeddedFiles()->Add(fileSpecification);
// Thêm một trang vào PDF
doc->get_Pages()->Add();
// Lưu tài liệu PDF
doc->Save(u"Created PDF.pdf");
đầu ra
Tìm hiểu thêm về Aspose.PDF for C++
Bạn có thể tìm hiểu thêm về Aspose.PDF for C++ từ tài liệu và mã nguồn ví dụ.