1. المنتجات
  2.   Aspose.PDF
  3.   Aspose.PDF FOSS for C++

Aspose.PDF FOSS لـ C++

مكتبة C++ مفتوحة المصدر لإنشاء وتحرير وعرض وتأمين مستندات PDF بدون أي تبعيات وقت تشغيل.

Aspose.PDF FOSS — مكتبة PDF مفتوحة المصدر C++

Aspose.PDF FOSS for C++ هي مكتبة مفتوحة المصدر، حديثة تعتمد على C++20 للعمل مع مستندات PDF — فتح وحفظ ملفات PDF، استخراج النص، تحويل الصفحات إلى صيغ صور، وبناء المستندات من الصفر (نص، صور، جداول، رسومات متجهة، تعليقات توضيحية، حقول AcroForm، وإشارات مرجعية). تربط المكتبة نفسها فقط بمكتبة 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، وتُضاف التعليقات التوضيحية — ملاحظات نصية، تظليل، أشكال، وختمات — وتُعدَّل عبر شجرة فئات Annotation.

Aspose.PDF FOSS for C++ مُصدرة تحت رخصة MIT دون رسوم تشغيل أو قيود على الاستخدام. تُبنى كمكتبة ثابتة عبر CMake — أضفها كدليل فرعي في عملية البناء أو ثبّتها بشكل مستقل — وتتطلب مترجم C++20 دون أي تبعيات تشغيلية أخرى. للحصول على ميزات الدعم للمؤسسات والدعم الفني، راجع Aspose.PDF for C++ — Enterprise Product.

تحميل المستند وإدارة الصفحات

  • فتح ملفات PDF الموجودة وحفظ التعديلات باستخدام Document
  • الوصول إلى الصفحات وتكرارها عبر Document.Pages() (PageCollection)
  • إضافة، إدراج، وحذف الصفحات باستخدام PageCollection.Add()/Insert()/Delete()
  • قراءة وضبط بيانات تعريف المستند عبر DocumentInfo (Document.Info())
  • تحسين حجم المستند باستخدام Document.Optimize()/OptimizeResources()

حالات الاستخدام النموذجية

  • بناء أنابيب إنشاء PDF للتقارير والفواتير
  • دمج وتقسيم وإعادة تنظيم مستندات PDF الموجودة
  • فحص وتحديث بيانات تعريف المستند برمجيًا
  • تقليل حجم ملف PDF قبل الأرشفة أو التوزيع

استخراج النص

  • استخراج النص العادي من مستند كامل باستخدام Aspose::Pdf::Text::TextAbsorber
  • زيارة صفحة واحدة أو المستند بأكمله عبر TextAbsorber.Visit()
  • استرجاع النص المستخرج عبر TextAbsorber.Text()
  • تحديد أجزاء النص الفردية باستخدام TextFragmentAbsorber.TextFragments()

حالات الاستخدام النموذجية

  • فهرسة محتوى PDF للبحث
  • استخراج البيانات من الفواتير والوثائق المهيكلة
  • إنشاء خطوط أنابيب لتعدين النصوص أو تحليل المحتوى
  • التحقق من محتوى المستند في مجموعات الاختبار الآلية

التحويل إلى صور نقطية

  • تحويل الصفحات إلى PNG باستخدام PngDevice
  • تحويل الصفحات إلى JPEG أو BMP أو TIFF باستخدام JpegDevice، BmpDevice، TiffDevice
  • التحكم في دقة الإخراج باستخدام الفئة Resolution
  • معالجة صفحة واحدة عبر {Device}.Process()

حالات الاستخدام النموذجية

  • إنشاء صور مصغرة للصفحات لمُستعرض المستندات
  • إنتاج مخرجات نقطية جاهزة للطباعة من ملفات PDF المتجهية
  • بناء خدمات تحويل PDF إلى صورة
  • إنشاء أسس الانحدار البصري للـ PDF المُولَّدة

التشفير والأمان

  • تشفير المستندات باستخدام Document.Encrypt() باستخدام كلمة مرور المستخدم والمالك
  • اختيار RC4-40 أو RC4-128 أو AES-128 أو AES-256 عبر تعداد CryptoAlgorithm
  • التحكم في الأذونات الممنوحة باستخدام نوع Permissions
  • فك تشفير المستندات المحمية بكلمة مرور باستخدام Document.Decrypt()

حالات الاستخدام النموذجية

  • حماية تقارير PDF السرية قبل التوزيع
  • فرض قيود الطباعة/النسخ/التعديل على المستندات المشتركة
  • إضافة حماية كلمة مرور للفواتير والبيانات المالية المُنشأة
  • تشفير المستندات دفعة واحدة كجزء من خط أنابيب المستندات

التعليقات التوضيحية والنماذج التفاعلية

  • إضافة وتعديل وتسطح التعليقات التوضيحية عبر Annotation و AnnotationCollection
  • إدارة حقول AcroForm عبر فئة Form
  • إضافة وإزالة الحقول باستخدام Form.Add()/Form.Delete()
  • تسطيح النماذج التفاعلية إلى محتوى ثابت باستخدام Form.Flatten()

حالات الاستخدام النموذجية

  • إضافة تعليقات المراجعة والتظليل إلى ملفات PDF المشتركة
  • إنشاء نماذج PDF قابلة للملء لجمع البيانات
  • تسطيح النماذج المرسلة قبل الأرشفة
  • ملء حقول النموذج مسبقًا وقفلها برمجيًا

فتح PDF، استخراج النص، وعرض صفحة

أضف المكتبة كدليل فرعي في 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

افتح مستندًا وحمّهه بكلمة مرور مستخدم وكلمة مرور مالك باستخدام تشفير 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");
}

الأسئلة الشائعة

ما هو نموذج الترخيص لـ Aspose.PDF FOSS for C++؟

إنه مرخص برخصة MIT ومجاني للاستخدام في المنتجات التجارية وغير التجارية، دون الحاجة إلى مفتاح تفعيل أو حدود استدعاء API.

ما المترجم وإصدارات CMake المطلوبة؟

مترجم C++20 (clang 16+، gcc 13+، أو MSVC 2022 17.5+) و CMake 3.22 أو أحدث. Python 3 مطلوب فقط أثناء وقت البناء.

هل للمكتبة أي تبعيات وقت التشغيل؟

لا. إنه يرتبط فقط بمكتبة C++ القياسية — لا حاجة إلى أي تبعية من طرف ثالث للـ PDF أو الصورة أو الضغط أثناء وقت التشغيل.

ما الصيغ التي يمكنه قراءتها وتصديرها؟

يقرأ ويحفظ مستندات PDF الأصلية، ويصدّر الصفحات المُعالجة إلى Bmp و Jpeg و Tiff، بالإضافة إلى النص العادي. يمكن استيراد محتوى SVG.

كيف أقوم بتشفير مستند PDF؟

استدعِ Document.Encrypt() باستخدام كلمة مرور المستخدم، كلمة مرور المالك، وخوارزمية تشفير (RC4x40، RC4x128، AESx128، أو AESx256).

هل توجد أي قيود معروفة في الإصدار الحالي؟

نعم — بعض المساعدين للتحقق من نوع XmpValue (IsDateTime, IsField, وما إلى ذلك) هي دوال نائبة تُعيد دائمًا false؛ استخدم IsString/IsInteger/IsDouble/IsArray بدلاً من ذلك.

  

الدعم وموارد التعلم

 العربية