使用Flying Saucer,如何在页脚的每个页面上生成包含页码和页面总数的pdf?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Flying Saucer,如何在页脚的每个页面上生成包含页码和页面总数的pdf?相关的知识,希望对你有一定的参考价值。
我花了更多的研究比我自己想要的更多,所以我将在这里发布一个全面的答案。似乎这样做的信息分散在许多不同的网站上,我想把它放在一个地方。 This answer可能是同一个东西,但我的眼睛茫然,因为它在Java字符串而不是在html模板中。这是问题:
我正在渲染PDF,我想在页面底部写一个页脚,上面写着“Page n of m”,其中“n”是您所在的页码,“m”是文档中的总页数。我怎么做?
在你的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的信息。
您还可以尝试稍微简洁的方法:
@page {
@bottom-right {
content: "Page " counter(page) " of " counter(pages);
}
}
您需要将其放在css / style中,并且不需要添加额外的页脚HTML元素。
@John Mark的解决方案对我有用。在我的应用程序中,我需要在HTML中嵌入样式信息,所以我将它包装在<style>
标签中并将其放在<head>
之前的<title>
中。也许这些信息对其他人有用。
重要错误和解决方案!
对于Starters,使用下面的John Mark的解决方案是使其正常工作的正确方法:
@page {
@bottom-right {
content: "Page " counter(page) " of " counter(pages);
}
}
但是,许多人可能遇到了以下问题:PDF已停止生成!
这可以通过更新你的飞行SAUCER版本来解决。
由于@page和@右下角的css代码,当我的PDF停止生成时,我正在运行9.1.4。
这是飞碟中的一个小故障,已在9.1.5版本中修复!
确保更新到9.1.5并使用John Mark的答案。
以上是关于使用Flying Saucer,如何在页脚的每个页面上生成包含页码和页面总数的pdf?的主要内容,如果未能解决你的问题,请参考以下文章