我正在尝试导出PDF文件中的某些数据。我正在使用:
导出工作正常,所有(我的观点没问题),但我正在努力为文档的每个页面添加页眉。
此时我只能在第一页上呈现它。页脚没有这样的问题,它在每个页面都正确呈现。
我的模板如下:
{% extends "easy_pdf/base.html" %}
{% block extra_style %}
<style type="text/css">
@page {
size: landscape;
margin-left: 1cm;
margin-right: 1cm;
margin-top: 1.5cm;
margin-bottom: 2cm;
@frame footer {
-pdf-frame-content: page-footer;
bottom: 0cm;
margin-left: 1cm;
margin-right: 1cm;
height: 2cm;
}
}
</style>
{% endblock %}
{% block page_header %}
{% include "document_head.html" %}
{% endblock %}
{% block content %}
{% include "main_table.html" %}
{% endblock %}
{% block page_foot %}
{% include "document_foot.html" %}
{% endblock %}
执行块不包含没有区别。
我根据自己的需要(页面和页脚)重写了 base.html 的基本样式。
我不确定我是否正确理解了标题的功能,但在我看来它应该在每个页面上呈现(类似于MS Word标题),因为标题不等于标题。如果我的理解是错误的,因为必须有另一种方法来在每个页面上呈现标题。
我的PDF内容是动态的,无法预测其长度。
我已阅读documentation,但我未能找到问题的解决方案,而且我也找不到任何解决方案。
另请注意,我以横向方向呈现PDF。
感谢您的帮助和建议。
答案 0 :(得分:1)
找到一个解决方案,如果其他人发现它有用,我会在这里发布。
事实证明,我必须完全重写base.html并从中扩展。我的 new_base.html 如下:
<!DOCTYPE html>
<html>
<head>
{% block style_base %}
{% block layout_style %}
<style type="text/css">
</style>
{%endblock%}
{% block extra_style %}{% endblock %}
{% endblock %}
</head>
<body>
<div id="page-header">
{%block page_header%}
{%endblock%}
</div>
<div>
{%block content%}
{%endblock%}
</div>
<div id="page-footer">
{%block page_foot%}
{%endblock%}
</div>
</body>
在扩展new_base.html的模板中,我添加了以下几行:
@frame header {
-pdf-frame-content: page-header;
top: 0cm;
margin-top: 0.5cm;
margin-bottom: 0.5cm;
margin-left: 1cm;
margin-right: 1cm;
height: 5cm;
}
现在,这会在文档的每个页面上呈现页眉。
答案 1 :(得分:0)
我最近遇到了同样的问题,@ user3745794给出的答案对我帮助很大。
我的模板略有不同,但在这里它们可以帮助有同样问题的人。
<强>模板/ easy_pdf / base.html文件强>
<!DOCTYPE html>
<html>
<head>
<title>{% block page_title %}{% endblock %}</title>
{% block style_base %}
{% block layout_style %}
<style type="text/css">
@page {
size: {{ pagesize|default:"A4" }};
margin-left: 1cm;
margin-right: 1cm;
@frame header {
-pdf-frame-content: page-header;
margin-top: 1.0cm;
margin-left: 1cm;
margin-right: 0.5cm;
margin-bottom: 0.5cm;
height: 3cm;
}
@frame content {
top: 0.5cm;
margin-top: 3.5cm;
margin-bottom: 0.5cm;
margin-left: 1.75cm;
margin-right: 1.5cm;
}
@frame footer {
-pdf-frame-content: page-footer;
bottom: 0cm;
margin-left: 1cm;
margin-right: 1.5cm;
height: 2cm;
}
}
</style>
{%endblock%}
{% block extra_style %}{% endblock %}
{% endblock %}
</head>
<body>
<div id="page-header">
{%block page_header%}
{%endblock%}
</div>
<div id="page-content">
{%block page_content%}
{%endblock%}
</div>
<div id="page-footer">
{%block page_foot%}
{%endblock%}
</div>
</body>
</html>
在我的模板 templates / report.html
中{% extends "easy_pdf/base.html" %}
{% load static %}
{% block page_title %}
{# Page title here #}
{% endblock %}
{% block extra_style %}
<style type="text/css">
{# Extra CSS styles here #}
</style>
{% endblock %}
{% block page_header %}
{% include "header.html" %}
{% endblock %}
{% block page_content %}
{# Page 1 #}
<pdf:nextpage />
{# Page 2 #}
<pdf:nextpage />
{# Page 3 #}
{% endblock %}
{% block page_foot %}
{% include "footer.html" %}
{% endblock %}
<强>模板/ header.html中强>
<h1>Hello World!!!</h1>
<强>模板/ footer.html 强>
<h1>Goodbye World!!!</h1>
希望它有所帮助;)。