我知道可以使用C#API在页眉/页脚中呈现“Y的第X页”:

//write the page number
TextElement footerText = new TextElement(0, pdfConverter.PdfFooterOptions.FooterHeight - 15, "This is page &p; of &P;  ",
    new System.Drawing.Font(new System.Drawing.FontFamily("Times New Roman"), 10, System.Drawing.GraphicsUnit.Point));
footerText.EmbedSysFont = true;
footerText.TextAlign = HorizontalTextAlign.Right;
pdfConverter.PdfFooterOptions.AddElement(footerText);

..但是我宁愿使用以下命令直接在html中定位和设置样式:
 HtmlToPdfElement footerHtml = new HtmlToPdfElement(pdfOptions.DocumentFooterHtmlString, pdfOptions.BaseUrl);
 footerHtml.FitHeight = true;
 pdfConverter.PdfFooterOptions.AddElement(footerHtml);

pdfOptions.DocumentFooterHtmlString看起来像这样:
<div class="clearfix">
    <span class="pull-right">This is page &p; of &P;</span>
</div>

这有可能吗?如果我尝试这样做,我将得到:这是页面&p; &P;在页脚中呈现的

最佳答案

我为此短暂地挣扎。为了让其他人通过搜索找到它,诀窍在于,当添加HTML元素时,它必须是HtmlToPdfVariableElement而不是HtmlToPdfElement。

HtmlToPdfVariableElement footerHtml = new    HtmlToPdfVariableElement(pdfOptions.DocumentFooterHtmlString, pdfOptions.BaseUrl);
footerHtml.FitHeight = true;
pdfConverter.PdfFooterOptions.AddElement(footerHtml);

10-07 16:16