یکی از اصلی ترین بخشهای سیستمهای نرم افزاری ، گزارشات آنها میباشد. مدیران و استفاده کنندگان از سیستمهای نرم افزاری همواره علاقه دارند یک نتیجه شسته رفته و سریع از محاسبات و ... داشته و خود را درگیر ورود و استفاده از سیستمها ننمایند. گزارشات میتوانند بر روی صفحه مانیتور یا ... ارائه گردند ، ولی اگر پای صفحه بندی و چاپ و... به میان بیاید ، خواهید دید که یک خروجی ساده با فرمت PDF می تواند 80% افراد را راضی نماید .
بسمه تعالی
خروجی PDF در پروژه های ASP.NET MVC
یکی از اصلی ترین بخشهای سیستمهای نرم افزاری ، گزارشات آنها میباشد. مدیران و استفاده کنندگان از سیستمهای نرم افزاری همواره علاقه دارند یک نتیجه شسته رفته و سریع از محاسبات و ... داشته و خود را درگیر ورود و استفاده از سیستمها ننمایند. گزارشات میتوانند بر روی صفحه مانیتور یا ... ارائه گردند ، ولی اگر پای صفحه بندی و چاپ و... به میان بیاید ، خواهید دید که یک خروجی ساده با فرمت PDF می تواند 80% افراد را راضی نماید .
در این مقاله به بررسی چگونگی ایجاد یک خروجی PDF از View های ASP.NET MVC خواهیم پرداخت .
در ابتدا باید بدانیم که برای اینکار باید از یک Library بیرون از VS.NET استفاده کنیم و همانطور که میدانید انتخابهای متنوعی چه به صورت مجانی و چه به صورت Commercial برای ما وجود دارد . اصولن Nuget به عنوان یک مرجع تقریبا قابل اعتماد ، می تواند جهت رسیدن به این هدف به ما کمک کند. در این مبحث از یک Library سبک و ساده به نام Rotativa جهت تولید خروجی PDF از اسناد خود استفاده مینماییم.
قدم اول : ایجاد یک ASP.NET MVC Project میباشد ، لذا مانند معمول یک پروژه به نام DownloadPDF ایجاد می نماییم.
نوع پروژه را به شکل زیر انتخاب کنید .
پس از ایجاد شده پروژه ، اولین حرکت نصب و قرار گرفتن این Rotativa در Reference های پروژه میباشد. برای اینکار میتوان از Package Manager Console یا از Nuget UI استفاده نمود . به شکل زیر عمل کنید .
در محیط Command از دستور زیر استفاده کنید .
Install-Package Rotativa
یا از طریق Nuget به شکل زیر عمل کنید .
به هر صورت که مایلید به اشکال بالا این Library را نصب کنید .
در Model Folder یک Entity به شکل زیر ایجاد کنید .
حالا در HomeController باید یک Action Method جدید به نام DownloadPDF آماده نماییم .
در اصل یک Instant از کلاس درون Model گرفته ایم و فیلد Content را مقدار دهی کرده ایم . یک تصویر هم از طریق Logofile که درون Image Folder قرار دارد به آن اختصاص داده ایم. حال با استفاده از متد ViewAsPdf به سادگی محتوای مورد نظر را نمایش میدهیم.
خوب حالا وقت Index View است تا ایجاد گردد. بدنه Index View خیلی ساده فقط این متد را صدا خواهد زد . به شکل زیر عمل کنید.
همانطور که مشخص است ، این ابزار به یک View برای تولید فایل نیاز دارد که در اینجا نام آنرا GeneratePDFقرار داده ایم و در Action Method این ابزار درون متد Viewaspdf از آن استفاده میکند . بدنه این View هم مشابه زیر است .
خوب تقریبا کار تمام است . با کلیک بر روی Link در View در Runtime یک PDF به نام firstpdf مطابق اسمی که در Controller وجود دارد ، تولید خواهد شد. نتیجه به شکل زیر خواهد بود .
و با کلیک روی لینک فایل PDF تولید و به شکل زیر خواهد بود.
دقت کنید که من DLL های پروژه را حذف میکنم تا حجم کم شود ، برای اجرای پروژه باید مجددا اجازه دهید Nuget همه را Download کند.
دانلود سورس پروژه