TGViewer
C# Geeks (.NET) C# Geeks (.NET) @csharpgeeks · 550 subscribers
Post #486 159
گزارش‌دهی 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 در تیمم می‌سپارم تا گزارش را مطابق نیاز استایل‌دهی کند. 🎨
More from @csharpgeeks
  1. Sep 22, 2026یه مدتی قراره از دنیای NET. فاصله بگیرم، چون وقتشه برم سربازی. راستش نمیدونم این مدت رو چج…
  2. Sep 20, 2026🔥 حالا مشکل اصلی: Alert Storm فرض کن Database از دسترس خارج شده. ۱۰۰ Pod داری. هر Pod می‌…
  3. Sep 20, 2026🚨 طراحی سیستم Monitoring و Alerting در یک سیستم بزرگ فرض کن ساعت ۳ صبح است. سیستم شما با…
  4. Sep 19, 2026#Engineering_Leadership تصمیم نگرفتن هم یک تصمیم است یه چیز عجیب توی تیم‌های مهندسی: گاهی…
  5. Sep 19, 2026☑ چک‌لیست آماده‌سازی تیم، فرایندها و زیرساخت برای توسعه با AI توجه: هیچ چک‌لیستی جهان‌شمول…
  6. Sep 19, 2026📌پایان یک انتظار طولانی: اعتبارسنجی ناهمگام (Async Validation) در NET 11.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →