1. מוצרים
  2.   PDF
  3.   C++
  4.   PoDoFo
 
  

API חינמי ב‑C++ ליצירה, שינוי וניתוח קבצי PDF.

ספרייה מובילה בקוד פתוח לעיבוד PDF מאפשרת למפתחי C++ ליצור, לשנות, להצפין, לנהל גופנים ולנתח מסמכי PDF בקלות בתוך אפליקציות C++.

מהי ספריית PoDoFo?

בעולם פיתוח ה‑C++, היכולת ליצור, לשנות ולחלץ נתונים מקבצי PDF בצורה תכנותית היא דרישה נפוצה. ספריית PoDoFo, ספרייה קוד פתוח וניידת עבור C++17, מתגלה כפתרון חזק ורב‑גוני לכל מה שקשור ל‑PDF. PoDoFo זמינה בחינם ומיועדת לעבודה עם פורמט קובץ ה‑PDF. היא מאפשרת למפתחי תוכנה לנתח קבצי PDF, לבדוק ישויות PDF ברמה גבוהה (כגון הערות ושדות טופס), לשנות אותן בזיכרון ולכתוב שינויים חזרה לדיסק בתוך היישומים שלהם. הספרייה גם מקלה על בניית קבצי PDF חדשים מאפס ללא תלות חיצונית.

PoDoFo היא ספרייה חזקה ב‑C++ שמאפשרת למפתחי תוכנה לעבוד עם פורמט המסמך הנייד (PDF) בצורה תכנותית. הספרייה מורשית תחת LGPL גרסה 2.0 או מאוחר יותר עבור הספרייה, ו‑GPL גרסה 2.0 או מאוחר יותר עבור הכלים הנלווים, מה שמבטיח גמישות ופתיחות הן לפרויקטים מסחריים והן לפרויקטים קוד פתוח. היא מספקת סט עשיר של כלים לניתוח, מניפולציה ויצירת מסמכי PDF מאפס. בין אם אתה צריך לאוטומט יצירת דוחות, לחלץ טקסט לניתוח נתונים, או להוסיף חתימות דיגיטליות לאבטחה, PoDoFo מציעה API מקיף וגמיש העונה על הצרכים שלך.

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 באמצעות API של 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 באמצעות API של 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;
}
 

טיפול בגופנים ותמיכה ביוניקוד

ספריית PoDoFo החינמית מספקת תמיכה חזקה במגוון סוגי גופנים, כולל גופני TrueType ו‑Type1. הספרייה גם מטפלת בתת‑קבוצות גופנים, מה שמסייע להפחתת גודל הקובץ של קבצי ה‑PDF שנוצרים. בנוסף, התמיכה המצוינת שלה ב‑Unicode מבטיחה שתוכל לעבוד עם מגוון רחב של שפות וקבוצות תווים. תמיכה מלאה בחתימת PDF (עמידה בתקן PAdES‑B), הצפנת RSA/ECDSA, וזרימות עבודה של חתימה אסינכרונית או מתוזמנת.

 עִברִית