0

我有一个可以在浏览器中很好地呈现的打印就绪视图。最好为用户提供单击位于该视图上的链接或按钮的选项,该选项将调用操作以从视图中的原始 HTML 创建 PDF。我已经弄清楚了 PDF 处理部分,我只需要帮助弄清楚:

  1. 单击链接或按钮时,将该视图中呈现的 HTML 放入字符串变量中,以发送到我的 PDF 处理代码。

这是呈现页面的控制器方法:

 public ActionResult ViewReport(int? id, string memberID, int month, int year)
 {
            var task = new ViewReportTask();


            return View(task.BuildViewModel(id, memberID, month, year));
  }

该视图只是很多 html 和 razor 代码块,所以我没有在此处包含它。

谢谢

4

1 回答 1

1

我正在使用以下方法:

您有生成视图的 Action 方法:

public ActionResult ViewReport(int? id, string memberID, int month, int year)
 {
            var task = new ViewReportTask(); 
            return View(task.BuildViewModel(id, memberID, month, year));
  }

再创建一个 ActionResult:

  public ActionResult PrintMyView(int? id, string memberID, int month, int year)
    {
      return new ActionAsPdf( "ViewReport", new { id= id; memberID=memberID; month=month; year=year})
{ FileName = "ViewReport.pdf"};
    }

要获得ActionAsPdf方法,您需要安装RotativaNuget 包:

安装包 Rotativa

现在要将您的页面保存为 pdf 用户必须在您的视图中单击以下链接:

    @Html.ActionLink("Save as PDF, "PrintMyView", "Home", new{id= id, memberID=memberID, month=month, year=year}, null) 
//** I can't see where you takes parameters in your view, so I just list them.

这对我来说可以。

于 2013-08-28T19:25:29.473 回答