واجهة برمجة تطبيقات PDF مجانية بلغة C++ لقراءة، كتابة، دمج & تشفير ملفات PDF.
المكتبة الرائدة المفتوحة المصدر لتوليد PDF بلغة C++ للغة C و C++. توفر مجموعة كاملة من الميزات لقراءة، إنشاء، تعديل، معالجة، وتأمين مستندات PDF في بيئات متعددة المنصات.
ما هي مكتبة VersyPDF؟
في عالم تطوير البرمجيات، القدرة على إنشاء وتعديل مستندات PDF هي متطلب شائع. VersyPDF هي مكتبة قوية ومفتوحة المصدر بلغة C++/C توفر مجموعة شاملة من الأدوات للعمل مع ملفات PDF. سواء كنت تبني نظام إدارة مستندات معقد أو تحتاج ببساطة إلى إضافة وظيفة تصدير PDF إلى تطبيقك، فإن VersyPDF تغطي احتياجاتك. توفر المكتبة تحكمًا دقيقًا جدًا في النصوص والرسومات والتخطيط والخطوط واللون؛ وهي مناسبة للتطبيقات التي تحتاج إلى مخرجات دقيقة (مثل النشر، وتوليد المستندات الآلي). كما توفر المكتبة حلاً كاملاً للعمل مع نماذج PDF. يمكنك ملء النماذج الموجودة، وقراءة قيم حقول النماذج، وحتى إنشاء حقول نماذج جديدة من الصفر.
VersyPDF هي مكتبة PDF مفتوحة المصدر وقوية على مستوى الصناعة للغات C و C++، تم تطويرها بواسطة Sybrex Systems. هدفها هو تزويد المطورين بمجموعة كاملة من الأدوات لقراءة وإنشاء وتحرير ومعالجة وتأمين مستندات PDF في بيئات متعددة المنصات. تتميز بمجموعة غنية من الميزات تجعلها حلاً متعدد الاستخدامات لمجموعة واسعة من المهام المتعلقة بـ PDF. تدعم المكتبة قراءة وكتابة مستندات PDF، إنشاء المحتوى ومعالجته، تضمين الصور في مستندات PDF، التعامل مع الخطوط والنصوص، تحسين دعم الألوان والرسومات، إنشاء وتحرير العلامات المرجعية، دعم تشفير PDF، تحسين ملفات PDF، وغيرها. بفضل مجموعة ميزاتها الشاملة وواجهة برمجة التطبيقات السهلة الاستخدام، تُعد VersyPDF خيارًا ممتازًا لأي مطور يحتاج إلى دمج وظائف PDF في تطبيقاته.
البدء باستخدام VersyPDF
الطريقة الموصى بها لتثبيت VersyPDF هي باستخدام CMake. يرجى استخدام الأمر التالي لتثبيت سلس.
تثبيت VersyPDF عبر GitHub
git clone https://github.com/sybrexsys/VersyPDF.git
يمكنك أيضًا تثبيته يدويًا؛ قم بتنزيل أحدث ملفات الإصدار مباشرةً من مستودع GitHub.
قراءة وكتابة مستندات PDF عبر C++
أدرج VersyPDF مفتوح المصدر دعمًا لإنشاء مستندات PDF جديدة وقراءة ملفات PDF الموجودة داخل تطبيق C++. يمكن لمطوري البرمجيات تحميل مستندات PDF من الملفات أو مخازن الذاكرة، وكتابة ملفات PDF المعدلة أو الجديدة مرة أخرى إلى الملف أو الذاكرة بسهولة. هذا يعني أن كلًا من الإدخال والإخراج مرنانان. يوضح المثال التالي كيفية إنشاء مستند PDF بسيط بصفحة نص واحدة باستخدام أوامر C++.
كيفية إنشاء مستندات PDF وإضافة صفحة إليها عبر واجهة برمجة التطبيقات C++؟
#include "versypdf.h"
int main()
{
// Create a new PDF document
CPDFDocument doc;
doc.CreateNew();
// Add a new page
CPDFPage page = doc.AppendPage();
// Set the font and draw some text
page.BeginText();
page.SetFont("Helvetica", 12);
page.SetXY(100, 700);
page.ShowText("Hello, VersyPDF!");
page.EndText();
// Save the document to a file
doc.SaveToFile("hello.pdf");
return 0;
}
إضافة صور وخطوط إلى PDF عبر واجهة برمجة التطبيقات C++
يسهل VersyPDF مفتوح المصدر على مطوري البرمجيات التعامل مع الصور والخطوط داخل مستندات PDF باستخدام واجهة برمجة التطبيقات C++. تدعم المكتبة تضمين صيغ الصور الشائعة، مثل TIFF و JPEG و PNG و BMP وغيرها. وهي مفيدة جدًا لإدراج المحتوى النقطي (مثل الصور الفوتوغرافية والمسحات). يوضح المثال التالي كيف يمكن لمطوري البرمجيات تضمين صورة JPEG في مستند PDF داخل تطبيقات C++.
كيفية تضمين صورة JPEG في مستند PDF داخل تطبيقات C++؟
#include "versypdf.h"
int main()
{
// Create a new PDF document
CPDFDocument doc;
doc.CreateNew();
// Add a new page
CPDFPage page = doc.AppendPage();
// Load an image from a file
CPDFImage image = doc.CreateImageFromFile("my_image.jpg");
// Draw the image on the page
page.DrawImage(image, 100, 500, 200, 150);
// Save the document to a file
doc.SaveToFile("image_example.pdf");
return 0;
}
دمج ملفات PDF ومعالجة الصفحات في PDF عبر C++
تتضمن مكتبة VersyPDF عدة ميزات لدمج مستندات PDF المختلفة ومعالجة الصفحات داخل مستندات PDF عبر مكتبة C++. تشمل المكتبة دعم تدوير الصفحات، التقسيم، الدمج، الإضافة وحذف الصفحات غير المرغوب فيها باستخدام بضع أسطر من الشيفرة فقط. علاوة على ذلك، تدعم أيضًا إدراج أو إلحاق محتوى جديد إلى الصفحات الموجودة بسهولة. إليكم مثالًا مفيدًا يوضح كيفية دمج ملفي PDF، إضافة إشارة مرجعية، وتطبيق التشفير داخل تطبيقات C++.
كيف تدمج ملفي PDF، وتضيف إشارة مرجعية، وتطبق التشفير باستخدام C++؟
#include "versypdf.h"
int main() {
// Load existing PDFs
VersyPDF::Document doc1, doc2;
doc1.LoadFromFile("document1.pdf");
doc2.LoadFromFile("document2.pdf");
// Merge
VersyPDF::Document merged = VersyPDF::Merge({ &doc1, &doc2 });
// Add a bookmark to first page
merged.AddBookmark("Start Here", /*pageIndex=*/0, /*destination=*/VersyPDF::Destination::FitPage);
// Apply encryption: 256-bit AES, require password to open
merged.SetSecurityHandler(VersyPDF::Security::AES256, /*ownerPwd=*/"ownerpass", /*userPwd=*/"userpass", /*permissions=*/VersyPDF::Permission::Print);
// Save
merged.Save("merged_encrypted.pdf");
return 0;
التعامل مع نماذج PDF عبر C++
توفر مكتبة VersyPDF المفتوحة المصدر حلًا كاملاً للعمل مع نماذج PDF. تشمل المكتبة ميزات متعددة للتعامل مع النماذج، مثل إنشاء حقول نموذج جديدة من الصفر، تعبئة نماذج موجودة، قراءة قيم حقول النموذج، والعديد غير ذلك. إليكم مثالًا مفيدًا يوضح كيف يمكن لمطوري البرمجيات تعبئة نموذج PDF بسيط يحتوي على حقل نصي واحد عبر C++.
كيف تملأ نموذج PDF بسيط يحتوي على حقل نصي واحد باستخدام تطبيقات C++؟
#include "versypdf.h"
int main()
{
// Load an existing PDF document with a form
CPDFDocument doc;
doc.LoadFromFile("form.pdf");
// Get the form field by name
CPDFFormField field = doc.GetFormField("my_text_field");
// Set the value of the form field
field.SetValue("This is the new value");
// Save the modified document
doc.SaveToFile("form_filled.pdf");
return 0;
}