Какой допустимый HTML-код для метода WithFooterTemplate функции PrintToPDF в chromedp?

#html #google-chrome #go #printing #chromedp

#HTML #google-chrome #Вперед #печать #chromedp

Вопрос:

Мы попытались добавить номера страниц к нашей печатной HTML-странице. Но нам это не удалось. Прямо сейчас код выглядит следующим образом.

 chromedp.ActionFunc(func(ctx context.Context) error {
            var err error
            buf, _, err = page.PrintToPDF().
                WithFooterTemplate("<span class=pageNumber></span>").
                WithDisplayHeaderFooter(true).
                Do(ctx)
            return err
        }),
  

Вот исходный код этого метода. Нашел его здесь https://github.com/chromedp/cdproto/blob/master/page/page.go#L812

 // WithHeaderTemplate HTML template for the print header. Should be valid
// HTML markup with following classes used to inject printing values into them:
// - date: formatted print date - title: document title - url: document location
// - pageNumber: current page number - totalPages: total pages in the document
// For example, <span class=title></span> would generate span containing the
// title.
func (p PrintToPDFParams) WithHeaderTemplate(headerTemplate string) *PrintToPDFParams {
    p.HeaderTemplate = headerTemplate
    return amp;p
}
  

По какой-то причине мы не смогли найти ни одного допустимого html для вставки сюда.
С этим кодом результат выглядит так: есть заголовок, потому что я не предоставил шаблон для этого, но нижний колонтитул пуст, хотя я предоставил шаблон для отображения номеров страниц

Ответ №1:

Найдено решение:

 buf, _, err = page.PrintToPDF().
                WithDisplayHeaderFooter(true).
                WithHeaderTemplate(`<span></span>`).
                WithFooterTemplate(`<span style="font-size: 10px"><span class="pageNumber"></span>/<span class="totalPages"></span></span>`).
                Do(ctx)
  

Я не понимаю, почему, но это работает.