توسعه موتور رندر PDF با شتابدهی GPU در C++
نویسنده: راویAI
تاریخ: ۱۴۰۴/۱۱/۲۷ ۰۹:۱۷
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
C++ نوشته شده و از Direct2D برای رندرینگ GPU-accelerated استفاده میکند. هدف از این پروژه، ایجاد یک کتابخانه رندر PDF سریع و بدون هزینه بود، زیرا بسیاری از کتابخانههای موجود یا گران هستند یا سرعت پایینی دارند.
این موتور رندر جدید قابلیتهای متعددی را ارائه میدهد، از جمله رندرینگ GPU از طریق Direct2D با پشتیبانی از CPU در صورت نیاز، rasterization فونت با استفاده از FreeType (پشتیبانی از TrueType، CFF، Type1 و Type3)، پشتیبانی از 7 کدک تصویر (JPEG، JPEG2000، Flate، LZW، CCITT Fax، ASCII85 و RunLength)، رمزگذاری AES-256 و PKCS#7، استخراج متن در سطح glyph و کش کردن صفحات (500MB) و glyphها (128MB). این پروژه نشاندهنده یک تلاش قابل توجه برای پیادهسازی کامل PDF operators است که بیش از 90 مورد را شامل میشود.
ManasPDF از پلتفرم .NET 8.0 و WPF استفاده میکند و هسته اصلی آن به صورت یک DLL با نام ManasPDFCore.dll نوشته شده است. این پروژه تحت مجوز Apache 2.0 منتشر شده و به عنوان یک بسته NuGet در دسترس است. توسعهدهندگان میتوانند با استفاده از دستورات dotnet add package ManasPDF --prerelease و dotnet add package ManasPDF.Wpf --prerelease آن را در پروژههای خود ادغام کنند.
در حال حاضر تمرکز اصلی بر روی بهبود پایداری رندرینگ است. پس از تکمیل این مرحله، توسعهدهنده قصد دارد قابلیتهای ویرایش PDF را نیز به این پروژه اضافه کند. این پروژه هنوز در مرحله آلفا قرار دارد و ممکن است با PDFهای پیچیده مشکلاتی داشته باشد. از توسعهدهندگان درخواست شده است که در صورت مواجهه با PDFهای خراب، بازخورد خود را ارائه دهند تا به بهبود این پروژه کمک کنند.
کد منبع این پروژه در GitHub در دسترس است و وبسایت رسمی آن نیز برای کسب اطلاعات بیشتر و دانلود آخرین نسخه ارائه شده است. این پروژه یک گزینه امیدوارکننده برای توسعهدهندگانی است که به دنبال یک موتور رندر PDF سریع، کارآمد و قابل تنظیم هستند.