Поширені запитання

Поширені запитання

Яка ліцензійна модель для 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.

Дивіться також

 Українська