我必须创建1个包含多个文档的PDF,如下所示:
在每个页脚上,我都需要以下信息:
page
的{{1}}和topage
提供 1。由window.location.search
3。。在将html发送到wkhtml之前,我可以在windows.location.search
中设置此数字。这将在<h1></h1>
或window.location.serach
下的section
中可用
2。。这很有趣。如果我能够在页脚javascript中存储信息,那将很容易。每次更改部分或子部分时,我都可以重置的内部计数器之类的东西。
所以问题是:如何存储页脚之间共享的变量?还有其他方法可以满足我的需求吗?
每个PDF页面的页脚:
这几乎就像创建5个PDF并将它们合并为一个。
答案 0 :(得分:1)
您可以使用JS cookies
重设每个部分的编号。请遵循以下示例:https://github.com/wkhtmltopdf/wkhtmltopdf/issues/3708#issuecomment-346701655
<html>
<head>
<script>
function setSectionCounter() {
var vars = {};
var queryStringsFromUrl = document.location.search.substring(1).split('&');
for (var queryString in queryStringsFromUrl) {
if (queryStringsFromUrl.hasOwnProperty(queryString)) {
var temp = queryStringsFromUrl[queryString].split('=', 2);
vars[temp[0]] = decodeURI(temp[1]);
}
}
var element = document.getElementById('sectionCounter');
if (document.cookie.split(';').length === 2) {
var section = document.cookie.split(';')[0].split('=')[1];
if (vars.section !== section) {
document.cookie = 'currentSection=' + vars.section;
document.cookie = 'startedAt=' + vars.page;
}
// startedAt is the page on which a section started
var startedAt = parseInt(document.cookie.split(';')[1].split('=')[1]);
element.textContent = vars.page - startedAt + 1;
} else {
document.cookie = 'currentSection=' + vars.section;
document.cookie = 'startedAt=' + vars.page;
element.textContent = 1;
}
}
</script>
</head>
<body onload="setSectionCounter()">
<p id="sectionCounter"></p>
</body>
</html>
免责声明:此解决方案不适用于每节的总页数,它仅提供一个计数器。
希望有帮助。