【问题标题】:Convert C# Table into PDF file将 C# 表转换为 PDF 文件
【发布时间】:2017-02-06 09:05:35
【问题描述】:

我正在尝试使用 StringWriter 和 HtmlTextWriter 将我的表 (System.Web.UI.WebControls) 放入 pdf,但我得到一个有错误的 pdf 文件。

这是我的代码:

        table.RenderControl(htw);
        HttpContext.Current.Response.Clear();
        HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=Reception.pdf");
        HttpContext.Current.Response.ContentType = "application/pdf";
        HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
        //render the htmlwriter into the response  
        HttpContext.Current.Response.Write(headerTable);
        HttpContext.Current.Response.Write(sw.ToString());
        HttpContext.Current.Response.End();

打开 pdf 文件时出现“加载文档 pdf 时出错”。

【问题讨论】:

  • 错误是什么?为了让任何人帮助您,您必须提供一个完整、最小且可验证的示例。这包括发布可重现的代码以及错误。
  • 打开文件时出现“加载文档 pdf 时出错”。
  • 什么是sw?它包含一个有效的 pdf 字节数组还是什么?
  • sw 它是 StringWriter & htw 它是 HtmlTextWriter。
  • 但它包含什么?

标签: c# html pdf


【解决方案1】:

好吧,iTextSharp 类与使这项工作相关.. 我将代码更改为:

        table.RenderControl(htw);
        StringReader sr = new StringReader(sw.ToString());
        Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f);
        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
        pdfDoc.Open();
        htmlparser.Parse(sr);
        pdfDoc.Close();
        Response.ContentType = "application/pdf";
        Response.AddHeader("content-disposition", "attachment;filename=Reception.pdf");
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.Write(pdfDoc);
        Response.End();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2015-08-09
    • 2011-03-30
    • 2020-12-29
    • 2011-12-23
    • 1970-01-01
    相关资源
    最近更新 更多