2

所以..我能找到的唯一可以在 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);

我尝试的任何谷歌搜索几乎都会得到同样的结果。

我正在创建并合并多个 PDF 页面。

上面的代码让我想到{CrtPage}并由{PageCount}一些内部变量填充,但事实并非如此。

联系他们的客户服务只是让我们获得他们演示项目的复印件,其中包含相同的代码。

更新:

我忘了提到 HiQPdf“合并”示例将每个页面单独创建为一个文件,然后打开备份并作为一个文档放在一起,但我正在考虑动态生成页码。

http://www.hiqpdf.com/demo/MergePdf.aspx

4

1 回答 1

3

在花了几个小时破译他们的演示项目之后,这就是我能够想出的(有效的)。这是让页码出现所需的最简单的工作(因为问题是在一年前发布的,并且可能是关于早期版本,这是如何在 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 并边走边学,所以很可能有更好的方法我还没有找到 - 但在这一点上,这似乎是动态添加页数的方法。

于 2014-11-14T15:35:34.610 回答