Domande Frequenti

Domande Frequenti

Qual è il modello di licenza per Aspose.PDF FOSS per C++?

Aspose.PDF FOSS per C++ è rilasciato con licenza MIT. È gratuito da utilizzare in prodotti commerciali e non commerciali, senza chiave di attivazione, limiti di chiamata API, o accordo commerciale richiesto.

Come aggiungere Aspose.PDF FOSS per C++ a un progetto CMake?

Includi o clona il repository nella struttura del tuo progetto, aggiungilo come sottodirectory e collega il target della libreria statica:

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

Quali versioni del compilatore e di CMake sono richieste?

Un compilatore C++20 — clang 16+, gcc 13+ o MSVC 2022 17.5+ — e CMake 3.22 o successive. La compilazione richiede inoltre Python 3 solo a tempo di build, per generare i contorni dei font Standard-14 inclusi.

La libreria ha dipendenze di runtime?

No. Aspose.PDF FOSS per C++ si collega solo alla libreria standard C++ — non è necessaria alcuna dipendenza di terze parti per PDF, immagini o compressione durante l’esecuzione.

Quali formati può Aspose.PDF FOSS per C++ leggere ed esportare?

Apre e salva documenti PDF nativi. Le pagine renderizzate possono essere esportate in Bmp, Jpeg e Tiff tramite BmpDevice, JpegDevice e TiffDevice, e in testo semplice tramite TextDevice. Il contenuto SVG può essere importato in un documento tramite SvgLoadOptions.

Come posso aprire un PDF esistente e verificare il numero di pagine?

#include <aspose/pdf/document.hpp>

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

Come estrarre il testo da un documento PDF?

Usa TextAbsorber, visita il documento, quindi leggi il testo raccolto:

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

Come renderizzare una pagina PDF in un’immagine?

Usa una classe dispositivo come PngDevice con un target Resolution, quindi elabora una singola pagina verso uno stream di output:

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

Come posso crittografare un documento PDF?

Chiama Document.Encrypt() con una password utente, una password del proprietario, un valore Permissions e 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 e AESx256 sono tutti disponibili tramite l’enumerazione CryptoAlgorithm. Document.Decrypt() rimuove la crittografia da un documento già aperto.

Come posso leggere o compilare i valori dei campi AcroForm?

Itera Form.Fields() dal documento e leggi o imposta il valore di ogni campo tramite il suo nome parziale:

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

Ci sono limitazioni note nella versione attuale?

Sì. XmpValue — il tipo di valore usato per le voci di metadati XMP restituite da Document.Metadata() — espone i helper di verifica del tipo IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() e IsStructure() che attualmente sono stub e restituiscono sempre false. Il codice che effettua branch su queste verifiche non può distinguere quei tipi di valore XMP. Usa invece le verifiche implementate — IsString(), IsInteger(), IsDouble(), IsArray() — oppure chiama direttamente l’accessor corrispondente (ToStringValue(), ToInteger(), ToDouble(), ToArray()) quando il tipo di valore è già noto dal contesto. Un piccolo numero di tipi interni a basso livello contiene anche costruttori stub che non sono utilizzati dal tipico codice di elaborazione dei documenti.

Dove si trovano il codice sorgente e l’issue tracker?

Il codice sorgente e il tracker dei problemi sono disponibili su https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp.

Vedi anche

 Italiano