【发布时间】:2014-01-14 10:00:05
【问题描述】:
我正在使用 ABCpdf 9.1 x64 .Net 和 Coldfusion 来创建基于 HTML 内容的 PDF。每个 PDF 文档都有不同的页眉和页脚,它们是通过一些 Coldfusion 代码生成为 HTML 的。每个页面的页眉都相同,而每个页面的页脚略有不同(因为它显示了页码)。这是我的代码的主要部分:
// add content
theDoc.Get_Rect().Set_String("67 80 573 742");
theContentID = theDoc.AddImageHTML(pdfContent);
while (true) {
if (!theDoc.Chainable(theContentID)) {
break;
}
theDoc.Set_Page(theDoc.AddPage());
theContentID = theDoc.AddImageToChain(theContentID);
}
// add header & footer on each page
for (i=1; i <= theDoc.Get_PageCount(); i++) {
// set page
theDoc.Set_PageNumber(i);
// HEADER
theDoc.Get_Rect().Set_String("67 755 573 809");
theDoc.AddImageHTML(headerContent);
// FOOTER
theDoc.Get_Rect().Set_String("67 0 573 65");
theDoc.AddImageHTML(replace(footerContent, "[page]", i));
}
如您所见,AddImageHTML() 方法对每个页面调用 2 次,对内容调用一次。因此,如果我有创建 6 个页面的内容,则该方法会被调用 13 次。这并不理想,因为该方法会耗费大量时间。
有没有更有效的方法从 HTML 添加页眉和页脚?有一个方法 AddImageCopy() 但它不适用于 AddImageHtml() 创建的对象。
只是为了理解:那些 getter 和 setter 方法是由 Coldfusion 创建的,用于访问 .Net 属性。
【问题讨论】:
标签: coldfusion coldfusion-10 abcpdf abcpdf9