使用 PdfGenerator 向 PDF 添加页码
Adding page numbers to PDFs using PdfGenerator
这个问题与NReco的PdfGenerator组件有关。
我使用此产品使用 C# 将动态生成的 HTML 字符串转换为 .NET MVC 框架中的 PDF 文档。
在寻找将页码(例如,第 1 页,共 5 页)添加到 PDF 页脚的方法时,我在 SO 上遇到了这个和这个。毫不奇怪,这两种选择似乎都提供了类似的方法来实现相同的目标。
虽然代码本身有意义,但我很难理解的是 - 我的文档内容(或 HTML 字符串)是在视图中生成的。然后将 HTML 字符串传递给控制器 (.cs) 以进行实际转换过程。由于我对MVC框架的了解非常有限,我认为您无法将JavaScript代码添加到控制器中(或者有吗?
所以,我不太明白如何将上述两个基于 JavaScript 的方法合并到处理文档转换的 C# 函数中。或者这是应该在视图中完成的事情吗?
控制器:
[HttpPost]
public ActionResult Html2Pdf(FormCollection form) {
var docTitle = form["doctitle"].ToString();
var headerHtml =
"<div style='width:100%; margin-top:1em; display:block;'>" +
"<img src='" + System.Web.HttpContext.Current.Server.MapPath("~") + "/media/images/document_banner.png' />" +
"</div>" +
"<div style='width:100%; bottom:110px; left:0; position:relative; display:block;'>" +
"<span style='color:#fff; font-size:2.5em; font-family:georgia; margin-left:1em;'>" + docTitle + "</span>" +
"</div>";
var footerHtml =
"<div style='width:100%; text-align:center; border-top:1px solid #abc; margin-top:2em;'>Page 0 of 0</div>;
var htmlToPdf = new HtmlToPdfConverter();
// various parameters get set here
htmlToPdf.PageHeaderHtml = headerHtml;
htmlToPdf.PageFooterHtml = footerHtml;
....
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=MyTestDocument.pdf");
htmlToPdf.GeneratedPdf(form["htmlcontent"].ToString(), null, Response.OutputStream); // form["htmlcontent"] holds the document body
Response.End();
Return new EmptyResult();
}
你不需要附加javascript代码(来自wkhtmltopdf帮助)来呈现页码,因为如果你设置PageHeaderHtml或PageFooterHtml属性,PdfGenerator会为你做这件事。您所需要的只是使用要呈现页码的"page"类元素进行标记:
htmlToPdf.PageHeaderHtml = "<div>Page: <span class="page"></span></div>";
就这样。
如果您还想显示总页数(topage class),则可以使用此代码:
var generator = new NReco.PdfGenerator.HtmlToPdfConverter();
generator.PageFooterHtml = $@"page <span class=""page""></span> of <span class=""topage""></span>";
就在代码下方,仅此而已
var htmlToPdf = new NReco.PdfGenerator.HtmlToPdfConverter();
htmlToPdf.PageFooterHtml = "<div style='padding:5px !important; font-size:12px;text-align:right;'>page <span class='page'></span> of <span class='topage'></span></div>";
相关文章:
- 在PDF中查看时,我的行中出现换行.(添加减号时)
- 如何将页眉或徽标添加到高图导出的PDF中
- 在不使用200行var的情况下,在结果字段中添加顺序命名的变量?[PDF表格]
- 如何在不强制的情况下添加条件文本?[101,pdf格式]
- 如何在HTML生成的pdf中添加页眉
- 使用 PdfGenerator 向 PDF 添加页码
- 将打印和下载受保护的 PDF 查看器添加到网站
- Google Apps 脚本 - 将横向参数添加到 PDF 电子邮件附件
- 添加换行符 JavaScript pdf 表单时的文本字段空白
- 如何在PDF文档中添加javascript来计算复选框的数量,并在文本框区域中输入值
- 将Acrobat JavaScript代码添加到pdf导出中
- 从PDF表单添加到MSSQL
- 动态检查文本是否转到下一页,并使用pdfmake在pdf中添加分页符
- 自动为PDF下载添加唯一编号
- 是否可以将javascript添加到pdf格式的图像中
- 将页面级javascript添加到多个PDF's作为一批
- 在PDF中使用Javascript将一天添加到用户输入日
- 使用ITextSharp将谷歌可视化areacartsvg添加到pdf中
- PDF达到一定大小后无法添加内容
- 使用jsPDF将相同的图像多次添加到pdf中