آموزش کامل استفاده از پکیج QuestPDF برای تولید خروجی PDF در پروژههای Web API
آموزش کامل استفاده از پکیج QuestPDF برای تولید خروجی PDF در پروژههای Web API
مقدمه
تولید فایلهای PDF یکی از نیازهای اساسی در بسیاری از پروژههای Web API است؛ مخصوصاً در بخشهای گزارشگیری، تولید فاکتور، رسید پرداخت، فرمها، بلیتها یا خروجی مستندات.
کتابخانه QuestPDF یکی از بهترین گزینههای مدرن و قدرتمند برای تولید اسناد PDF در محیط داتنت محسوب میشود. این کتابخانه با ارائه یک API ساده، ساختاری شبیه به طراحی UI دارد و بهراحتی میتوان قالبهای پیچیده را با آن ایجاد کرد.
این مقاله به معرفی QuestPDF، نحوه نصب، پیادهسازی در پروژههای Web API و نکات کلیدی توسعه میپردازد.
معرفی QuestPDF
QuestPDF یک کتابخانه متنباز و مبتنی بر داتنت است که امکان تولید PDF با ساختاری کاملاً برنامهنویسیشده را فراهم میکند. این کتابخانه برخلاف سایر ابزارها مانند iText یا PdfSharp، رویکردی Component-Based دارد و طراحی سند را مشابه ساختار صفحات UI انجام میدهد.
ویژگیهای مهم:
پشتیبانی کامل از .NET 6، .NET 7 و نسخههای جدید
طراحی کاملاً Fluent و مدرن
پشتیبانی از RTL
پشتیبانی از فونت فارسی
سرعت بالا و حافظه کم
مناسب برای تولید گزارش، فاکتور، قرارداد، لیستها و نمودارهای ساده
نصب QuestPDF
برای نصب کتابخانه کافی است پکیج زیر را اضافه کنید:
یا در فایل .csproj:
<PackageReference Include="QuestPDF" Version="2024.2.0" />
ساخت اولین سند PDF
QuestPDF یک ساختار اصلی با نام Document دارد. برای ساخت یک سند، باید یک کلاس ایجاد کنید که از این اینترفیس ارثبری کند:
استفاده از سند در Web API
برای تولید فایل PDF در کنترلر Web API، ابتدا باید یک نمونه از کلاس Document بسازید و سپس خروجی آن را به صورت byte[] برگردانید.
این اکشن یک فایل PDF تولید کرده و بهصورت دانلود برای کاربر ارسال میکند.
افزودن فونت فارسی
برای پشتیبانی کامل از زبان فارسی، باید یک فونت فارسی معرفی کنید:
و سپس در سند:
col.Item().Text("متن فارسی تست").FontFamily("Vazir");
نمونه عملی: ساخت جدول در PDF
و استفاده در API:
نکات مهم و حرفهای
۱) استفاده از Layoutها
QuestPDF از Layoutهایی مانند:
Row
Column
Grid
Table
Stack
پشتیبانی میکند.
۲) تولید PDF در پسزمینه
میتوان خروجی PDF را در Queue یا Background Service تولید کرد.
۳) محدودیتها
نمودارهای پیچیده نیازمند رندر تصویر هستند.
طراحی پیچیده نیازمند تجربه در Layout بندی است.
اگر تمایل به یادگیری اصولی و حرفه ای برنامه نویسی دارید دوره جامع برنامه نویسی وب را مشاهده کنید
نتیجهگیری
QuestPDF یکی از بهترین گزینههای تولید PDF در Web API است. این کتابخانه با طراحی بسیار ساده، سرعت بالا و پشتیبانی عالی از RTL و فونت فارسی، میتواند جایگزین مناسبی برای بسیاری از ابزارهای سنگین و تجاری مانند iText باشد.
پیادهسازی آن در Web API نیز بسیار ساده و قابل توسعه است و میتوان انواع گزارشها، جداول، فاکتورها و اسناد رسمی را با آن تولید کرد.
۱. مستندات رسمی QuestPDF
https://www.questpdf.com/documentation
2. GitHub رسمی پروژه
https://github.com/QuestPDF/QuestPDF
