Agradeceríamos tu apoyo para difundir nuestros enunciados acerca de las ciencias informáticas.
Solución:
Encontré una documentación de wkhtmltopdf (o una mejor versión archivada) y allí se describe cómo administrar encabezados y pies de página.
Básicamente solo puedes agregar --header-center "text"
(o interruptores similares) a la lista de argumentos y eso es todo.
Entonces usándolo con Rotativa sería:
public ActionResult ShowPdf()
var model = new Model();
return new ViewAsPdf("view.cshtml", model)
FileName = "Report.pdf",
CustomSwitches = "--print-media-type --header-center "text""
;
(no se si --print-media-type
es necesario.)
Si desea mostrar una Vista en lugar de texto en el encabezado/pie de página, puede hacerlo de esta manera:
public ActionResult ViewPDF()
string customSwitches = string.Format("--print-media-type --allow 0 --footer-html 0 --footer-spacing -10",
Url.Action("Footer", "Document", new area = "", "https"));
return new ViewAsPdf("MyPDF.cshtml", model)
FileName = "MyPDF.pdf",
CustomSwitches = customSwitches
;
[AllowAnonymous]
public ActionResult Footer()
return View();
No olvides agregar el [AllowAnonymous] attribute en la acción de pie de página, de lo contrario, Rotatina no puede acceder a la ruta.
Así es como lo hice (en su totalidad):
public ActionResult PrintPDF(int? selectedSiteRotaId, int selectedSiteId)
string footer = "--footer-center "Printed on: " + DateTime.Now.Date.ToString("MM/dd/yyyy") + " Page: [page]/[toPage]"" + " --footer-line --footer-font-size "9" --footer-spacing 6 --footer-font-name "calibri light"";
return new ActionAsPdf("RenderPDF", new selectedSiteRotaId = selectedSiteRotaId, selectedSiteId = 7 )
FileName = "PDF_Output.pdf",
PageOrientation = Orientation.Landscape,
MinimumFontSize = 10,
//PageMargins = new Margins(5,5,5,5),
PageSize = Size.A3,
CustomSwitches = footer
;
//var pdfResult = new ActionAsPdf("RenderPDF", new selectedSiteRotaId = selectedSiteRotaId, selectedSiteId = 7 )
//
// FileName = "PDF_Output.pdf",
// PageOrientation = Orientation.Landscape,
// MinimumFontSize = 10
//;
//var binary = pdfResult.BuildPdf(this.ControllerContext);
//return File(binary, "application/pdf");
public ActionResult RenderPDF(int? selectedSiteRotaId, int selectedSiteId)
return RedirectToAction("Index", "PrintPDF", new selectedSiteRotaId = selectedSiteRotaId, selectedSiteId = 7 );
Recuerda que puedes parafrasear .
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)