导出为PDF没有记录 [英] Export to PDF has no records
问题描述
大家好,
这是来自钦奈的Arun。我正在做一个项目,将Gridview中的数据导出为PDF。一切都很好,每当我点击PDF图片时都会打开一个新的pdf文档但是没有显示任何记录。
我在Gridview中有15条记录和那些记录已使用表适配器显示。我在Gridview中使用了沙子和天空自动格式化选项和颜色,表格单元格宽度,15行完美地显示在PDF中,没有文字。
请指导我是什么?丢失。
谢谢。
Hi All,
This is Arun from chennai. I m doing a project to export the data from Gridview to PDF. Everything was fine and a new pdf document has been opened whenever I click the PDF image but there was no records displayed in it.
I have 15 records in Gridview and those records have displayed using Table Adapter. I used the Sand and Sky Auto Formatting option in Gridview and color, tablecell width, 15 rows are displayed perfectly in PDF without the text.
Please guide me what am I missing.
Thank you.
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.IO;
using System.Text;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Export2PDF.DAL.DataSet1TableAdapters;
using iTextSharp.text;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;
using iTextSharp.text.pdf;
namespace Export2PDF
{
public partial class _Default : System.Web.UI.Page
{
DataTable1TableAdapter ds1 = new DataTable1TableAdapter();
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ShowGridView(object sender, EventArgs e)
{
Bindgrid();
}
public void Bindgrid()
{
gv1.DataSource = ds1.BatchStatusByBatches(Convert.ToDateTime(TextBox1.Text), Label1.Text);
gv1.DataBind();
}
protected void gv1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
gv1.PageIndex = e.NewPageIndex;
Bindgrid();
}
public override void VerifyRenderingInServerForm(Control control)
{
}
protected void PDFExportButton_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=ExportToPDF.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
gv1.AllowPaging = false;
gv1.DataSource = ds1.BatchStatusByBatches(Convert.ToDateTime(TextBox1.Text), Label1.Text);
gv1.DataBind();
gv1.RenderControl(hw);
gv1.HeaderRow.Style.Add("width", "15%");
gv1.HeaderRow.Style.Add("font-size", "10px");
gv1.Style.Add("text-decoration", "none");
gv1.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gv1.Style.Add("font-size", "8px");
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
Response.Clear();
}
}
}
推荐答案
http://www.aspdotnet-suresh.com/2011/04/how-to-export-gridview -data-to-pdf.html [ ^ ]
我们需要从html获取PDF格式文档。
以下代码是在button_click事件下编写的。
There would be some task where we need to Get PDF Format Document from html.
Following code is written under the button_click Event.
protected void btnExportPDF_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AddHeader("contentdisposition", "attachment;filename=Investment_Declaration_Form.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
this.divToPdf.RenderControl(hw);
//where divToPdf is the ContentPlaceHolder Id in which whole html contains.
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 10, 10, 2, 10);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
}
这篇关于导出为PDF没有记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!