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 מקיף וגמיש העונה על הצרכים שלך.
התחלה עם 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, וזרימות עבודה של חתימה אסינכרונית או מתוזמנת.