Html 使用Jinja2在每个pdf页面上重复页眉和页脚
我正在使用Jinja2与python、psycopg2和pdfkit一起创建一个pdf文件,具体取决于不同的变量 我有一个特定的页眉和页脚,应该放在每页上(如徽标、页码和其他类似项目)。我用Html 使用Jinja2在每个pdf页面上重复页眉和页脚,html,jinja2,Html,Jinja2,我正在使用Jinja2与python、psycopg2和pdfkit一起创建一个pdf文件,具体取决于不同的变量 我有一个特定的页眉和页脚,应该放在每页上(如徽标、页码和其他类似项目)。我用添加了一个分页符(很好地工作) 我真的会避免在template.html中重复html代码块(因此对于每个页面都是如此)。有没有一个金贾的方式来定义这一点 这是template.html文件的一部分: <!DOCTYPE html> <html lang="it"> <head
添加了一个分页符(很好地工作)
我真的会避免在template.html中重复html代码块(因此对于每个页面都是如此)。有没有一个金贾的方式来定义这一点
这是template.html文件的一部分:
<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../templates/mystyle.css">
</head>
<body>
<img src="../img/logo.png">
<ul id="navigation">
<li>The number is {{ query_dict.num_n }}</li>
</ul>
<table class="center">
<!-- <table width=680 border=1 cellpadding=20 cellspacing=0> -->
<tr>
<th>Type of </th>
<th>{{ query_dict.type }}</th>
</tr>
<tr>
<th>Variable width</th>
<th>{{ query_dict.width }}</th>
</tr>
</table>
<!-- page break -->
<div style="display:block; clear:both; page-break-after:always;"></div>
<img src="../img/my_img.png">
<!-- page break -->
<div style="display:block; clear:both; page-break-after:always;"></div>
<p>other content</p>
</body>
</html>
- 数字是{query_dict.num_n}
类型
{{query_dict.type}
可变宽度
{{query_dict.width}
其他内容
一个选项是在单独的html页面上创建页眉/页脚,并使用jinja2的两个选项之一在主html页面上重复此页面。这样,您只需在每个分页符上包含一条简单的语句
这些将是或通过使用子模板
其中包括:
template.html:
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../templates/mystyle.css">
</head>
<p>Content<p>
{% include 'myFooter.html' %}
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../templates/mystyle.css">
</head>
<p>Content<p>
<div id="content">{% block footerContent %}{% endblock %}</div>
footerChild.html
{% extends "template.html" %}
{% block footerContent %}
<div id="footer">
© Copyright 2020 by <a href = "mailto: yourmail@mail.com">YourName</a>.
</div>
<img src="../img/logo.png">
<!-- page break -->
<div style="display:block; clear:both; page-break-after:always;"></div>
{% endblock %}
{%extends“template.html”%}
{%block footerContent%}
&抄袭;版权所有2020年。
{%endblock%}
当然,您可以将它们包含到循环或s中以满足页面的条件。一个选项是在单独的html页面上创建页眉/页脚,并使用jinja2的两个选项之一在主html页面上重复此页面。这样,您只需在每个分页符上包含一条简单的语句 这些将是或通过使用子模板 其中包括: template.html:
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../templates/mystyle.css">
</head>
<p>Content<p>
{% include 'myFooter.html' %}
<head>
<meta charset="UTF-8">
<link rel="stylesheet" type="text/css" href="../templates/mystyle.css">
</head>
<p>Content<p>
<div id="content">{% block footerContent %}{% endblock %}</div>
footerChild.html
{% extends "template.html" %}
{% block footerContent %}
<div id="footer">
© Copyright 2020 by <a href = "mailto: yourmail@mail.com">YourName</a>.
</div>
<img src="../img/logo.png">
<!-- page break -->
<div style="display:block; clear:both; page-break-after:always;"></div>
{% endblock %}
{%extends“template.html”%}
{%block footerContent%}
&抄袭;版权所有2020年。
{%endblock%}
当然,您可以将它们包含到循环或s中,以满足页面的条件