Hi @centaur
can you please help with page break coding with this
<center><h3 style="color:DodgerBlue;">TAX INVOICE</h3 style="color:DodgerBlue;"><center>
<table width=100% height=100% border=1>
<tr>
<td width=30% rowspan=3>
<b><left><h6.5>AEROTEK DESIGN</b></h6.5><left><br>
<left><h6.5>Unit:3, Plot NO-27A </h6.5><left>
<br>
<left><h6.5>Peenya, Bengaluru - 560058</h6.5><left>
<br
<left><h6.5>Karnataka, State Code: 29</h6.5><left> <br>
<left><h6.5>India</h6.5><left><br>
<left><h7>Phone: +91 (0) 80 41626362 </h6.5><left> <br>
<left><h6.5>Email: accounts@aerotekgroup.com</h6.5><left> <br>
<h6.5>GSTIN:29AJHPB8312L1Z2</h6.5><left> <br>
</td>
<td width=25%>
Invoice No.<br>
<b>{{ doc.name }}</b>
</td>
<td width=25%>
Dated<br>
<b>{{ frappe.utils.formatdate(doc.posting_date) }}</b>
</td>
</tr>
<td width=25%>
Delivery Note<br>
</td>
<td width=25%>
Mode of Payment<br>
<b>{{ doc.mode_of_payment or " " }}<b></b><br>
</td>
</tr>
<tr>
<td width=25%>
Supplier's Ref.<br>
</td>
<td width=25%>
Other Reference(s)<br>
</td>
</tr>
<tr>
<td width=45% rowspan=4>
<br>
<i>Consignee (Bill to)</i><br>
<strong>{{ doc.customer_name or "" }}</strong><br>
{{ doc.address_display or "" }}
</td>
<td width=25%>
PO No.
<b>{{ doc.po_no or " " }}<b></b><br>
</td>
<td width=25%>
Dated<br>
<b>{{ frappe.utils.formatdate(doc.po_date) }}</b>
</td>
</tr>
<tr>
<td width=25%>
Dispatch No.<br>
</td>
<td width=25%>
Dated<br>
</td>
</tr>
<tr>
<td width=25%>
Mode of Transport<br>
<b>{{ doc.mode_of_transport or " " }}</b>
</td>
<td width=25%>
<i> Consignee (Ship to)</i>
<B>{{ doc.shipping_address_name or " " }}</b>
</td>
</tr>
<tr>
<td width=25% height=25 colspan=2>
Terms of Delivery
<b>{{ doc.tc_name or " " }}</b><br>
</td>
</tr>
</table>
<TABLE cellpadding=0 cellspacing=0 width=100% border=1>
<TR>
<tbody>
<tr>
<th>SL NO</th>
<th>DESCRIPTION</th>
<th>HSN/ASN</th>
<th class="text-right">QUANTITY</th>
<th class="text-right">UNIT RATE</th>
<th class="text-right">AMOUNT</th>
</tr>
{% set cgst_rate = [] -%}
{% set sgst_rate = [] -%}
{% set igst_rate = [] -%}
{% set cgst_account_head = [] -%}
{% set sgst_account_head = [] -%}
{% set igst_account_head = [] -%}
{% set tot_cgst_amount = [] %}
{% set tot_sgst_amount = [] %}
{% set grand_total = {"qty":0.0, "amount":0.0, "cgst_amt":0.0, "sgst_amt":0.0, "igst_amt":0.0} %}
{%- for row in doc.taxes -%}
{% if 'CGST' in row.account_head -%}
{% set _ = cgst_account_head.append(row.account_head) %}
{% set _ = cgst_rate.append(row.rate) %}
{%- endif -%}
{% if 'SGST' in row.account_head -%}
{% set _ = sgst_account_head.append(row.account_head) %}
{% set _ = sgst_rate.append(row.rate) %}
{%- endif -%}
{% if 'IGST' in row.account_head -%}
{% set _ = igst_account_head.append(row.account_head) %}
{% set _ = igst_rate.append(row.rate) %}
{%- endif -%}
{%- endfor -%}
{%- for row in doc.items -%}
<tr>
{% set cgst_amt = [] -%}
{% set sgst_amt = [] -%}
{% set igst_amt = [] -%}
{% set it_cgst_rate = [] -%}
{% set it_sgst_rate = [] -%}
{% set it_igst_rate = [] -%}
{% set rate_found_item = 0 -%}
{%- set item_record = frappe.get_doc("Item", row.item_code) -%}
{% for item_tax in item_record.taxes %}
{% if item_tax.tax_type == igst_account_head[0] %}
{% set _ = it_igst_rate.append(item_tax.tax_rate) %}
{% set _ = igst_amt.append(row.amount * it_igst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% if item_tax.tax_type == sgst_account_head[0] %}
{% set _ = it_sgst_rate.append(item_tax.tax_rate) %}
{% set _ = sgst_amt.append(row.amount * it_sgst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% if item_tax.tax_type == cgst_account_head[0] %}
{% set _ = it_cgst_rate.append(item_tax.tax_rate) %}
{% set _ = cgst_amt.append(row.amount * it_cgst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% endfor %}
{% if rate_found_item == 0 %}
{% if cgst_rate[0] -%}
{% set _ = cgst_amt.append((row.amount * cgst_rate[0])/100) -%}
{% set _= it_cgst_rate.append(cgst_rate[0]) -%}
{% set rate_found_inv = 1 -%}
{%- endif -%}
{% if sgst_rate[0] -%}
{% set _ = sgst_amt.append((row.amount * sgst_rate[0])/100) -%}
{% set _= it_sgst_rate.append(sgst_rate[0]) -%}
{%- endif -%}
{% if igst_rate[0] -%}
{% set _ = igst_amt.append((row.amount * igst_rate[0])/100) -%}
{% set _= it_igst_rate.append(igst_rate[0]) -%}
{% set rate_found_inv = 1 -%}
{%- endif -%}
{% endif %}
{% if not it_cgst_rate[0] %}
{% set _ = it_cgst_rate.append(0) %}
{% set _ = cgst_amt.append(0) %}
{% endif %}
{% if not it_sgst_rate[0] %}
{% set _ = it_sgst_rate.append(0) %}
{% set _ = sgst_amt.append(0) %}
{% endif %}
{% if not it_igst_rate[0] %}
{% set _ = it_igst_rate.append(0) %}
{% set _ = igst_amt.append(0) %}
{% endif %}
{% set temp_cgst_amt = grand_total["cgst_amt"] + cgst_amt[0] %}
{% set temp_sgst_amt = grand_total["sgst_amt"] + sgst_amt[0] %}
{% set temp_igst_amt = grand_total["igst_amt"] + igst_amt[0] %}
{% set temp_qty = grand_total["qty"] + row.qty %}
{% set temp_amount = grand_total["amount"] + row.amount %}
{% set check = grand_total.update({"qty": temp_qty, "amount": temp_amount, "cgst_amt":temp_cgst_amt, "sgst_amt":temp_sgst_amt, "igst_amt":temp_igst_amt}) %}
<td style="width: 5%;"><font size = "1">{{ row.idx }}</font></td>
<td style="width: 25%;"><font size = "1">
{% if row.item_code != row.item_name -%}
<b>{{ row.item_code}}</b><br>
{%- endif %}
{{ row.item_name }}
</font></td>
<td style="width: 10%;"><font size = "1">{{ row.gst_hsn_code }}</font></td>
<td style="width: 10%; text-align: left;"><font size = "1">{{ row.qty }}<br><small>{{ row.uom or row.stock_uom }}</small> </font></td>
<td style="width: 10%; text-align: right;"><font size = "1">{{
row.get_formatted("rate", doc) }}</font></td>
<td style=display:none;"width: 11%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(cgst_amt[0]) }}<br><small>{{
it_cgst_rate[0] }}%</small></font></td>
<td style=display:none;"width: 11%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(sgst_amt[0]) }}<br><small>{{
it_sgst_rate[0] }}%</small></font></td>
<td style=display:none;"width: 11%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(igst_amt[0]) }}<br><small>{{
it_igst_rate[0] }}%</small></font></td>
<td style="width: 11%; text-align: right;"><font size = "1">{{
row.get_formatted("amount", doc) }}</font></td>
</td>
</tr>
{% set trate = "" %}
{% endfor %}
<!-- {% set loop = 10 - doc.items|length %}
{% for i in range(loop) %}
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TABLE cellpadding=2 cellspacing=1 width=100% border=1>
</td>
</TR>
{% endfor %} -->
</TABLE>
<TABLE cellpadding=0 cellspacing=0 width=100% border=1>
<TR> <TD rowspan=3 >
Amount in Words<br>
<B>{{ doc.base_in_words }}</B>
</TD>
<TD WIDTH=15% align=right>SUB TOTAL</TD>
<TD WIDTH=15% align=right>{{ doc.get_formatted("total", doc) }}</TD>
</TR>
<TR>
<TD align=right>CGST - 9%</TD>
<TD WIDTH=20% align=right>{{ "₹ {:,.2f}".format(grand_total["cgst_amt"]) }}</TD>
</TR>
<TR>
<TD align=right>SGST - 9%</TD>
<TD WIDTH=20% align=right>{{ "₹ {:,.2f}".format(grand_total["sgst_amt"]) }}</TD>
</TR>
<TD WIDTH=60% align=right><B><TD align=right><B>TOTAL</B></TD>
<TD WIDTH=60% align=right><B>{{ doc.get_formatted("grand_total", doc) }}</B></TD>
</TR>
<TR>
<TD WIDTH=60% align=right><B><TD align=right>ROUND OFF</TD>
<TD WIDTH=60% align=right><B>{{ doc.get_formatted("rounding_adjustment", doc) }}</B></TD>
</TR>
<TR>
</TR>
<TR>
<TD WIDTH=60% align=right><B><TD align=right><B>GRAND TOTAL</B></TD>
<TD WIDTH=60% align=right><B>{{ doc.get_formatted("base_rounded_total", doc) }}</B></TD>
</TR>
<TR>
<TD colspan=2 height=100>E&OE<br>
<br>
<U><b>DECLARATION:</b></U>
We declare that this invoice shows the actual price of the goods described and that all particulars
are true and correct. <br>
<br>
<u><B>STATE BANK OF INDIA </B></u> <br>
<p>A/c Name : AEROTEK DESIGN <br></p>
<p>A/c No : 38461140033 <br></p>
<p>Branch : SSI Peenya Industrial Area<br></p>
<p>IFSC : SBIN0040284
</TD>
</TD>
<TD align=right colspan=3>
<br>
<br>
For <B>{{ doc.company }}</B>
<br>
<br>
<br>
<br>
<br>
<br>
<div style="position: relative; height: 20px; border: solid; border-style: none;">
<div style="position: relative; height: 20px; border: solid; border-style: none;">
<div style="position: absolute; height: 10px; border: solid; bottom: 0; right: 0; left: 0; border-style: none;">
Authorised Signatory
</div>
</div>
</div>
</div>
<!--<div class="page-break"></div>--!>
<center><h3 style="color:DodgerBlue;">TAX INVOICE</h3 style="color:DodgerBlue;"><center>
<table width=100% height=100% border=1>
<tr>
<td width=30% rowspan=3>
<b><left><h6.5>AEROTEK DESIGN</b></h6.5><left><br>
<left><h6.5>Unit:3, Plot NO-27A </h6.5><left>
<br>
<left><h6.5>Peenya, Bengaluru - 560058</h6.5><left>
<br
<left><h6.5>Karnataka, State Code: 29</h6.5><left> <br>
<left><h6.5>India</h6.5><left><br>
<left><h7>Phone: +91 (0) 80 41626362 </h6.5><left> <br>
<left><h6.5>Email: accounts@aerotekgroup.com</h6.5><left> <br>
<h6.5>GSTIN:29AJHPB8312L1Z2</h6.5><left> <br>
</td>
<td width=25%>
Invoice No.<br>
<b>{{ doc.name }}</b>
</td>
<td width=25%>
Dated<br>
<b>{{ frappe.utils.formatdate(doc.posting_date) }}</b>
</td>
</tr>
<td width=25%>
Delivery Note<br>
</td>
<td width=25%>
Mode of Payment<br>
<b>{{ doc.mode_of_payment or " " }}<b></b><br>
</td>
</tr>
<tr>
<td width=25%>
Supplier's Ref.<br>
</td>
<td width=25%>
Other Reference(s)<br>
</td>
</tr>
<tr>
<td width=45% rowspan=4>
<br>
<i>Consignee (Bill to)</i><br>
<strong>{{ doc.customer_name or "" }}</strong><br>
{{ doc.address_display or "" }}
</td>
<td width=25%>
PO No.
<b>{{ doc.po_no or " " }}<b></b><br>
</td>
<td width=25%>
Dated<br>
<b>{{ frappe.utils.formatdate(doc.po_date) }}</b>
</td>
</tr>
<tr>
<td width=25%>
Dispatch No.<br>
</td>
<td width=25%>
Dated<br>
</td>
</tr>
<tr>
<td width=25%>
Mode of Transport<br>
<b>{{ doc.mode_of_transport or " " }}</b>
</td>
<td width=25%>
<i> Consignee (Ship to)</i>
<B>{{ doc.shipping_address_name or " " }}</b>
</td>
</tr>
<tr>
<td width=25% height=25 colspan=2>
Terms of Delivery
<b>{{ doc.tc_name or " " }}</b><br>
</td>
</tr>
</table>
<TABLE cellpadding=0 cellspacing=0 width=100% border=1>
<TR>
<tbody>
<tr>
<th>SL NO</th>
<th>DESCRIPTION</th>
<th>HSN/ASN</th>
<th class="text-right">QUANTITY</th>
<th class="text-right">UNIT RATE</th>
<th class="text-right">AMOUNT</th>
</tr>
{% set cgst_rate = [] -%}
{% set sgst_rate = [] -%}
{% set igst_rate = [] -%}
{% set cgst_account_head = [] -%}
{% set sgst_account_head = [] -%}
{% set igst_account_head = [] -%}
{% set tot_cgst_amount = [] %}
{% set tot_sgst_amount = [] %}
{% set grand_total = {"qty":0.0, "amount":0.0, "cgst_amt":0.0, "sgst_amt":0.0, "igst_amt":0.0} %}
{%- for row in doc.taxes -%}
{% if 'CGST' in row.account_head -%}
{% set _ = cgst_account_head.append(row.account_head) %}
{% set _ = cgst_rate.append(row.rate) %}
{%- endif -%}
{% if 'SGST' in row.account_head -%}
{% set _ = sgst_account_head.append(row.account_head) %}
{% set _ = sgst_rate.append(row.rate) %}
{%- endif -%}
{% if 'IGST' in row.account_head -%}
{% set _ = igst_account_head.append(row.account_head) %}
{% set _ = igst_rate.append(row.rate) %}
{%- endif -%}
{%- endfor -%}
{%- for row in doc.items -%}
<tr>
{% set cgst_amt = [] -%}
{% set sgst_amt = [] -%}
{% set igst_amt = [] -%}
{% set it_cgst_rate = [] -%}
{% set it_sgst_rate = [] -%}
{% set it_igst_rate = [] -%}
{% set rate_found_item = 0 -%}
{%- set item_record = frappe.get_doc("Item", row.item_code) -%}
{% for item_tax in item_record.taxes %}
{% if item_tax.tax_type == igst_account_head[0] %}
{% set _ = it_igst_rate.append(item_tax.tax_rate) %}
{% set _ = igst_amt.append(row.amount * it_igst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% if item_tax.tax_type == sgst_account_head[0] %}
{% set _ = it_sgst_rate.append(item_tax.tax_rate) %}
{% set _ = sgst_amt.append(row.amount * it_sgst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% if item_tax.tax_type == cgst_account_head[0] %}
{% set _ = it_cgst_rate.append(item_tax.tax_rate) %}
{% set _ = cgst_amt.append(row.amount * it_cgst_rate[0] / 100) -%}
{% set rate_found_item = 1 -%}
{% endif %}
{% endfor %}
{% if rate_found_item == 0 %}
{% if cgst_rate[0] -%}
{% set _ = cgst_amt.append((row.amount * cgst_rate[0])/100) -%}
{% set _= it_cgst_rate.append(cgst_rate[0]) -%}
{% set rate_found_inv = 1 -%}
{%- endif -%}
{% if sgst_rate[0] -%}
{% set _ = sgst_amt.append((row.amount * sgst_rate[0])/100) -%}
{% set _= it_sgst_rate.append(sgst_rate[0]) -%}
{%- endif -%}
{% if igst_rate[0] -%}
{% set _ = igst_amt.append((row.amount * igst_rate[0])/100) -%}
{% set _= it_igst_rate.append(igst_rate[0]) -%}
{% set rate_found_inv = 1 -%}
{%- endif -%}
{% endif %}
{% if not it_cgst_rate[0] %}
{% set _ = it_cgst_rate.append(0) %}
{% set _ = cgst_amt.append(0) %}
{% endif %}
{% if not it_sgst_rate[0] %}
{% set _ = it_sgst_rate.append(0) %}
{% set _ = sgst_amt.append(0) %}
{% endif %}
{% if not it_igst_rate[0] %}
{% set _ = it_igst_rate.append(0) %}
{% set _ = igst_amt.append(0) %}
{% endif %}
{% set temp_cgst_amt = grand_total["cgst_amt"] + cgst_amt[0] %}
{% set temp_sgst_amt = grand_total["sgst_amt"] + sgst_amt[0] %}
{% set temp_igst_amt = grand_total["igst_amt"] + igst_amt[0] %}
{% set temp_qty = grand_total["qty"] + row.qty %}
{% set temp_amount = grand_total["amount"] + row.amount %}
{% set check = grand_total.update({"qty": temp_qty, "amount": temp_amount, "cgst_amt":temp_cgst_amt, "sgst_amt":temp_sgst_amt, "igst_amt":temp_igst_amt}) %}
<td style="width: 5%;"><font size = "1">{{ row.idx }}</font></td>
<td style="width: 25%;"><font size = "1">
{% if row.item_code != row.item_name -%}
<b>{{ row.item_code}}</b><br>
{%- endif %}
{{ row.item_name }}
</font></td>
<td style="width: 10%;"><font size = "1">{{ row.gst_hsn_code }}</font></td>
<td style="width: 10%; text-align: left;"><font size = "1">{{ row.qty }}<br><small>{{ row.uom or row.stock_uom }}</small> </font></td>
<td style="width: 10%; text-align: right;"><font size = "1">{{
row.get_formatted("rate", doc) }}</font></td>
<td style=display:none;"width: 11%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(cgst_amt[0]) }}<br><small>{{
it_cgst_rate[0] }}%</small></font></td>
<td style=display:none;"width: 11%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(sgst_amt[0]) }}<br><small>{{
it_sgst_rate[0] }}%</small></font></td>
<td style=display:none;"width: 11%; text-align: right;"><font size = "1">{{
"₹ {:,.2f}".format(igst_amt[0]) }}<br><small>{{
it_igst_rate[0] }}%</small></font></td>
<td style="width: 11%; text-align: right;"><font size = "1">{{
row.get_formatted("amount", doc) }}</font></td>
</td>
</tr>
{% set trate = "" %}
{% endfor %}
<!-- {% set loop = 10 - doc.items|length %}
{% for i in range(loop) %}
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TD> </TD>
<TABLE cellpadding=2 cellspacing=1 width=100% border=1>
</td>
</TR>
{% endfor %} -->
</TABLE>
<TABLE cellpadding=0 cellspacing=0 width=100% border=1>
<TR> <TD rowspan=3 >
Amount in Words<br>
<B>{{ doc.base_in_words }}</B>
</TD>
<TD WIDTH=15% align=right>SUB TOTAL</TD>
<TD WIDTH=15% align=right>{{ doc.get_formatted("total", doc) }}</TD>
</TR>
<TR>
<TD align=right>CGST - 9%</TD>
<TD WIDTH=20% align=right>{{ "₹ {:,.2f}".format(grand_total["cgst_amt"]) }}</TD>
</TR>
<TR>
<TD align=right>SGST - 9%</TD>
<TD WIDTH=20% align=right>{{ "₹ {:,.2f}".format(grand_total["sgst_amt"]) }}</TD>
</TR>
<TD WIDTH=60% align=right><B><TD align=right><B>TOTAL</B></TD>
<TD WIDTH=60% align=right><B>{{ doc.get_formatted("grand_total", doc) }}</B></TD>
</TR>
<TR>
<TD WIDTH=60% align=right><B><TD align=right>ROUND OFF</TD>
<TD WIDTH=60% align=right><B>{{ doc.get_formatted("rounding_adjustment", doc) }}</B></TD>
</TR>
<TR>
</TR>
<TR>
<TD WIDTH=60% align=right><B><TD align=right><B>GRAND TOTAL</B></TD>
<TD WIDTH=60% align=right><B>{{ doc.get_formatted("base_rounded_total", doc) }}</B></TD>
</TR>
<TR>
<TD colspan=2 height=100>E&OE<br>
<br>
<U><b>DECLARATION:</b></U>
We declare that this invoice shows the actual price of the goods described and that all particulars
are true and correct. <br>
<br>
<u><B>STATE BANK OF INDIA </B></u> <br>
<p>A/c Name : AEROTEK DESIGN <br></p>
<p>A/c No : 38461140033 <br></p>
<p>Branch : SSI Peenya Industrial Area<br></p>
<p>IFSC : SBIN0040284
</TD>
</TD>
<TD align=right colspan=3>
<br>
<br>
For <B>{{ doc.company }}</B>
<br>
<br>
<br>
<br>
<br>
<br>
<div style="position: relative; height: 20px; border: solid; border-style: none;">
<div style="position: relative; height: 20px; border: solid; border-style: none;">
<div style="position: absolute; height: 10px; border: solid; bottom: 0; right: 0; left: 0; border-style: none;">
Authorised Signatory