wkhtmltopdf
是一个开源工具,可以将 HTML 转换为 PDF 文件。要在页眉或页脚的 HTML 中进行页码编号,可以通过在 HTML 模板中使用 CSS 和 JavaScript 来实现。
以下是一个示例,展示如何在页眉中添加页码编号:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Header</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
}
.page-number {
position: absolute;
top: 10px;
right: 10px;
}
</style>
</head>
<body>
<div class="page-number" id="page-number">Page <span id="current-page">1</span> of <span id="total-pages">1</span></div>
<script>
window.onload = function() {
var totalPages = {{ totalPages }};
var currentPage = {{ currentPage }};
document.getElementById('total-pages').innerText = totalPages;
document.getElementById('current-page').innerText = currentPage;
};
</script>
</body>
</html>
wkhtmltopdf --header-html header.html input.html output.pdf
原因: 可能是由于 totalPages
或 currentPage
的值没有正确传递到 HTML 模板中。
解决方法:
确保在生成 PDF 时正确传递 totalPages
和 currentPage
的值。例如,可以使用 Python 脚本来生成 PDF:
import subprocess
header_html = 'header.html'
input_html = 'input.html'
output_pdf = 'output.pdf'
# 获取总页数
result = subprocess.run(['wkhtmltopdf', '--print-media-type', input_html], capture_output=True, text=True)
total_pages = result.stdout.count('page')
# 生成 PDF
subprocess.run(['wkhtmltopdf', '--header-html', header_html, '--footer-html', footer_html, input_html, output_pdf], env={
'totalPages': str(total_pages),
'currentPage': '1'
})
通过以上方法,你可以在 wkhtmltopdf
的页眉或页脚 HTML 中实现页码编号。
云原生正发声
云+社区技术沙龙[第7期]
云+社区技术沙龙[第27期]
云+社区技术沙龙[第14期]
企业创新在线学堂
云+社区技术沙龙[第17期]
北极星训练营
企业创新在线学堂
北极星训练营
Elastic 中国开发者大会
云+社区技术沙龙[第11期]
领取专属 10元无门槛券
手把手带您无忧上云