Întrebări frecvente

Întrebări frecvente

Care este modelul de licențiere pentru Aspose.PDF FOSS for C++?

Aspose.PDF FOSS for C++ este licențiat sub MIT. Este gratuit pentru utilizare în produse comerciale și necomerciale, fără cheie de activare, limite de apel API sau acord comercial necesar.

Cum adaug Aspose.PDF FOSS for C++ într-un proiect CMake?

Furnizați sau clonați depozitul în arborele proiectului, adăugați-l ca subdirector și legați ținta bibliotecii statice:

add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)

Ce compilator și ce versiuni de CMake sunt necesare?

Un compilator C++20 — clang 16+, gcc 13+ sau MSVC 2022 17.5+ — și CMake 3.22 sau o versiune ulterioară. Construcția necesită, de asemenea, Python 3 doar în timpul compilării, pentru a genera contururile de font Standard-14 incluse.

Are biblioteca dependențe la rulare?

Nu. Aspose.PDF FOSS for C++ se leagă doar de biblioteca standard C++ — nu este necesară nicio dependență terță pentru PDF, imagine sau compresie în timpul execuției.

Ce formate poate Aspose.PDF FOSS for C++ să citească și să exporte?

Deschide și salvează documente PDF native. Paginile redate pot fi exportate în Bmp, Jpeg și Tiff prin BmpDevice, JpegDevice și TiffDevice, și în text simplu prin TextDevice. Conținutul SVG poate fi importat într-un document prin SvgLoadOptions.

Cum pot deschide un PDF existent și să verific numărul de pagini?

#include <aspose/pdf/document.hpp>

Aspose::Pdf::Document doc("input.pdf");
std::size_t pages = doc.Pages().Count();

Cum pot extrage textul dintr-un document PDF?

Folosește TextAbsorber, accesează documentul, apoi citește textul colectat:

#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();

Cum pot reda o pagină PDF ca imagine?

Folosește o clasă de dispozitiv, cum ar fi PngDevice, cu o țintă Resolution, apoi procesează o singură pagină către un flux de ieșire:

#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);

Cum criptez un document PDF?

Apelați Document.Encrypt() cu o parolă de utilizator, o parolă de proprietar, o valoare Permissions și un 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 și AESx256 sunt disponibile prin enumerarea CryptoAlgorithm. Document.Decrypt() elimină criptarea dintr-un document deja deschis.

Cum citesc sau completez valorile câmpurilor AcroForm?

Iterați Form.Fields() din document și citiți sau setați valoarea fiecărui câmp după numele său parțial:

#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");

Există limitări cunoscute în versiunea curentă?

Da. XmpValue — tipul de valoare utilizat pentru intrările de metadate XMP returnate de Document.Metadata() — expune ajutoare de verificare a tipului IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() și IsStructure() care sunt în prezent stub-uri și întorc mereu false. Codul care ramifică pe baza acestor verificări nu poate distinge acele tipuri de valori XMP. Folosiți în schimb verificările implementate — IsString(), IsInteger(), IsDouble(), IsArray() — sau apelați accesatorul corespunzător (ToStringValue(), ToInteger(), ToDouble(), ToArray()) direct când tipul valorii este deja cunoscut din context. Un număr mic de tipuri interne de nivel scăzut conțin, de asemenea, constructori stub care nu sunt utilizați de codul tipic de procesare a documentelor.

Unde se găsesc codul sursă și trackerul de probleme?

Codul sursă și sistemul de urmărire a problemelor sunt disponibile la https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.

Vezi și:

 Română