1

今天我收到了一个任务,从视图中生成一个 pdf ......因为我是编程的初学者......有人会帮助我完成这个任务......传递一些提示......从哪里开始研究。Pos'm 很难完成这项任务。我尝试在此链接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;
}
4

1 回答 1

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。

于 2016-12-31T15:59:32.760 回答