使用Rotativa和MVC以及动态内容的HTML到Pdf格式-标头部分留有空格

时间:2018-10-09 14:09:53

标签: asp.net-mvc rotativa

我正在使用Rotativa(v 1.7.3)在MVC应用程序中将HTML转换为pdf。

我的目标是创建pdf-

  • 具有html标头(动态)
  • 具有html页脚。(静态)
  • 内容是部分视图(动态视图和模型视图已合并)

使用静态页眉和页脚可以正常工作,但是当我使用动态页眉时,我得到的是空白的pdf页面。

操作方法:

public ActionResult Print(long workOrderId)
   {
        WorkOrderVM objWorksOrderVM = new WorkOrderVM();
        // Data population code goes here
        string footer = Server.MapPath("~/Views/WorkOrder/WODetailPrintTemplateFooter.html");

        string customSwitches = string.Format("--header-html  \"{0}\" " +
                               "--header-spacing \"0\" " +
                               "--footer-html \"{1}\" " +
                               "--footer-spacing \"10\" " +
                               "--footer-font-size \"10\" " +
                               "--header-font-size \"10\" ", Url.Action("Header", "WorkOrder", new { area = "" }, "http"), footer);

        return new PartialViewAsPdf("WODetailPrintTemplate", objWorksOrderVM)
        {
            CustomSwitches = customSwitches
        };
   }

 [AllowAnonymous]
 public ActionResult Header()
   {
     WorkOrderVM objWorksOrderVM = new WorkOrderVM();
     // Data population code goes here
     return View(objWorksOrderVM);
   }

从未打过Header操作方法。问题可能出在Url.Action或什么?

更新

由于我已经从控制器中评论了Header,因此SessionExpiaryAttribute操作方法现在被命中。该属性的主要目的是在会话过期后重定向到“会话过期”页面。

现在的问题是

  • 我在页眉位置的每一页上都有一个空格。
  • 为什么使用Header操作方法终止会话。

我已经在此处上传了生成的pdf的屏幕截图。

enter image description here

标题html:

<!DOCTYPE html>
<html>    
<body style="border: 0; margin: 0;">
    <table style="width: 100%">
        <tr>
            <td align="left" valign="top" height="157">
                model binding will come here.
            </td>
        </tr>
    </table>
</body>
</html>

0 个答案:

没有答案