API رایگان C++ برای ایجاد، دستکاری و تجزیه فایلهای PDF.
یک کتابخانه پیشرو منبع باز برای دستکاری PDF به توسعهدهندگان C++ امکان میدهد بهسادگی فایلهای PDF را ایجاد، دستکاری، رمزگذاری، مدیریت قلمها و تجزیه کنند، در داخل برنامههای C++.
کتابخانه PoDoFo چیست؟
در دنیای توسعه C++، توانایی ایجاد، اصلاح و استخراج دادهها از فایلهای PDF بهصورت برنامهنویسی یک نیاز رایج است. کتابخانه PoDoFo، یک کتابخانه منبع باز و قابل حمل C++17، بهعنوان یک راهحل قدرتمند و چندمنظوره برای تمام موارد مرتبط با PDF ظاهر میشود. PoDoFo بهصورت رایگان در دسترس است و برای کار با فرمت فایل PDF طراحی شده است. این کتابخانه به توسعهدهندگان نرمافزار امکان تجزیه فایلهای PDF، بررسی موجودیتهای سطح بالا در PDF (مانند حاشیهنویسیها و فیلدهای فرم)، اصلاح آنها در حافظه و نوشتن تغییرات به دیسک درون برنامههای خود را میدهد. همچنین این کتابخانه ساخت PDFهای جدید از ابتدا را بدون نیاز به وابستگیهای خارجی آسان میکند.
PoDoFo یک کتابخانهٔ قدرتمند C++ است که به توسعهدهندگان نرمافزار امکان میدهد بهصورت برنامهنویسی با فرمت سند قابل حمل (PDF) کار کنند. این کتابخانه تحت مجوز LGPL نسخهٔ ۲.۰ یا بالاتر برای کتابخانه و GPL نسخهٔ ۲.۰ یا بالاتر برای ابزارهای همراه آن منتشر شده است و انعطافپذیری و باز بودن را برای پروژههای تجاری و منبع باز تضمین میکند. این کتابخانه مجموعهٔ غنیای از ابزارها را برای تجزیه، دستکاری و تولید اسناد 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همچنین میتوانید بهصورت دستی نصب کنید؛ فایلهای آخرین نسخه را مستقیماً از مخزن گیتهاب دانلود کنید.
ایجاد و ویرایش 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 تولید شده کمک میکند. علاوه بر این، پشتیبانی عالی آن از یونیکد تضمین میکند که میتوانید با طیف گستردهای از زبانها و مجموعههای کاراکتری کار کنید. پشتیبانی کامل از امضای PDF (سازگاری با PAdES-B)، رمزنگاری RSA/ECDSA، و جریانهای کاری امضای ناهمزمان یا بهتاخیر افتاده.