HTML в Pdf с использованием Rotativa и MVC с динамическим контентом - с пробелом в заголовочной части - PullRequest
0 голосов
/ 09 октября 2018

Я использую Rotativa (v 1.7.3) для преобразования HTML в pdf в моем приложении MVC.

Моя цель - создать 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);
   }

The 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>
...