تبدیل داده های جدول به 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 خود باید یک پروژه به صورت زیر ایجاد کنید
ابتدای کار باید کتابخانه های زیر را اضافه نمایید
[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 به صورت زیر خواهد بود:
[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 در ASP.NET
سوال یا مشکل داشتید در بخش دیدگاه بنویسید تا پاسخ دهیم.