Сценарии использования
Это руководство демонстрирует реальные сценарии использования Aspose.PDF FOSS для C++, включая генерацию документов, преобразование PDF в изображение, извлечение текста, безопасное распределение и AcroForm сбор данных. Библиотека связывается только со стандартной библиотекой C++ и требует компилятора C++20.
Генерация документов
Создайте PDF с нуля, добавляя страницы в новый Document и сохраняя результат. Этот шаблон лежит в основе генерации счетов, печати сертификатов и конвейеров производства выписок:
#include <aspose/pdf/document.hpp>
int main() {
Aspose::Pdf::Document doc;
doc.Pages().Add();
doc.SetTitle("Monthly Report");
doc.Save("report.pdf");
}Преобразование PDF в изображение
Отрендерьте страницу в растровое изображение для миниатюр, готового к печати вывода или базовых линий визуальной регрессии. PngDevice, JpegDevice, BmpDevice и TiffDevice каждый обрабатывают одну страницу за раз при заданном разрешении:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
Aspose::Pdf::Devices::PngDevice png(Aspose::Pdf::Devices::Resolution(150));
std::ofstream out("page1.png", std::ios::binary);
png.Process(doc.Pages()[1], out);
}Извлечение текста и индексация
Извлеките полный текст документа с помощью TextAbsorber для индексирования поиска, конвейеров добычи данных или автоматической проверки содержимого в тестовых наборах:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/text_absorber.hpp>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
Aspose::Pdf::Text::TextAbsorber absorber;
absorber.Visit(doc);
std::cout << absorber.Text() << "\n";
}Защищённое распределение документов
Зашифруйте документ с отдельными паролями пользователя и владельца перед распространением. Пароль пользователя требуется для открытия файла; пароль владельца управляет разрешениями, такими как печать и извлечение содержимого:
#include <aspose/pdf/document.hpp>
int main() {
Aspose::Pdf::Document doc("report.pdf");
doc.Encrypt("user-password", "owner-password",
Aspose::Pdf::Permissions(),
Aspose::Pdf::CryptoAlgorithm::AESx256);
doc.Save("report-secured.pdf");
}AcroForm Сбор данных
Прочитайте отправленные значения из заполненной PDF-формы, перебирая Form.Fields() и выводя название каждого поля и его текущее значение — полезно для обработки заполненных заявок без отдельного сервера отправки форм:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/forms/form.hpp>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("submitted-form.pdf");
auto& form = doc.Form();
for (auto* field : form.Fields()) {
std::cout << field->PartialName() << " = " << field->Value() << "\n";
}
}