Aspose.PDF FOSS for C++ è una libreria open-source, moderna C++20 per lavorare con documenti PDF — aprire e salvare PDF, estrarre testo, rasterizzare pagine in formati immagine e creare documenti da zero (testo, immagini, tabelle, grafica vettoriale, annotazioni, campi AcroForm e segnalibri). La libreria si collega solo alla libreria standard C++: ogni primitivo, inclusi i codec TIFF, JPEG e PNG e il rasterizzatore di pagine, è implementato da zero senza dipendenze da alcuno stack PDF commerciale.
Il nucleo API è costruito attorno alla classe Document e alla sua collezione Pages(). Il testo viene estratto con Aspose::Pdf::Text::TextAbsorber, le pagine vengono renderizzate in immagini raster tramite classi dispositivo come PngDevice, JpegDevice, BmpDevice e TiffDevice, e i documenti possono essere protetti con Document.Encrypt() usando gli algoritmi RC4-40, RC4-128, AES-128 o AES-256 selezionati tramite l’enumerazione CryptoAlgorithm. I campi modulo interattivi sono gestiti tramite la classe Form, e le annotazioni — note di testo, evidenziazioni, forme e timbri — vengono aggiunte e modificate tramite la gerarchia di classi Annotation.
Aspose.PDF FOSS for C++ è rilasciato sotto licenza MIT senza costi di runtime o restrizioni d’uso. Viene compilato come libreria statica tramite CMake — aggiungilo come sottodirectory del tuo build o installalo autonomamente — e richiede un compilatore C++20 senza altre dipendenze di runtime. Per funzionalità enterprise e supporto, vedi Aspose.PDF for C++ — Enterprise Product.
DocumentDocument.Pages() (PageCollection)PageCollection.Add()/Insert()/Delete()DocumentInfo (Document.Info())Document.Optimize()/OptimizeResources()Aspose::Pdf::Text::TextAbsorberTextAbsorber.Visit()TextAbsorber.Text()TextFragmentAbsorber.TextFragments()PngDeviceJpegDevice, BmpDevice, TiffDeviceResolution{Device}.Process()Document.Encrypt() usando una password utente e una password proprietarioCryptoAlgorithmPermissionsDocument.Decrypt()Annotation e AnnotationCollectionFormForm.Add()/Form.Delete()Form.Flatten()Aggiungi la libreria come sottodirectory CMake, quindi apri un documento, conta le sue pagine, estrai il testo con TextAbsorber e renderizza la pagina 1 in PNG a 150 DPI.
add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/page_collection.hpp>
#include <aspose/pdf/text_absorber.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
std::cout << "Pages: " << doc.Pages().Count() << "\n";
Aspose::Pdf::Text::TextAbsorber absorber;
absorber.Visit(doc);
std::cout << absorber.Text() << "\n";
Aspose::Pdf::Devices::PngDevice png(Aspose::Pdf::Devices::Resolution(150));
std::ofstream out("page1.png", std::ios::binary);
png.Process(doc.Pages()[1], out);
}
Apri un documento e proteggilo con una password utente e una password proprietario usando la crittografia AES-256.
#include <aspose/pdf/document.hpp>
int main() {
Aspose::Pdf::Document doc("input.pdf");
doc.Encrypt("user-password", "owner-password",
Aspose::Pdf::Permissions(),
Aspose::Pdf::CryptoAlgorithm::AESx256);
doc.Save("encrypted.pdf");
}
Leggi le voci /Info esistenti e aggiorna il titolo del documento tramite DocumentInfo.
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/document_info.hpp>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
auto& info = doc.Info();
std::cout << "Title: " << info.Title() << "\n";
std::cout << "Author: " << info.Author() << "\n";
doc.SetTitle("Updated Report Title");
doc.Save("output.pdf");
}
È con licenza MIT e gratuito da usare in prodotti commerciali e non commerciali, senza chiave di attivazione o limiti di chiamata API.
Un compilatore C++20 (clang 16+, gcc 13+ o MSVC 2022 17.5+) e CMake 3.22 o versioni successive. Python 3 è richiesto solo al momento della compilazione.
No. Si collega solo alla C++ standard library — non è necessaria alcuna dipendenza di terze parti per PDF, immagini o compressione a runtime.
Legge e salva documenti PDF nativi, ed esporta le pagine renderizzate in Bmp, Jpeg e Tiff, oltre al testo semplice. È possibile importare contenuti SVG.
Chiama Document.Encrypt() con una password utente, una password proprietario e un CryptoAlgorithm (RC4x40, RC4x128, AESx128 o AESx256).
Sì — alcuni helper di verifica del tipo XmpValue (IsDateTime, IsField e simili) sono stub che restituiscono sempre false; usa invece IsString/IsInteger/IsDouble/IsArray.