问题描述
尝试在xhtml2pdf生成的pdf文档中每页输出一张表格。
文档中没有任何内容真正说明如何实现这一目标,而前端的东西并不是我的强项
这是我到目前为止得到的:
{% load static %}
<!DOCTYPE html>
<html>
<head>
<style>
@page {
@frame header_frame { /* Static Frame */
-pdf-frame-content: header_content;
left: 50pt; width: 512pt; top: 50pt; height: 200pt;
}
size: a4 portrait;
@frame content_frame {/* Content Frame */
left: 50pt; width: 512pt; top: 230pt; height: 700pt;
}
}
table {
width:100%;
}
table.print-friendly tr td,table.print-friendly tr th {
page-break-inside: avoid;
}
table,th,td {
border: 1px solid black;
border-collapse: collapse;
}
th,td {
padding: 2px;
text-align: left;
}
table#t01 tr:nth-child(even) {
background-color: #eee;
}
table#t01 tr:nth-child(odd) {
background-color: #fff;
}
/* table#t01 th {
background-color: black;
color: white;
} */
body{
font-size: 12px;
}
h1,h2,h3,h4,h5,h6,p{
padding: 0;
margin: 0;
}
img{
float: left;
}
</style>
</head>
<body>
<div id="header_content">
<th colspan="5" style="text-align: center;">
<div style="text-align: left">
<h3></h3>
<p style="padding-bottom: 2px; margin: 0; font-size: 20px;">{{ my_company.name }}</p>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">{{ my_company.address }}</p>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">{{ my_company.city }},{{ my_company.zip_code }}</p>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">{{ my_company.zip_code }}</p>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">Tel: {{ my_company.telephone }}</p>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">SIRET: {{ my_company.registration_number }}</p>
<h3 style="padding-bottom: 2px; margin: 0;">
</h3>
</div>
</th>
<th colspan="3" style="text-align: center;">
<div style="text-align: right">
<h3></h3>
<p style="padding-bottom: 2px; margin: auto; font-size: 14px;">To: {{ customer }}</p>
</div>
</div>
<th colspan="3" style="text-align: center;">
<div style="text-align: right">
<h3></h3>
<p style="padding-bottom: 4px; margin: auto; font-size: 18px;"> Invoice No: {{ invoice_number }}</p>
<p style="padding-bottom: 2px; margin: auto; font-size: 15px;"> Date: {{ Date }}</p>
<br>
<br>
</th>
</div>
<table class='print-friendly' id="t01">
<tr>
<th style="text-align: center; width: 30%">Designation</th>
<th style="text-align: center; width: 80%">Description</th>
<th style="text-align: center; width: 15%">Quantity</th>
<th style="text-align: center; width: 15%">Rate</th>
<th style="text-align: center; width: 25%">Total</th>
</tr>
{% for a,b in tableau %}
<tr>
<td> {{ b.Id }}<br><br></td>
<td> {{ b.Description }}<br><br></td>
<td>{{ b.Quantity }}</td>
<td>{{ a }} $ </td>
<td>{{ b.NetAmount }} $ </td>
</tr>
{% endfor %}
<!-- {% if works|length == 1 %}
<tr style="border-bottom-style: hidden;">
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
</tr>
<tr style="border-bottom-style: hidden;">
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
</tr>
<tr>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
</tr>
{% endif %}
{% if works|length == 2 %}
<tr style="border-bottom-style: hidden;">
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
</tr>
<tr>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
<td style="padding-top: 100px;"> </td>
</tr>
{% endif %} -->
<tr>
<td colspan="4"><b> Total Before Tax:</b> </td>
<td>{{total_ht}} $</td>
</tr>
<tr>
<td colspan="4"><b> TVA {{ my_company.TVA }} %:</b> </td>
<td>{{ tva_value }}$</td>
</tr>
<tr>
<td colspan="4"><b> Total TTC:</b> </td>
<td>{{ total_ttc }} $</td>
</tr>
</table>
<br>
<br>
<br>
<th colspan="5" style="text-align: center;">
<div style="text-align: left">
<h3 style="padding-bottom: 2px; margin: 0; font-size: 10px;">Payment is due within {{ my_company.payment_due_date }} days from the day where the goods are received</h3>
<br>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">{{ my_company.conditions }}</p>
<br>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">Tax Identification Number {{ my_company.TVA }}</p>
</th>
</div>
<br>
<br>
<br>
<th colspan="3" style="text-align: center;">
<div style="text-align: right">
<h3></h3>
<p style="padding-bottom: 4px; margin: auto; font-size: 18px;"> Shipping No: {{ shipping_number }}</p>
<p style="padding-bottom: 2px; margin: auto; font-size: 15px;"> Date: {{ Date }}</p>
<br>
<br>
</th>
</div>
<table class='print-friendly' id="t01">
<tr>
<th style="text-align: center; width: 30%">Designation</th>
<th style="text-align: center; width: 80%">Description</th>
<th style="text-align: center; width: 15%">Quantity</th>
<th style="text-align: center; width: 15%">Rate</th>
<th style="text-align: center; width: 25%">Total</th>
</tr>
{% for a,b in tableau %}
<tr>
<td> {{ b.Id }}<br><br></td>
<td> {{ b.Description }}<br><br></td>
<td>{{ b.Quantity }}</td>
<td>{{ a }} $ </td>
<td>{{ b.NetAmount }} $ </td>
</tr>
{% endfor %}
<tr>
<td colspan="4"><b> Total Before Tax:</b> </td>
<td>{{total_ht}} $</td>
</tr>
<tr>
<td colspan="4"><b> TVA {{ my_company.TVA }} %:</b> </td>
<td>{{ tva_value }}$</td>
</tr>
<tr>
<td colspan="4"><b> Total TTC:</b> </td>
<td>{{ total_ttc }} $</td>
</tr>
</table>
<br>
<br>
<th colspan="5" style="text-align: center;">
<div style="text-align: left">
<h3 style="padding-bottom: 2px; margin: 0; font-size: 10px;">Shipping is occuring on </h3>
<br>
<p style="padding-bottom: 2px; margin: 0; font-size: 10px;">Shipping conditions{{ my_company.conditions }}</p>
<br>
</th>
</div>
<br>
<!-- JavaScript files-->
<script src="{% static 'vendor/jquery/jquery.min.js' %}" type="text/javascript"></script>
<script src="{% static 'vendor/popper.js/umd/popper.min.js' %}" type="text/javascript"> </script>
<script src="{% static 'vendor/bootstrap/js/bootstrap.min.js' %}" type="text/javascript"></script>
<script src="{% static 'vendor/jquery.cookie/jquery.cookie.js' %}" type="text/javascript"> </script>
<script src="{% static 'vendor/chart.js/Chart.min.js' %}" type="text/javascript"></script>
<script src="{% static 'vendor/jquery-validation/jquery.validate.min.js' %}" type="text/javascript"></script>
<script src="{% static 'js/charts-home.js' %}"></script>
<script src="{% static 'js/front.js' %}"></script>
</body>
问题又来了:如何强制每页一张表,或者至少让一个新表从新页开始
解决方法
如果有人遇到这个问题
添加标签
<pdf:nextpage>
将在该标签之后创建一个新页面。这是具有更多功能的链接https://fwpn.org.pl/assets/event_attachments/asd.html