Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ListView导出为PDF_C#_Asp.net_Listview_Pdf_Itext - Fatal编程技术网

C# 将ListView导出为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

我正在创建一个应用程序,其中我成功地将ListView导出为PDF格式。但是我的PDF有一些问题:PDF的格式非常糟糕

看一看:

我正在使用以下代码导出为PDF:

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();