API رایگان PDF در C++ برای خواندن، نوشتن، ادغام و رمزگذاری فایلهای PDF.
پیشرو در کتابخانه منبع باز C++ برای تولید PDF برای C و C++. این کتابخانه مجموعه کاملی از ویژگیها را برای خواندن، ایجاد، ویرایش، دستکاری و ایمنسازی اسناد PDF در محیطهای چندپلتفرمی ارائه میدهد.
کتابخانه VersyPDF چیست؟
در دنیای توسعه نرمافزار، توانایی تولید و دستکاری اسناد PDF یک نیاز رایج است. VersyPDF یک کتابخانه قدرتمند و منبع باز C++/C است که مجموعهای جامع از ابزارها را برای کار با فایلهای PDF فراهم میکند. چه در حال ساخت یک سیستم مدیریت اسناد پیچیده باشید و چه فقط نیاز به افزودن قابلیت خروجی PDF به برنامهتان داشته باشید، VersyPDF تمام نیازهای شما را پوشش میدهد. این کتابخانه کنترل بسیار دقیقی بر متن، گرافیک، چیدمان، قلمها و رنگها ارائه میدهد؛ مناسب برای برنامههایی که به خروجی دقیق نیاز دارند (مثلاً نشر، تولید خودکار اسناد). این کتابخانه یک راهحل کامل برای کار با فرمهای PDF فراهم میکند. میتوانید فرمهای موجود را پر کنید، مقادیر فیلدهای فرم را بخوانید و حتی فیلدهای فرم جدید را از ابتدا ایجاد کنید.
VersyPDF یک کتابخانه منبع باز و صنعتی برای PDF به زبانهای C و C++ است که توسط Sybrex Systems توسعه یافته است. هدف آن ارائه مجموعه کامل ابزارها به توسعهدهندگان برای خواندن، ایجاد، ویرایش، دستکاری و ایمنسازی اسناد PDF در محیطهای چندسکویی است. این کتابخانه دارای مجموعهای غنی از ویژگیهاست که آن را به یک راهحل چندمنظوره برای طیف وسیعی از وظایف مرتبط با PDF تبدیل میکند. کتابخانه از خواندن و نوشتن اسناد PDF، ایجاد و دستکاری محتوا، جاسازی تصاویر در اسناد PDF، مدیریت فونت و متن، پشتیبانی بهتر از رنگ و گرافیک، ایجاد و ویرایش نشانکها، پشتیبانی از رمزنگاری PDF، بهینهسازی فایلهای PDF و غیره پشتیبانی میکند. با مجموعه جامع ویژگیها و API آساناستفاده، 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 ایجاد کنیم و صفحهای به آن اضافه کنیم از طریق API 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 از طریق API C++
VersyPDF متن باز کار را برای توسعهدهندگان نرمافزار آسان میکند تا به راحتی با تصاویر و قلمها در داخل اسناد PDF با استفاده از API 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 را ادغام کنید، یک نشانک (Bookmark) اضافه کنید و رمزنگاری را در برنامههای 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;
}