- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以..我能找到的唯一可以在 HiQPdf 中使用的代码是这样的:
// add page numbering
Font pageNumberingFont = new Font(new FontFamily("Times New Roman"), 8, GraphicsUnit.Point);
PdfText pageNumberingText = new PdfText(5, footerHeight - 12,
"Page {CrtPage} of {PageCount}",
pageNumberingFont);
我尝试的任何 Google 搜索都几乎得出同样的结果。
我正在创建多个 PDF 页面并将其合并在一起。
上面的代码让我觉得 {CrtPage}
和 {PageCount}
是由一些内部变量填充的,但事实并非如此。
联系他们的客户服务,我们只会得到一份他们的演示项目的复印件,其中某处有相同的代码。
更新:
我忘了提到 HiQPdf“合并”示例将每个页面单独创建为一个文件,然后打开备份并作为一个文档放在一起,但我正在寻找动态生成页码。
最佳答案
在花了几个小时破译他们的演示项目后,这就是我能够想出的(有效)。这是让页码出现所需的最简单的工作(并且由于该问题是一年前发布的,并且可能是关于早期版本的,因此这是在 8.1 版上的操作方法)
var htmlToPdf = new HtmlToPdf();
htmlToPdf.Document.Foot.Enabled = true;
var pageNumberFont = new Font(new FontFamily("Arial"), 5, GraphicsUnit.Point); // 1
var pageNumberText = new PdfText(1, 25, "Page {CrtPage} of {PageCount}", pageNumberFont); // 2
htmlToPdf.Document.Footer.Layout(pageNumberText); // 3
分解步骤...
1: 字体 - 在我看来,这是一个有用的选项,但据我所知,这是第 2 步的要求,这很糟糕。在步骤 2 的实例化过程中,您必须将 Font 对象传递给 PdfText 对象。我从他们的演示中提取了 GraphicsUnit.Point 属性并且它可以工作,但我不能谈论此属性可用的其他选项以及它们的执行方式(如果他们有表现的话)。
2: 文本 - 前两个数字用于位置,后面的字符串是您要显示的内容。 {CrtPage} 和 {PageCount} 将自行更改为适当的值。作为最后一个参数,您传入在步骤 1 中创建的字体。
3: 这是您将文本添加到页脚以使其显示的地方。
我仍在努力学习 HiQPdf 并边走边学,所以很可能有更好的方法来做到这一点,但我还没有找到 - 但在这一点上,这看起来是添加页面的方法动态计数。
关于c# - 如何在 HiQPdf 中设置页码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15169265/
我是一名优秀的程序员,十分优秀!