تبدیل داده های جدول به Pdf در ASP.NET

تبدیل داده های جدول به Pdf در ASP.NET :
در این مقاله می خواهیم با استفاده از کدهای سی شارپ اطالعاتی که در جدول دیتابیس مان داریم به صورت
pdf رخوجی بگیریم بعضی وقت ها الزم میشه شما از مواردی که در دیتابیستان دارید یک بک آپ داشته باشید
یا مثال فروشگاه دارید میخواهید لیست فروش را به مدیر فروشگاه بدهید این گزینه بهترین راه استدر sql یک جدول به صورت زیر ایجاد کنید:

[php]
CREATE TABLE [dbo].[tbl_EmpDetails](
[EmpID] [int] IDENTITY(1,1) NOT NULL,
[EmpName] [varchar](100) NOT NULL,
[EmpAddress] [nvarchar](100) NOT NULL,
[Mobile] [varchar](20) NOT NULL,
[EmailID] [nvarchar](50) NOT NULL,
[DOB] [varchar](50) NOT NULL,
CONSTRAINT [PK_tbl_EmpDetails] PRIMARY KEY CLUSTERED
(
[EmpID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY
= OFF, ALLOW_ROW_LOCKS = ON,
ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO [/php]

اطلاعات زیر را به جدول خود اضافه نمایید

[php]
INSERT INTO tbl_EmpDetails Values(‘Anil’,’Mumbai’,1233456789,’anil@gmail.com’,’1989-
۱۰-۱۰’)
INSERT INTO tbl_EmpDetails Values(‘Suresh’,’Mumbai’,1233456789,’suresh@gmail.com’,’
۱۹۸۹-۱۰-۱۰’)
INSERT INTO tbl_EmpDetails Values(‘Ramesh’,’Mumbai’,1233456789,’Ramesh@gmail.co
m’,’1989-10-10′) [/php]

حاال داخل visual خود باید یک پروژه به صورت زیر ایجاد کنید
 
جدول به pdf
 
ابتدای کار باید کتابخانه های زیر را اضافه نمایید

[php]
using System.Text;
using System.Data.SqlClient;
using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html.simpleparser;
using System.Data;
using System.Configuration;
using System.IO; [/php]

یک رویداد درست می کنید و گرید خود را داخل رویداد داینامیک می کنید و بهش اطالعات جدول را می
دهید

[php]
protected void BindGrid() {
DataTable dt = new DataTable();
string queryString = "select * from tbl_EmpDetails";
string conn = ConfigurationManager.ConnectionStrings["TestConnectionString"].ToString();
var table = new DataTable();</p>
<p dir="ltr">using(SqlConnection sql = new SqlConnection(conn)) {
SqlCommand command = new SqlCommand(queryString, sql);
sql.Open();
SqlDataAdapter da = new SqlDataAdapter(command);
da.Fill(table);
sql.Close();
da.Dispose();
}
dt = table;
GridView1.DataSource = dt;
GridView1.DataBind();
Session["Data"] = dt;
}[/php]

حاال باید رویداد خود را در pageload صدا بزنید به صورت زیر:
 

[php]
public partial class EmployeeList : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
BindGrid();
} [/php]

خروجی به صورت زیر خواهد بود :
 
جدول به pdf
 
کد مربوط به نمایش PDF به صورت زیر خواهد بود:

[php]
protected void ExportPDf_Click(object sender, EventArgs e) {
try {
string Err = string.Empty;
DataTable dt = (DataTable) Session["Data"];
Document pdfDocument = new Document();
StringBuilder sb = new StringBuilder();
//pdfDocument Content in HTml Format
if (dt.Rows.Count > 0) {
sb.Append("<html>< head ><title></title></head><body>");
string strActualRecords = string.Empty;
strActualRecords = "<table style=\"width:100%;font-size: 9pt; font-
family: verdana; \" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">";
strActualRecords += "<tr><td style=\"width: 5%;white-
space: nowrap;\">EMPID</td><td style=\"width: 5%;\">EmpName</td><td style=\"width: 5
%;\">EmpAddress</td>" + "<td style=\"width: 5%;\">Mobile</td>" + "<td style=\"width: 5
%;\">EmailID</td>" + "< td style =\"width: 5%;\">DOB</td></tr>";
for (int i = 0; i < dt.Rows.Count; i++) {
strActualRecords += "<tr>";
strActualRecords += "<td style=\"width: 5%;\">" + dt.Rows[i]["EMPID"].ToString
() + "</td>" + "<td style=\"width: 5%;\">" + dt.Rows[i]["EmpName"].ToString() + "</td>" +
"<td style=\"width: 5%;\">" + dt.Rows[i]["EmpAddress"].ToString() + "</td>" + "<td style=
\"width: 5%;\">" + dt.Rows[i]["Mobile"].ToString() + "</td>" + "<td style=\"width: 5%;\">"
+ dt.Rows[i]["EmailID"].ToString() + "</td>" + "<td style=\"width: 5%;\">" + dt.Rows[i]["
DOB"].ToString() + "</td>";
strActualRecords += "</tr>";
}
strActualRecords += "</table>";</p>
<p dir="ltr">sb.Append(strActualRecords);
sb.Append("</body></html>");
}
string pdffilename = DateTime.Now.Ticks.ToString() + ".pdf";
PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDocument, HttpContext.Current.Resp
onse.OutputStream);
pdfDocument.Open();
String htmlText = sb.ToString();
StringReader str = new StringReader(htmlText);
HTMLWorker htmlworker = new HTMLWorker(pdfDocument);
htmlworker.Parse(str);
pdfWriter.CloseStream = false;
pdfDocument.Close();
//Download Pdf
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-
Disposition", "attachment; filename=" + pdffilename);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDocument);
Response.Flush();
Response.End();
} catch (Exception ex) {
throw ex;</p>
<p dir="ltr">}
}</p>
<p dir="ltr">[/php]

باید datatable مربوطه را در یک session نگه داریم و با استفاده از یک stringbuilder آن را به صورت رشته در بیاوریم و بعد فایل pdf را بخواند
 
 
جدول به pdf
 
در نهایت خروجی به صورت زیر خواهد بود:
جدول به pdf
تبدیل داده های جدول به pdf در ASP.NET
 
سوال یا مشکل داشتید در بخش دیدگاه بنویسید تا پاسخ دهیم.

مطلب مفیدی برای شما بود ؟ پس به اشتراک بگذارید برای دوستانتان

codesrcReza

109 مطلب منتشر شده

درباره این مطلب نظر دهید !