#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)
Я не понимаю, почему, но это работает.