Поширені запитання
Яка ліцензійна модель для Aspose.PDF FOSS for C++?
Aspose.PDF FOSS for C++ має ліцензію MIT. Він безкоштовний для використання у комерційних та некомерційних продуктах, без активаційного ключа, обмежень викликів API та без необхідності комерційної угоди.
Як додати Aspose.PDF FOSS for C++ до проєкту CMake?
Використайте постачальника або клонувати репозиторій у структуру вашого проєкту, додайте його як підкаталог і підключіть ціль статичної бібліотеки:
add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)Які версії компілятора та CMake потрібні?
Компілятор C++20 — clang 16+, gcc 13+ або MSVC 2022 17.5+ — та CMake 3.22 або новіший. Для збірки також потрібен Python 3 лише під час збірки, щоб згенерувати вбудовані контури шрифту Standard-14.
Чи має бібліотека якісь залежності під час виконання?
Ні. Aspose.PDF FOSS для C++ посилається лише на стандартну бібліотеку C++ — жодних сторонніх залежностей від PDF, зображень чи стиснення не потрібно під час виконання.
Які формати може читати та експортувати Aspose.PDF FOSS для C++?
Він відкриває та зберігає нативні PDF-документи. Відрендерені сторінки можна експортувати у Bmp, Jpeg і Tiff за допомогою BmpDevice, JpegDevice та TiffDevice, а у простий текст — за допомогою TextDevice. Вміст SVG можна імпортувати в документ за допомогою SvgLoadOptions.
Як відкрити існуючий PDF і перевірити кількість сторінок?
#include <aspose/pdf/document.hpp>
Aspose::Pdf::Document doc("input.pdf");
std::size_t pages = doc.Pages().Count();Як витягти текст з PDF-документа?
Використайте TextAbsorber, перейдіть до документа, а потім прочитайте зібраний текст:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/text_absorber.hpp>
Aspose::Pdf::Document doc("input.pdf");
Aspose::Pdf::Text::TextAbsorber absorber;
absorber.Visit(doc);
std::string text = absorber.Text();Як відрендерити сторінку PDF у зображення?
Використайте клас пристрою, наприклад PngDevice, з цільовим Resolution, а потім обробіть одну сторінку у вихідний потік:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>
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);Як зашифрувати PDF-документ?
Викличте Document.Encrypt() з паролем користувача, паролем власника, значенням Permissions та CryptoAlgorithm:
#include <aspose/pdf/document.hpp>
Aspose::Pdf::Document doc("input.pdf");
doc.Encrypt("user-password", "owner-password",
Aspose::Pdf::Permissions(), Aspose::Pdf::CryptoAlgorithm::AESx256);
doc.Save("encrypted.pdf");RC4x40, RC4x128, AESx128 і AESx256 доступні через enum CryptoAlgorithm. Document.Decrypt() видаляє шифрування з уже відкритого документа.
Як прочитати або заповнити значення полів AcroForm?
Ітеруйте Form.Fields() з документа та читайте або встановлюйте значення кожного поля за його частковою назвою:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/forms/form.hpp>
Aspose::Pdf::Document doc("application_form.pdf");
auto& form = doc.Form();
for (auto* field : form.Fields()) {
if (field->PartialName() == "applicant_name") {
field->Value("Jane Doe");
}
}
doc.Save("application_filled.pdf");Чи є відомі обмеження у поточному випуску?
Так. XmpValue — тип значення, що використовується для записів XMP-метаданих, повернутих з Document.Metadata() — надає допоміжні функції перевірки типу IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() та IsStructure(), які наразі є заглушками і завжди повертають false. Код, який розгалужується за цими перевірками, не може розрізнити ці типи XMP-значень. Використовуйте реалізовані перевірки — IsString(), IsInteger(), IsDouble(), IsArray() — або викликайте відповідний аксесор (ToStringValue(), ToInteger(), ToDouble(), ToArray()) безпосередньо, коли тип значення вже відомий з контексту. Невелика кількість низькорівневих внутрішніх типів також містить заглушкові конструктори, які не використовуються у типовому коді обробки документів.
Де знаходиться вихідний код і трекер проблем?
Вихідний код і трекер проблем доступні за адресою https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.