问题
Is it possible to hide the header/footer of a TuesPechkin document for a specific page. I'd like the header and footers to be ignored on the first page of the PDF document but can't find a way to achieve this.
Document setup as below:
var document = new HtmlToPdfDocument
{
GlobalSettings =
{
ProduceOutline = true,
DocumentTitle = "My Report",
PaperSize = PaperKind.A4, // Implicit conversion to PechkinPaperSize
Margins =
{
All = 1.375,
Unit = Unit.Centimeters
}
},
Objects =
{
new ObjectSettings
{
HtmlText = html,
WebSettings = new WebSettings {UserStyleSheet = "~/Content/Site.css"},
HeaderSettings = new HeaderSettings()
{
FontSize = 8,
LeftText = "My report",
RightText = "2014"
},
FooterSettings = new FooterSettings()
{
FontSize = 8,
CenterText = "Page [page] of [topage]"
}
}
}
};
回答1:
The API doesn't seem to support this. However, I found a workaround here for WKHTMLTOPDF which might work for you.
Put the following HTML in a file and reference this file in your footer settings.
<html>
<head>
<script>
function subst() {
var vars = {};
// explode the URL query string
var x = document.location.search.substring(1).split('&');
// loop through each query string segment and get keys/values
for (var i in x)
{
var z = x[i].split('=',2);
vars[z[0]] = unescape(z[1]);
}
// an array of all the parameters passed into the footer file
var x = ['frompage', 'topage', 'page', 'webpage', 'section', 'subsection', 'subsubsection'];
// each page will have an element with class 'section' from the body of the footer HTML
var y = document.getElementsByClassName('section');
for(var j = 0; j < y.length; j++)
{
// if current page equals total pages
if (vars[x[2]] == vars[x[1]])
{
y[j].innerHTML = "I'm a footer only on the last page";
}
}
}
</script>
</head>
<body onload="subst()">
<div class="section"></div>
</body>
</html>
来源:https://stackoverflow.com/questions/28091843/hide-footer-on-first-page