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 回、コンテンツに対して 1 回呼び出されます。したがって、6 ページを作成するコンテンツがある場合、メソッドは 13 回呼び出されます。このメソッドは多くの時間を消費するため、これは理想的ではありません。
HTML からヘッダーとフッターを追加するより効率的な方法はありますか? メソッドはありAddImageCopy()
ますが、 によって作成されたオブジェクトでは機能しませんAddImageHtml()
。
理解のために: これらの getter メソッドと setter メソッドは、.Net プロパティにアクセスするために Coldfusion によって作成されます。