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.