从视图Mvc 3生成pdf

时间:2013-02-05 14:08:51

标签: c# asp.net-mvc-3 itext

今天我收到了一个从视图中生成pdf的任务....因为我是编程的初学者...有人会帮我完成这个任务..传递一些提示..从哪里开始研究。你很难完成这项任务。 我试着在这个链接中使用一个例子 http://www.codeproject.com/Articles/260470/PDF-reporting-using-ASP-NET-MVC3 但它总是在代码的这一部分引发错误

public byte[] Render(string htmlText, string pageTitle)
{
    byte[] renderedBuffer;

    using (var outputMemoryStream = new MemoryStream())
    {
        using (var pdfDocument = new Document(PageSize.A4, HorizontalMargin, HorizontalMargin, VerticalMargin, VerticalMargin))
        {
            PdfWriter pdfWriter = PdfWriter.GetInstance(pdfDocument, outputMemoryStream);
            pdfWriter.CloseStream = false;
            pdfWriter.PageEvent = new PrintHeaderFooter { Title = pageTitle };
            pdfDocument.Open();
            using (var htmlViewReader = new StringReader(htmlText))
            {
                using (var htmlWorker = new HTMLWorker(pdfDocument))
                {
                    htmlWorker.Parse(htmlViewReader);// erro here 
                }
            }
        }

        renderedBuffer = new byte[outputMemoryStream.Position];
        outputMemoryStream.Position = 0;
        outputMemoryStream.Read(renderedBuffer, 0, renderedBuffer.Length);
    }

    return renderedBuffer;
}

1 个答案:

答案 0 :(得分:0)

这不是你问题的答案,但我们大多使用NReco.PDF

从HTML内容生成PDF的代码示例如下:

var htmlContent = String.Format("<body>Hello world: {0}</body>", 
    DateTime.Now);
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();  
var pdfBytes = htmlToPdf.GeneratePdf(htmlContent);

因此,本例中只缺少将MVC控制器输出为HTML。