我需要有一个功能,点击按钮我需要使用C#.net
为数据表中的每条记录生成pdf文件我需要为每个人生成PDF,然后将PDF附件发送给每个人。 PDF的数据被提取到所有学生的数据表中。
我只需要一个功能,我可以为数据表中的每一行生成单独的pdf并发送电子邮件附件。
任何人都可以帮助我并告诉我其他任何软件包都可以在C#.net。
中找到我已经尝试过这种方式但是不起作用,这在数据表中的一行工作之后,它没有返回生成pdf的下一个循环,请查看以下代码。
StringBuilder sb = new StringBuilder();
string companyName = "ASPSnippets";
int orderNo = 2303;
protected void BTNsubmint_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection("server=ServerName; database=Dbname; Integrated Security=True");
SqlDataAdapter da = new SqlDataAdapter("select * from productss", con);
DataTable dt = new DataTable();
da.Fill(dt);
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
//Generate Invoice (Bill) Header.
sb.Append("<table width='100%' cellspacing='0' cellpadding='2'>");
sb.Append("<tr><td align='center' style='background-color: #18B5F0' colspan = '2'><b>Order Sheet</b></td></tr>");
sb.Append("<tr><td colspan = '2'></td></tr>");
sb.Append("<tr><td><b>Order No: </b>");
sb.Append(orderNo);
sb.Append("</td><td align = 'right'><b>Date: </b>");
sb.Append(DateTime.Now);
sb.Append(" </td></tr>");
sb.Append("<tr><td colspan = '2'><b>Company Name: </b>");
sb.Append(companyName);
sb.Append("</td></tr>");
sb.Append("</table>");
sb.Append("<br />");
//Generate Invoice (Bill) Items Grid.
sb.Append("<table border = '1'>");
sb.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
sb.Append("<th>");
sb.Append(column.ColumnName);
sb.Append("</th>");
}
sb.Append("</tr>");
foreach (DataRow row in dt.Rows)
{
sb.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
sb.Append("<td>");
sb.Append(row[column]);
sb.Append("</td>");
}
sb.Append("</tr>");
sb.Append("</table>");
StringReader sr = new StringReader(sb.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Invoice_" + orderNo + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
Response.End();
}
}
}
答案 0 :(得分:0)
这适用于数据表中的一行
问题是Response.End()
命令 - 它退出了你的脚本,所以不会处理第二行和下一行。
请参阅此问题:Convert HTML to PDF in .NET在没有Response.End
的情况下重写代码。调试代码以查看问题的实际位置。