مشخصات مقاله
ساخت دانلود PDF/Image از یک وب سایت-ساخت PDF/Image Download یک Webpage
کلیه حقوق مادی و معنوی این مقاله متعلق به آموزشگاه تحلیل داده می باشد و هر گونه استفاده غیر قانونی از آن پیگرد قانونی دارد.
ساخت دانلود PDF/Image از یک وب سایت
قابلیت دانلود، بخشی از وب سایت های متفاوت است. برای پیاده سازی دانلود به صورت excel یا PDF روش های متعددی وجود دارد.دانلود به صورت excel ساده است، اما برای دانلود به صورت PDF درگیر CSS و مسائل دیگر می شویم.
من خیلی بر روی این موضوع تحقیق کردم و در آخر متوجه شدم با استفاده از CutyCapt.exe بسیار راحت تر می توان از یک سایت به صورت PDF عکس گرفت.
CutyCapt چیست؟
CutyCapt یک برنامه میان پلت فرم (cross-platform) با خط فرمان (command-line) است، برای عکس گرفتن از اجرای WebKit یک صفحه وب در قالب bitmap و یا وکتور. انواعی مانند SVG، PDG، PS، PNG، JPEG، TIFF، GIF و BMP. IECapt نیز ابزاری مشابه است که مبتنی بر Internet Explorer می باشد.
نیازمندی ها
تولید PDF با اجرای فایلی به نام CutyCapt.exe انجام می شود. باید این فایل exe را دانلود کرده و به solution اضافه کنید.
در صورتی که در حال کار بر روی یک پروژه ASP.NET هستید، فایل exe را با redirection یک صفحه، فراخوانی کنید. این صفحه خالی خواهد بود و فقط کد زیر را در قسمت Page Load قرار می دهیم.
پیاده سازی
1. ایجاد یک فایل و مسیر: برای ساخت یک نام فایل یکتا، ترجیح می دهم از GUID استفاده کنم (این انتخاب توسعه دهندگان براساس منطق و نیاز است). سپس Url فایل به رشته اضافه می شود.
string filename = Guid.NewGuid() + ".pdf"; //unique file name
// url of the pdf file name
string url = “http://example.org” +"/CutyCapt/" + filename;
1. محل اجرای فایل قابل اجرا: محل CutyCapt.exe به یک رشته داده می شود.
//location of Executable
string cutycaptLocation = "D:\\CutyCapt";
2. ایجاد Command: برای ایجاد یک Command در ASP.NET، از شی ProcessStartInfo استفاده می کنیم.
پارامترهای مختلفی در قالب یکسری propertie به شی نسبت داده می شود:
CreateNoWindow
WorkingDirectory
FileName
Arguments
o لینک صفحه ای که باید تبدیل به PDF شود.
o فولدر مقصد
UseShellExecute
// Command for execution
System.Diagnostics.ProcessStartInfo pi = new System.Diagnostics.ProcessStartInfo();
pi.CreateNoWindow = false;
pi.WorkingDirectory = cutycaptLocation;
pi.FileName = cutycaptLocation + "\\CutyCapt.exe";
pi.Arguments = "--url=" + link + " --out-format=pdf -out=" + System.IO.Path.GetFullPath(Server.MapPath("~/CutyCapt")) + "\\" + filename;
pi.UseShellExecute = false;
3. اجرای فرایند: از پردازش یک شی در ASP.NET برای اجرای یک فرایند، براساس اطلاعات ساخته شده، استفاده می شود.
try {
// Start the process with the info we specified.
// Call WaitForExit and then the using statement will close.
using(System.Diagnostics.Process exeProcess = System.Diagnostics.Process.Start(pi)) {
exeProcess.WaitForExit();
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
}
انتقال به PDF: پس از ساخته شدن PDF باید مرورگر به لینک PDF منتقل شود و PDF ساخته شده را بارگذاری کنیم.
Response.Redirect(url);
فایل PDF ساخته شده برای صفحه مورد نظر، آماده ذخیره شدن در سیستم است. براساس تجربه من، این ساده ترین روش ساخت PDF است.