حالات الاستخدام
يوضح هذا الدليل حالات الاستخدام الواقعية لـ Aspose.PDF FOSS للـ C++، بما في ذلك إنشاء المستندات، تحويل PDF إلى صورة، استخراج النص، التوزيع الآمن، وجمع بيانات AcroForm. المكتبة لا ترتبط إلا بمكتبة C++ القياسية وتحتاج إلى مترجم C++20.
إنشاء المستندات
أنشئ ملف PDF من الصفر عن طريق إضافة صفحات إلى Document جديد وحفظ النتيجة. هذا النمط يشكل أساس إنشاء الفواتير، طباعة الشهادات، وخطوط إنتاج البيانات المالية:
#include <aspose/pdf/document.hpp>
int main() {
Aspose::Pdf::Document doc;
doc.Pages().Add();
doc.SetTitle("Monthly Report");
doc.Save("report.pdf");
}تحويل PDF إلى صورة
قم بتحويل صفحة إلى صورة نقطية لإنشاء صور مصغرة، إخراج جاهز للطباعة، أو خطوط أساس للانحدار البصري. PngDevice، JpegDevice، BmpDevice، وTiffDevice كلٌ منها يعالج صفحة واحدة في كل مرة بدقة معينة:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
Aspose::Pdf::Devices::PngDevice png(Aspose::Pdf::Devices::Resolution(150));
std::ofstream out("page1.png", std::ios::binary);
png.Process(doc.Pages()[1], out);
}استخراج النص والفهرسة
استخراج النص الكامل لمستند باستخدام TextAbsorber لفهرسة البحث، خطوط أنابيب استخراج البيانات، أو التحقق الآلي من المحتوى في مجموعات الاختبار:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/text_absorber.hpp>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("input.pdf");
Aspose::Pdf::Text::TextAbsorber absorber;
absorber.Visit(doc);
std::cout << absorber.Text() << "\n";
}توزيع المستندات الآمن
تشفير مستند باستخدام كلمات مرور منفصلة للمستخدم والمالك قبل التوزيع. كلمة مرور المستخدم مطلوبة لفتح الملف؛ كلمة مرور المالك تتحكم في الأذونات مثل الطباعة واستخراج المحتوى:
#include <aspose/pdf/document.hpp>
int main() {
Aspose::Pdf::Document doc("report.pdf");
doc.Encrypt("user-password", "owner-password",
Aspose::Pdf::Permissions(),
Aspose::Pdf::CryptoAlgorithm::AESx256);
doc.Save("report-secured.pdf");
}AcroForm جمع البيانات
قراءة القيم المرسلة مرة أخرى من نموذج PDF مملوء عبر تكرار Form.Fields() وطباعة اسم كل حقل وقيمته الحالية — مفيد لمعالجة نماذج الطلبات المملوءة دون الحاجة إلى خادم تقديم نماذج منفصل:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/forms/form.hpp>
#include <iostream>
int main() {
Aspose::Pdf::Document doc("submitted-form.pdf");
auto& form = doc.Form();
for (auto* field : form.Fields()) {
std::cout << field->PartialName() << " = " << field->Value() << "\n";
}
}