C# 将ListView导出为PDF
我正在创建一个应用程序,其中我成功地将ListView导出为PDF格式。但是我的PDF有一些问题:PDF的格式非常糟糕 看一看: 我正在使用以下代码导出为PDF:C# 将ListView导出为PDF,c#,asp.net,listview,pdf,itext,C#,Asp.net,Listview,Pdf,Itext,我正在创建一个应用程序,其中我成功地将ListView导出为PDF格式。但是我的PDF有一些问题:PDF的格式非常糟糕 看一看: 我正在使用以下代码导出为PDF: protected void ExportToPdf_Click(object sender, EventArgs e) { string File = "PDFCollegeDetails"; var result = GetData().ToList(); ExportLi
protected void ExportToPdf_Click(object sender, EventArgs e)
{
string File = "PDFCollegeDetails";
var result = GetData().ToList();
ExportListToPDF(result, File);
}
private void ExportListToPDF(List<CollegeDetail> result, string File)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=CollegeDetailsInPdf.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridView gridView = new GridView();
gridView.DataSource = result;
gridView.DataBind();
gridView.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 50f, 50f, 50f, 50f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();
gridView.AutoGenerateColumns = true;
}
protectedvoid exporttopf\u单击(对象发送方,事件参数e)
{
string File=“PDFCollegeDetails”;
var result=GetData().ToList();
ExportListToPDF(结果、文件);
}
私有void ExportListToPDF(列表结果,字符串文件)
{
Response.ContentType=“application/pdf”;
AddHeader(“内容处置”、“附件;文件名=CollegeDetailsInPdf.pdf”);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw=新的StringWriter();
HtmlTextWriter hw=新的HtmlTextWriter(sw);
GridView GridView=新的GridView();
gridView.DataSource=结果;
gridView.DataBind();
gridView.RenderControl(硬件);
StringReader sr=新的StringReader(sw.ToString());
文档pdfDoc=新文档(PageSize.A4、50f、50f、50f、50f);
HTMLWorker htmlparser=新的HTMLWorker(pdfDoc);
GetInstance(pdfDoc,Response.OutputStream);
pdfDoc.Open();
解析(sr);
pdfDoc.Close();
响应写入(pdfDoc);
Response.End();
gridView.AutoGenerateColumns=true;
}
您正在使用iText吗?您应该提到您正在使用的特定库。@PanagiotisKanavos是的,我已经在顶部提到过。您正在使用A4大小的人像页面,并绘制一个17列的表格。。。。那么,您希望得到什么呢?您可以使用CSS样式设置iTextSharp的输出样式,也可以使用行Response.Write(pdfDoc)
实际上会破坏PDF,应该删除它,因为它不符合大多数人的想法。幸运的是,PDF原谅了文件末尾的垃圾邮件。
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=ZoneWiseReport.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
GridViewZoneReport.AllowPaging = false;
this.BindGridView();
GridViewZoneReport.DataBind();
GridViewZoneReport.RenderControl(hw);
GridViewZoneReport.HeaderRow.Style.Add("width", "15%");
GridViewZoneReport.HeaderRow.Style.Add("font-size", "10px");
GridViewZoneReport.Style.Add("text-decoration", "none");
GridViewZoneReport.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
GridViewZoneReport.Style.Add("font-size", "8px");
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A2, 7f, 7f, 7f, 0f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.Write(pdfDoc);
Response.End();