Aspose.PDF FOSS for C++ είναι μια ανοιχτού κώδικα, σύγχρονη βιβλιοθήκη C++20 για εργασία με έγγραφα PDF — άνοιγμα και αποθήκευση PDF, εξαγωγή κειμένου, rasterisation σελίδων σε μορφές εικόνας, και δημιουργία εγγράφων από το μηδέν (κείμενο, εικόνες, πίνακες, διανυσματικά γραφικά, annotations, AcroForm fields και bookmarks). Η βιβλιοθήκη συνδέεται μόνο με τη βιβλιοθήκη προτύπου C++: κάθε primitive, συμπεριλαμβανομένων των κωδικοποιητών TIFF, JPEG και PNG και του page rasteriser, υλοποιείται από το μηδέν χωρίς εξάρτηση από οποιοδήποτε εμπορικό PDF stack.
Η κύρια API είναι χτισμένη γύρω από την κλάση Document και τη συλλογή Pages(). Το κείμενο εξάγεται με το Aspose::Pdf::Text::TextAbsorber, οι σελίδες αποδίδονται σε raster εικόνες μέσω κλάσεων συσκευών όπως PngDevice, JpegDevice, BmpDevice και TiffDevice, και τα έγγραφα μπορούν να ασφαλιστούν με Document.Encrypt() χρησιμοποιώντας αλγόριθμους RC4-40, RC4-128, AES-128 ή AES-256 που επιλέγονται μέσω του enum CryptoAlgorithm. Τα διαδραστικά πεδία φόρμας διαχειρίζονται μέσω της κλάσης Form, και οι annotations — text notes, highlights, shapes και stamps — προστίθενται και τροποποιούνται μέσω της ιεραρχίας κλάσεων Annotation.
Aspose.PDF FOSS for C++ κυκλοφορεί υπό την άδεια MIT χωρίς χρεώσεις χρόνου εκτέλεσης ή περιορισμούς χρήσης. Δημιουργείται ως στατική βιβλιοθήκη μέσω CMake — προσθέστε την ως υποκατάλογο της κατασκευής σας ή εγκαταστήστε την αυτόνομα — και απαιτεί έναν μεταγλωττιστή C++20 χωρίς άλλες εξαρτήσεις χρόνου εκτέλεσης. Για επιχειρηματικές δυνατότητες και υποστήριξη, δείτε 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() χρησιμοποιώντας κωδικό χρήστη και κωδικό ιδιοκτήτηCryptoAlgorithmPermissionsDocument.Decrypt()Annotation και AnnotationCollectionFormForm.Add()/Form.Delete()Form.Flatten()Προσθέστε τη βιβλιοθήκη ως υποκατάλογο CMake, στη συνέχεια ανοίξτε ένα έγγραφο, μετρήστε τις σελίδες του, εξάγετε κείμενο με TextAbsorber και αποδώστε τη σελίδα 1 σε PNG στα 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);
}
Ανοίξτε ένα έγγραφο και προστατεύστε το με κωδικό χρήστη και κωδικό ιδιοκτήτη χρησιμοποιώντας κρυπτογράφηση 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");
}
Διαβάστε τις υπάρχουσες καταχωρήσεις /Info και ενημερώστε τον τίτλο του εγγράφου μέσω του 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");
}
Έχει άδεια MIT και είναι δωρεάν για χρήση σε εμπορικά και μη εμπορικά προϊόντα, χωρίς κλειδί ενεργοποίησης ή περιορισμούς κλήσεων API.
Απαιτείται ένας μεταγλωττιστής C++20 (clang 16+, gcc 13+, ή MSVC 2022 17.5+) και CMake 3.22 ή νεότερο. Το Python 3 απαιτείται μόνο κατά το χρόνο κατασκευής.
Όχι. Συνδέεται μόνο με τη βιβλιοθήκη προτύπου C++ — δεν απαιτείται καμία εξάρτηση τρίτου μέρους για PDF, εικόνα ή συμπίεση κατά το χρόνο εκτέλεσης.
Διαβάζει και αποθηκεύει εγγενή έγγραφα PDF, και εξάγει τις αποδομένες σελίδες σε Bmp, Jpeg και Tiff, καθώς και απλό κείμενο. Το περιεχόμενο SVG μπορεί να εισαχθεί.
Καλέστε το Document.Encrypt() με κωδικό χρήστη, κωδικό ιδιοκτήτη και έναν CryptoAlgorithm (RC4x40, RC4x128, AESx128 ή AESx256).
Ναι — μερικοί βοηθοί ελέγχου τύπου XmpValue (IsDateTime, IsField και παρόμοια) είναι ψευδοσυναρτήσεις που πάντα επιστρέφουν false· χρησιμοποιήστε IsString/IsInteger/IsDouble/IsArray αντί αυτού.