گزارشدهی PDF انعطافپذیر در NET. با استفاده از Razor Views 📄✨
هرگز فراموش نمیکنم زمانی که روی پروژهای کار میکردم که نیاز به تولید گزارشهای فروش هفتگی برای یک مشتری داشت. راهحل اولیه شامل فرآیندی خستهکننده بود: خروجی گرفتن از دادهها، دستکاری آنها در spreadsheets، و ساخت PDFها به صورت دستی. 😓 این روش وقتگیر، پرخطا و انرژیبر بود. من میدانستم که حتماً باید راه بهتری وجود داشته باشد. 💡
در این زمان بود که قدرت ترکیب Razor views با تبدیل HTML به PDF را کشف کردم. شما کنترل بیشتری روی فرمتدهی سند دارید. میتوانید از CSS مدرن برای استایلدهی HTML استفاده کنید، که هنگام خروجی گرفتن به PDF اعمال خواهد شد. این کار همچنین در ASP.NET Core به راحتی قابل پیادهسازی است. 🖥
📌 در این مقاله، موارد زیر را پوشش میدهیم:
• درک Razor views
• تبدیل Razor views به HTML
• تبدیل HTML به PDF در .NET
• ترکیب همه چیز با Minimal APIs
بیایید شروع کنیم!
🚀Razor Views
یک قالب HTML با markupهای تعبیهشده Razor است. Razor به شما اجازه میدهد تا کد NET. را داخل یک صفحه وب بنویسید و اجرا کنید. فایلهای Views دارای پسوند ویژه cshtml. هستند و معمولاً در ASP.NET Core MVC، Razor Pages و Blazor استفاده میشوند.
با این حال، میتوانید Razor views را در یک class library یا پروژه ASP.NET Core Web API تعریف کنید.
میتوانید از Model برای ارسال داده به Razor view استفاده کنید. داخل فایل .cshtml، نوع مدل را با کلمه کلیدی model@ مشخص میکنید. در مثال زیر، مشخص کردهایم که کلاس Invoice مدل این view است. میتوانید به نمونه مدل از طریق property Model در view دسترسی داشته باشید.
این همان view به نام InvoiceReport.cshtml است که برای تولید یک فاکتور PDF استفاده خواهیم کرد.
میتوانید CSS را در Razor view به صورت inline بنویسید یا به یک stylesheet ارجاع دهید. من از فریمورک Tailwind CSS استفاده میکنم که CSS به صورت inline است. معمولاً این کار را به یک front-end engineer در تیمم میسپارم تا گزارش را مطابق نیاز استایلدهی کند. 🎨