Aspose.PDF FOSS for C++ היא ספרייה קוד-פתוח מודרנית ב-C++20 לעבודה עם מסמכי PDF — פתיחה ושמירת קבצי PDF, חילוץ טקסט, רסטריזציה של דפים לפורמטים של תמונה, ובניית מסמכים מאפס (טקסט, תמונות, טבלאות, גרפיקה וקטורית, annotations, שדות AcroForm וסימניות). הספרייה מקשרת רק אל ספריית ה-standard של C++: כל פרימיטיב, כולל הקודקים של TIFF, JPEG ו-PNG והרסטרייזר של הדף, מיושמים מאפס ללא תלות בערימת PDF מסחרית.
הליבה של API נבנית סביב המחלקה Document ואוסף Pages(). הטקסט נמשך באמצעות Aspose::Pdf::Text::TextAbsorber, הדפים מוּרְנְדָרים לתמונות רסטר באמצעות מחלקות מכשיר כגון PngDevice, JpegDevice, BmpDevice ו-TiffDevice, והמסמכים יכולים להיות מוצפנים עם Document.Encrypt() תוך שימוש באלגוריתמים RC4-40, RC4-128, AES-128 או AES-256 הנבחרים דרך המונה CryptoAlgorithm. שדות טופס אינטראקטיביים מנוהלים דרך המחלקה Form, וה-annotations — הערות טקסט, הדגשות, צורות וחותמות — מתווספים ומשתנים דרך היררכיית המחלקה 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 במקום.