【问题标题】:How to get PDF of another MVC view如何获取另一个 MVC 视图的 PDF
【发布时间】:2018-03-15 13:08:05
【问题描述】:

我正在努力实现以下目标:

用户将提交表单并被重定向到感谢页面。在感谢页面加载中,用户的“标记列表”(MarksList.cshtml)必须转换为 pdf,然后通过电子邮件发送(所有这些都在后台发生)。

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

Rotativa 是否可以做到这一点。如果没有,是否有任何替代方案。

【问题讨论】:

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


    【解决方案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 开头。

    【讨论】:

    • 谢谢。在我的情况下,标记列表是唯一的,视图将由其相关模型填充。这还能用吗
    • 我认为是的。您可以创建 httpClient 然后向操作发送请求,之后您可以获得所有 htmlString 然后您可以像 converter.ConvertHtmlString(htmlString, baseAddress.ToString()); 进行转换,请查看博客页面。它真的很有用。祝你好运。
    【解决方案2】:

    您可以使用 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");
    

    【讨论】:

      猜你喜欢
      • 2010-10-21
      • 2011-12-26
      • 2015-09-14
      • 1970-01-01
      • 2020-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-09
      相关资源
      最近更新 更多