پرسشهای متداول
مدل مجوز برای Aspose.PDF FOSS for C++ چیست؟
Aspose.PDF FOSS for C++ تحت مجوز MIT است. استفاده از آن در محصولات تجاری و غیرتجاری رایگان است و نیازی به کلید فعالسازی، محدودیت تماس API، یا توافقنامه تجاری نیست.
چگونه Aspose.PDF FOSS for C++ را به یک پروژه CMake اضافه کنم؟
مخزن را به صورت vendor یا clone به درخت پروژه خود اضافه کنید، به عنوان یک زیرپوشه اضافه کنید، و هدف کتابخانه استاتیک را لینک کنید:
add_subdirectory(aspose.pdf-foss-for-cpp)
target_link_libraries(your_app PRIVATE aspose_pdf_foss)کدام نسخههای کامپایلر و CMake مورد نیاز هستند؟
یک کامپایلر C++20 — clang 16+، gcc 13+ یا MSVC 2022 17.5+ — و CMake 3.22 یا بالاتر. ساخت همچنین فقط در زمان ساخت به Python 3 نیاز دارد تا خطوط قلم Standard-14 بستهبندیشده را تولید کند.
آیا کتابخانه هیچ وابستگی زمان اجرا دارد؟
شماره. Aspose.PDF FOSS برای C++ فقط به کتابخانه استاندارد C++ لینک میشود — در زمان اجرا نیازی به وابستگیهای شخص ثالث PDF، تصویر یا فشردهسازی نیست.
کدام قالبها را Aspose.PDF FOSS برای C++ میتواند بخواند و صادر کند؟
این ابزار اسناد PDF بومی را باز و ذخیره میکند. صفحات رندر شده میتوانند به Bmp، Jpeg و Tiff از طریق BmpDevice، JpegDevice و TiffDevice صادر شوند و به متن ساده از طریق TextDevice. محتوای SVG میتواند از طریق SvgLoadOptions به یک سند وارد شود.
چگونه یک PDF موجود را باز کنم و تعداد صفحات آن را بررسی کنم؟
#include <aspose/pdf/document.hpp>
Aspose::Pdf::Document doc("input.pdf");
std::size_t pages = doc.Pages().Count();چگونه متن را از یک سند PDF استخراج کنم؟
از TextAbsorber استفاده کنید، به سند مراجعه کنید، سپس متن جمعآوریشده را بخوانید:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/text_absorber.hpp>
Aspose::Pdf::Document doc("input.pdf");
Aspose::Pdf::Text::TextAbsorber absorber;
absorber.Visit(doc);
std::string text = absorber.Text();چگونه یک صفحه PDF را به تصویر رندر کنم؟
از یک کلاس دستگاه مانند PngDevice با هدف Resolution استفاده کنید، سپس یک صفحه واحد را به یک جریان خروجی پردازش کنید:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/png_device.hpp>
#include <aspose/pdf/resolution.hpp>
#include <fstream>
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);چگونه یک سند PDF را رمزنگاری کنم؟
تابع Document.Encrypt() را با یک گذرواژه کاربر، یک گذرواژه مالک، یک مقدار Permissions و یک CryptoAlgorithm فراخوانی کنید:
#include <aspose/pdf/document.hpp>
Aspose::Pdf::Document doc("input.pdf");
doc.Encrypt("user-password", "owner-password",
Aspose::Pdf::Permissions(), Aspose::Pdf::CryptoAlgorithm::AESx256);
doc.Save("encrypted.pdf");RC4x40، RC4x128، AESx128 و AESx256 همگی از طریق enum CryptoAlgorithm در دسترس هستند. Document.Decrypt() رمزنگاری را از یک سند که قبلاً باز شده است، حذف میکند.
چگونه مقادیر فیلد AcroForm را بخوانم یا پر کنم؟
از سند Form.Fields() را پیمایش کنید و مقدار هر فیلد را بر اساس نام جزئی آن بخوانید یا تنظیم کنید:
#include <aspose/pdf/document.hpp>
#include <aspose/pdf/forms/form.hpp>
Aspose::Pdf::Document doc("application_form.pdf");
auto& form = doc.Form();
for (auto* field : form.Fields()) {
if (field->PartialName() == "applicant_name") {
field->Value("Jane Doe");
}
}
doc.Save("application_filled.pdf");آیا محدودیتهای شناختهشدهای در نسخهٔ فعلی وجود دارد؟
بله. XmpValue — نوع مقداری که برای ورودیهای متادیتای XMP بازگرداندهشده از Document.Metadata() استفاده میشود — helperهای بررسی نوع IsDateTime(), IsField(), IsNamedValue(), IsRaw(), IsNamedValues() و IsStructure() را ارائه میدهد که در حال حاضر استاب هستند و همیشه false را برمیگردانند. کدی که بر پایه این بررسیها شاخه میزند نمیتواند انواع مقادیر XMP را تمیز تفکیک کند. به جای آن از بررسیهای پیادهسازیشده استفاده کنید — IsString(), IsInteger(), IsDouble(), IsArray() — یا وقتی نوع مقدار از پیش از زمینه معلوم است، بهصورت مستقیم accessorهای مطابقتدار (ToStringValue(), ToInteger(), ToDouble(), ToArray()) را فراخوانی کنید. تعداد کمی از انواع داخلی سطح پایین نیز سازندههای استاب دارند که توسط کدهای معمول پردازش سند استفاده نمیشوند.
کد منبع و ردیاب اشکالات کجا قرار دارند؟
کد منبع و ردیاب مشکلات در https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-Cpp در دسترس است.