Aspose.PDF FOSS for C++ este o bibliotecă open-source, modernă C++20 pentru lucrul cu documente PDF — deschiderea și salvarea PDF-urilor, extragerea textului, rasterizarea paginilor în formate de imagine și construirea documentelor de la zero (text, imagini, tabele, grafică vectorială, adnotări, câmpuri AcroForm și semne de carte). Biblioteca se leagă doar de biblioteca standard C++: fiecare primitiv, inclusiv codecurile TIFF, JPEG și PNG și rasterizatorul de pagină, este implementat de la zero fără dependență de niciun stiv PDF comercial.
Componenta de bază API este construită în jurul clasei Document și a colecției sale Pages(). Textul este extras cu Aspose::Pdf::Text::TextAbsorber, paginile sunt redate în imagini raster prin clase de dispozitiv cum ar fi PngDevice, JpegDevice, BmpDevice și TiffDevice, iar documentele pot fi securizate cu Document.Encrypt() utilizând algoritmii RC4-40, RC4-128, AES-128 sau AES-256 selectați prin enumul CryptoAlgorithm. Câmpurile de formular interactive sunt gestionate prin clasa Form, iar adnotările — note text, evidențieri, forme și ștampile — sunt adăugate și modificate prin ierarhia de clase Annotation.
Aspose.PDF FOSS for C++ este lansat sub licența MIT fără taxe de rulare sau restricții de utilizare. Se compilează ca bibliotecă statică prin CMake — adăugați-l ca subdirector al construcției dvs. sau instalați-l independent — și necesită un compilator C++20 fără alte dependențe de runtime. Pentru funcționalități și suport enterprise, vedeți 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() utilizând o parolă de utilizator și de proprietarCryptoAlgorithmPermissionsDocument.Decrypt()Annotation și AnnotationCollectionFormForm.Add()/Form.Delete()Form.Flatten()Adăugați biblioteca ca subdirector CMake, apoi deschideți un document, numărați paginile sale, extrageți textul cu TextAbsorber și redați pagina 1 în PNG la 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);
}
Deschideți un document și protejați-l cu o parolă de utilizator și una de proprietar utilizând criptarea 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");
}
Citește intrările existente /Info și actualizează titlul documentului prin 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");
}
Este licențiat sub MIT și este gratuit pentru utilizare în produse comerciale și necomerciale, fără cheie de activare sau limitări ale apelurilor API.
Un compilator C++20 (clang 16+, gcc 13+, sau MSVC 2022 17.5+) și CMake 3.22 sau o versiune ulterioară. Python 3 este necesar doar în timpul construirii.
Nu. Se leagă doar de biblioteca standard C++ — nu este necesară nicio dependență terță parte pentru PDF, imagine sau comprimare la rulare.
Citește și salvează documente PDF native și exportă paginile randate în Bmp, Jpeg și Tiff, plus text simplu. Conținutul SVG poate fi importat.
Apelaţi Document.Encrypt() cu o parolă de utilizator, o parolă de proprietar şi un CryptoAlgorithm (RC4x40, RC4x128, AESx128 sau AESx256).
Da — câțiva ajutoare de verificare a tipului XmpValue (IsDateTime, IsField și altele) sunt stuburi care întotdeauna returnează false; folosiți IsString/IsInteger/IsDouble/IsArray în schimb.