واجهة برمجة تطبيقات C++ مجانية لإنشاء، تعديل وتحليل ملفات PDF.

مكتبة رائدة مفتوحة المصدر لمعالجة PDF تمكّن مطوري C++ من إنشاء، تعديل، تشفير، إدارة الخطوط، وتحليل مستندات PDF بسهولة داخل تطبيقات C++.

ما هي مكتبة PoDoFo؟

في عالم تطوير C++، القدرة على إنشاء وتعديل واستخراج البيانات من ملفات PDF برمجيًا هي متطلب شائع. تظهر مكتبة PoDoFo، وهي مكتبة مفتوحة المصدر ومحمولة تعتمد على C++17، كحل قوي ومتعدد الاستخدامات لكل ما يتعلق بـ PDF. PoDoFo متاحة مجانًا ومصممة للعمل مع تنسيق ملفات PDF. تمكّن مطوري البرمجيات من تحليل ملفات PDF، وفحص الكيانات عالية المستوى في PDF (مثل التعليقات التوضيحية وحقول النماذج)، وتعديلها في الذاكرة، وكتابة التغييرات مرة أخرى إلى القرص داخل تطبيقاتهم الخاصة. كما تجعل المكتبة من السهل بناء ملفات PDF جديدة من الصفر دون أي تبعيات خارجية.

PoDoFo هي مكتبة C++ قوية تمكّن مطوري البرمجيات من العمل مع تنسيق المستندات القابلة للنقل (PDF) برمجيًا. مرخصة تحت LGPL v2.0 أو أحدث للمكتبة، وتحت GPL v2.0 أو أحدث لأدواتها المرافقة، تضمن مكتبة PoDoFo المرونة والانفتاح لكل من المشاريع التجارية ومشاريع المصدر المفتوح. توفر مجموعة غنية من الأدوات لتحليل، تعديل، وإنشاء مستندات PDF من الصفر. سواء كنت بحاجة إلى أتمتة إنشاء التقارير، استخراج النص للتحليل البياني، أو إضافة توقيعات رقمية للأمان، تقدم PoDoFo واجهة برمجة تطبيقات شاملة ومرنة لتلبية احتياجاتك.

Previous Next

البدء مع PoDoFo

الطريقة الموصى بها لتثبيت PoDoFo هي باستخدام CMake. يرجى استخدام الأمر التالي للحصول على تثبيت سلس.

تثبيت PPTXTemplater من GitHub

 vcpkg install fontconfig freetype libxml2 openssl libjpeg-turbo libpng tiff zlib
mkdir build
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Debug ..
cmake --build . --config Debug

تثبيت PPTXTemplater من GitHub

 git clone https://github.com/podofo/podofo.git

يمكنك أيضًا تثبيته يدويًا؛ قم بتحميل أحدث ملفات الإصدار مباشرةً من مستودع GitHub.

إنشاء وتعديل ملفات PDF

لقد أدرجت مكتبة PoDoFo المفتوحة المصدر دعماً كاملاً لإنشاء ومعالجة مستندات PDF داخل مكتبة C++. في جوهرها، تتفوق PoDoFo في إنشاء مستندات PDF جديدة وتعديل المستندات الموجودة. يمكن لمطوري البرمجيات إضافة صفحات جديدة، ورسم نص، وإدراج عناصر رسومية متنوعة، وفتح المستندات المشفرة بسهولة. المثال البسيط التالي يوضح كيف يمكن لمطوري البرمجيات إنشاء مستند PDF بسيط داخل تطبيقات C++

كيف تنشئ PDF بسيط باستخدام مكتبة C++؟

#include 

using namespace PoDoFo;

int main() {
    PdfStreamedDocument document("HelloWorld.pdf");
    PdfPainter painter;
    PdfPage* pPage;

    try {
        pPage = document.CreatePage(PdfPage::CreateStandardPageSize(ePdfPageSize_A4));
        painter.SetPage(pPage);
        PdfFont* pFont = document.CreateFont("Arial");
        pFont->SetFontSize(18.0);
        painter.SetFont(pFont);
        painter.DrawText(56.69, pPage->GetPageSize().GetHeight() - 56.69, "Hello World!");
        painter.FinishPage();
        document.Close();
    } catch (const PdfError & e) {
        e.PrintErrorMsg();
        return e.GetCode();
    }

    return 0;
}
 

استخراج النص من ملفات PDF باستخدام C++

تتضمن مكتبة PoDoFo آلية قوية لتحميل واستخراج النص من مستندات PDF باستخدام بضع أسطر فقط من كود C++. هذه الميزة لا تقدر بثمن للتطبيقات التي تتطلب فهرسة المحتوى أو استخراج البيانات أو تحليل المستندات. في مثال الكود التالي، يمكن للمطورين تحميل ملف PDF إلى PdfMemDocument، والتجول عبر صفحاته، واستخدام طريقة ExtractTextTo لاسترجاع محتوى النص.

كيف تقوم بتحميل واستخراج النص من ملفات PDF عبر واجهة برمجة التطبيقات C++؟

#include 
using namespace PoDoFo;

PdfMemDocument pdf("document.pdf");
int pageCount = pdf.GetPageCount();
for (int i = 0; i < pageCount; ++i) {
    PdfPage* page = pdf.GetPage(i);
    PdfContentsTokenizer tokenizer(page);

    const char* token = nullptr;
    PdfVariant var;
    EPdfContentsType type;

    while (tokenizer.ReadNext(type, token, var)) {
        if (type == ePdfContentsType_Keyword) {
            printf("Operator: %s\n", token);
        } else if (type == ePdfContentsType_Variant) {
            // Examine var as needed
        }
    }
}

 

إضافة توقيعات رقمية إلى PDF عبر واجهة برمجة التطبيقات C++؟

الأمان أمر بالغ الأهمية عند التعامل مع المستندات الرسمية. تدعم مكتبة PoDoFo إضافة التوقيعات الرقمية إلى ملفات PDF، مما يضمن أصالة وسلامة مستنداتك. هذا مفيد بشكل خاص للعقود والفواتير وغيرها من المستندات القانونية. بينما مثال التوقيع الرقمي الكامل معقد ويتطلب شهادة صالحة، يوضح الكود المفهومي التالي العملية.

كيف تضيف توقيعًا رقميًا إلى PDF عبر C++؟

 // Conceptual Code - Not a complete working example
#include 

using namespace PoDoFo;

int main() {
    PdfMemDocument document("unsigned.pdf");
    PdfPage* pPage = document.GetPage(0);

    // Create a signature field
    PdfSignatureField sigField(pPage,
        PdfRect(100, pPage->GetPageSize().GetHeight() - 100, 200, 50),
        &document);

    // Set signature properties
    // ...

    // Sign the document using a custom signer implementation
    // MySigner signer("my_certificate.pfx", "password");
    // document.Sign(sigField, signer);

    document.Write("signed.pdf");

    return 0;
}
 

معالجة الخطوط ودعم Unicode

توفر مكتبة PoDoFo المجانية دعمًا قويًا لأنواع مختلفة من الخطوط، بما في ذلك خطوط TrueType و Type1. كما تتعامل المكتبة مع تقطيع الخطوط، مما يساعد على تقليل حجم ملفات PDF المُنشأة. علاوة على ذلك، يضمن دعمها الممتاز للـ Unicode إمكانية العمل مع مجموعة واسعة من اللغات ومجموعات الأحرف. دعم كامل لتوقيع PDF (متوافق مع PAdES-B)، تشفير RSA/ECDSA، وسير عمل توقيع غير متزامن أو مؤجل.

 عربي