产品较少
有更多产品
保持恶化
使用 table {-pdf-keep-in-frame-mode: overflow;}
数据被截断
我在Django Python中使用 XHTML2PDF 库,我已经尝试过:
@frame
,它可以工作,但是即使使用{-pdf-keep-in-frame-mode: shrink;}
也会截断内容pdf:nextpage
标签 p { margin: 0; -pdf-keep-with-next: true; }
并将表数据放在段落中
我想要的是:
当产品尺寸增大时,如果它们掉落到页面上,则页面会自动断裂,其余产品应打印到下一页。
注意:我正在使用单个html模板
我不能将pdf:nextpage
用作:
产品名称(尺寸)差异很大,因此5个项目或10个项目后不能中断页面,而且我只能使用html模板,不能使用 reportlab 标签。
HTML:
<html>
Not actual HTML code, but looks like
<style>
@page {
size: a5 portrait;
margin-top: 0;
margin-bottom: 0;
}
table { -pdf-keep-in-frame-mode: shrink;}
<style>
<body>
<table><tbody><tr><th> ---------- Removing this line, everything works fine!
{% for data in products %}
<table><tr><td>{{data.product_name}}<table><tr><td>
<tr><td>{{data.mrp}}<table><tr><td>
<tr><td>{{data.selling_price}}<table><tr><td></table>
{% endfor %}
</body>
</html>
</th></tr></tbody></table> ----------- and corresponding closing tags
products_list = [
{'product_name': 'Amul Cow Milk , 500ml', 'mrp': 20.0, 'selling_price': 20.0},
{'product_name': 'Amul Cow Milk , 500ml', 'mrp': 20.0, 'selling_price': 20.0},
{'product_name': 'Amul Cow Milk , 500ml', 'mrp': 20.0, 'selling_price': 20.0},]
Python Django API如下:
# Render HTML to PDF
context_dic = {"products": products_list}
template = get_template("invoice.html")
html = template.render(context_dic)
response = HttpResponse(content_type='application/pdf')
pisa_status = pisa.CreatePDF(html, dest=response)
if pisa_status.err:
return "render-error"
return response