Я использую 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 здесь.

Заголовок 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>