2013-07-30 1 views
16

Мне потребовалось немного больше исследований, чем мне хотелось бы разобраться в этом самостоятельно, поэтому я собираюсь опубликовать здесь всеобъемлющий ответ. Похоже, что информация для этого распространяется на разных сайтах, и я хотел бы разместить ее в одном месте. This answerможет быть тем же, но мои глаза глазуруют, потому что это в строке Java, а не в html-шаблоне. Возникает вопрос:С Flying Saucer, как мне создать pdf-файл с номером страницы и общей страницей на каждой странице нижнего колонтитула?

Я рендеринга PDF, и я хочу нижний колонтитул внизу страницы, в котором говорится: «Страница n of m», где «n» - номер страницы, на которой вы находитесь, и «m», это общие страницы в документе. Как мне это сделать?

ответ

28

В вашем HTML, вам нужно поместить это где-то в body тег:

<div id="footer"> 
    page <span id="pagenumber"></span> of <span id="pagecount"></span> 
</div> 

И это должно быть вашим CSS/стиль:

#footer { 
     position: running(footer); 
     text-align: right; 
    } 

    @page { 
     @bottom-right { 
      content: element(footer); 
     } 
    } 

    #pagenumber:before { 
     content: counter(page); 
    } 

    #pagecount:before { 
     content: counter(pages); 
    } 

Вы можете узнать больше о это @bottom-right опция here.

+0

Это решение не сработало для меня. Он появился только на последней странице. –

+0

Где я могу найти определение/ссылку для функции 'running()' и 'element()'. Не удалось найти. Одна из страниц, на которые я смотрел: https://www.w3schools.com/cssref/css_functions.asp –

+0

@PauloOliveira Вы решили, что это показывает только на последней странице? Я тоже сталкиваюсь с этим. – Gideon

16

Вы также можете попробовать немного более лаконичный подход:

@page { 
    @bottom-right { 
    content: "Page " counter(page) " of " counter(pages); 
    } 
} 

Вы должны сделать это в вашем CSS/стиль, и вам не нужно, чтобы добавить дополнительный колонтитула HTML элемент.

1

@ Решение Джона Марка работало для меня. В моем приложении мне нужно было вставить информацию о стиле в HTML, поэтому я завернул это в теги <style> и поместил его в <head> до <title>. Возможно, эта информация будет полезна кому-то другому.

Смежные вопросы