C# MVC 5 将 html 视图转换为 PDF 以在业务层中发送电子邮件附件
C# MVC 5 Converting html view to PDF to send an email attachment in Bussness Layer
我想通过电子邮件将 PDF 销售报告发送给所有代理,并且需要为每个代理动态生成此 PDF。我为此使用了 ItextSharp
,但这需要对 html 代码进行过多的修改。最后我登陆了 Rotativa
,它运行良好,但几乎有几千个代理,我有一个单独的业务层来完成这项工作。如何让Rotativa在业务层工作?
var pdfResult = new ViewAsPdf("CreateIMDStatmentReport", _IReportManagement.GetIMDStatmentReportByIMDCode(imdCode));
var binary = pdfResult.BuildPdf(this.ControllerContext);
System.Net.Mail.Attachment data = new Attachment(new MemoryStream(binary), MediaTypeNames.Application.Pdf);
- 如何在单独的业务层中获取视图?
- 如何处理ControllerContext?
注意:将来此视图将存储在数据库中,并将呈现为 VirtualPath
我解决了!
For the view
I used the absolute paths.
And for the ControllerContext
,I passed its object as a parameter from controller.
Also I used System.Web.Mvc
package
谢谢大家!
听起来您需要在 ASP.NET MVC 项目之外进行 Razor 渲染,请查看有关此主题的讨论(下面的 link)。您仍然需要弄清楚这是否适用于 Rotavia,但我会从这里开始。
Is it possible to use Razor View Engine outside asp.net
根据讨论,以下框架正在解决您的问题,但我再次无法确认它是否适用于 Rotavia,也许您可以使用另一个 HTML-to-PDF 转换器组件。
"The framework helps you when you want to use Razor to render reports, e-mails, source code, HTML, or whatever, outside the MVC environment"
http://www.codeproject.com/Articles/423141/Razor-2-0-template-engine-supporting-layouts
我想通过电子邮件将 PDF 销售报告发送给所有代理,并且需要为每个代理动态生成此 PDF。我为此使用了 ItextSharp
,但这需要对 html 代码进行过多的修改。最后我登陆了 Rotativa
,它运行良好,但几乎有几千个代理,我有一个单独的业务层来完成这项工作。如何让Rotativa在业务层工作?
var pdfResult = new ViewAsPdf("CreateIMDStatmentReport", _IReportManagement.GetIMDStatmentReportByIMDCode(imdCode));
var binary = pdfResult.BuildPdf(this.ControllerContext);
System.Net.Mail.Attachment data = new Attachment(new MemoryStream(binary), MediaTypeNames.Application.Pdf);
- 如何在单独的业务层中获取视图?
- 如何处理ControllerContext?
注意:将来此视图将存储在数据库中,并将呈现为 VirtualPath
我解决了!
For the
view
I used the absolute paths.
And for theControllerContext
,I passed its object as a parameter from controller.
Also I usedSystem.Web.Mvc
package
谢谢大家!
听起来您需要在 ASP.NET MVC 项目之外进行 Razor 渲染,请查看有关此主题的讨论(下面的 link)。您仍然需要弄清楚这是否适用于 Rotavia,但我会从这里开始。
Is it possible to use Razor View Engine outside asp.net
根据讨论,以下框架正在解决您的问题,但我再次无法确认它是否适用于 Rotavia,也许您可以使用另一个 HTML-to-PDF 转换器组件。
"The framework helps you when you want to use Razor to render reports, e-mails, source code, HTML, or whatever, outside the MVC environment"
http://www.codeproject.com/Articles/423141/Razor-2-0-template-engine-supporting-layouts