如何解决如何为具有Rotativa
我正在生成一个pdf文件,我的老板要求我在pdf文件的每个页面中添加页脚。 pdf是通过Rotativa生成的,并且html页面变成了pdf。
我唯一的问题是,我该怎么做。我想到了一些想法,即简单的CSS代码,尽管有足够多的选择,但没有一个对我真正有用。尤其是因为我可以拥有一页,或者我可以拥有十页,取决于要放置在其上的信息量。
有人对我有什么想法吗?我想解决这个问题确实很糟糕,但是我不知道该怎么做。
问候 洛伦佐·奥托(Lorenzo otto)
解决方法
如果我没有误解您的问题,则可以简单地将HTML页面用作页脚,以显示页面页脚,其中包含一些JavaScript以显示当前页面和总页面数。我实际上是在使用Rotativa的多个Web应用程序中使用这种方法,这些应用程序基于具有动态内容的MVC视图生成PDF文件。
假设我们创建了一个 Footer.html (在此处使用您喜欢的名称),则该文件可能是PDF页脚的HTML文件,包括用于生成页码信息的javascript代码:
<!DOCTYPE html>
<html>
<head>
<script>
function subst() {
var vars = {};
var x = window.location.search.substring(1).split('&');
for (var i in x) { var z = x[i].split('=',2); vars[z[0]] = unescape(z[1]); }
var x = ['frompage','topage','page','webpage','section','subsection','subsubsection'];
for (var i in x) {
var y = document.getElementsByClassName(x[i]);
for (var j = 0; j < y.length; ++j) y[j].textContent = vars[x[i]];
}
}
</script>
</head>
<body onload="subst()">
<div style="font-family: Helvetica; font-size:0.75rem; text-align: right; width:100%;">
<span class="page"></span> / <span class="topage"></span>
</div>
</body>
</html>
*当然,您可以根据需要更改页脚div样式。
另一方面,猜测页脚HTML页面(以前称为 Footer.html )位于 Views 中的名为 Shared 的文件夹中em>文件夹,您可以在调用Rotativa之前准备所需的自定义开关:
string customSwitches = "--footer-html " + Server.MapPath("~/Views/Shared/Footer.html");
因此,如果您使用MVC操作基于名为MyPdfView.cshtml的视图生成PDF,则可以使用ViewAsPdf,并通过以下方式将其传递给您的自定义开关:
return new ViewAsPdf("MyPdfView")
{
FileName = "MyPdfView.pdf",CustomSwitches = customSwitches
};
仅此而已。请让我知道这是否对您有用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。