如何获取另一个MVC视图的PDF

时间:2018-03-15 13:08:06

标签: c# asp.net-mvc pdf rotativa

我试图实现以下目标:

用户将提交表单并重定向到感谢页面。在感谢页面加载中,用户"标记列表" ($("//How to change this part based on the `div`'s id?").click(function(){ //action taken }); )必须转换为pdf然后通过电子邮件发送(所有内容都在后台进行)。

我在article之后尝试了MarksList.cshtml。但它解释了如何将其他视图加载为PDF。就我而言,我不需要查看它。只需将其转换为运行时间,即可将其作为附件通过电子邮件发送。

Rotativa可以实现吗?如果没有,有没有其他选择。

2 个答案:

答案 0 :(得分:1)

我从未使用 Rotativa ,但我使用了SelectPdf,我强烈推荐给你(社区版)。

它非常易于使用和配置。

这是他们网站的示例代码。你也可以找到很多关于它的演示。

// instantiate the html to pdf converter
HtmlToPdf converter = new HtmlToPdf();

// convert the url to pdf
PdfDocument doc = converter.ConvertUrl(url);

// save pdf document
doc.Save(file);

// close pdf document
doc.Close();

这一开始也是一个很棒的example

答案 1 :(得分:0)

您可以使用bytescout来简化您的工作:

using (HtmlToPdfConverter converter = new HtmlToPdfConverter())
            {
                converter.PageSize = PaperKind.A4;
                converter.Orientation = PaperOrientation.Portrait;
                converter.Footer = "<p style=\"color: blue;\">FOOTER TEXT</p>";

                converter.ConvertHtmlToPdf("sample.html", "result.pdf");

                // You can also pass a link instead of the input file:  
                //converter.ConvertHtmlToPdf("http://google.com", "result.pdf");
            }

            // Open result file in default PDF viewer
            Process.Start("result.pdf");