Invoice PDF Customization

Create an advanced PDF template to apply to different transaction forms

<?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">
<pdf>
<head>
	<link name="NotoSans" type="font" subtype="truetype" src="${nsfont.NotoSans_Regular}" src-bold="${nsfont.NotoSans_Bold}" src-italic="${nsfont.NotoSans_Italic}" src-bolditalic="${nsfont.NotoSans_BoldItalic}" bytes="2" />
	<#if .locale == "zh_CN">
		<link name="NotoSansCJKsc" type="font" subtype="opentype" src="${nsfont.NotoSansCJKsc_Regular}" src-bold="${nsfont.NotoSansCJKsc_Bold}" bytes="2" />
	<#elseif .locale == "zh_TW">
		<link name="NotoSansCJKtc" type="font" subtype="opentype" src="${nsfont.NotoSansCJKtc_Regular}" src-bold="${nsfont.NotoSansCJKtc_Bold}" bytes="2" />
	<#elseif .locale == "ja_JP">
		<link name="NotoSansCJKjp" type="font" subtype="opentype" src="${nsfont.NotoSansCJKjp_Regular}" src-bold="${nsfont.NotoSansCJKjp_Bold}" bytes="2" />
	<#elseif .locale == "ko_KR">
		<link name="NotoSansCJKkr" type="font" subtype="opentype" src="${nsfont.NotoSansCJKkr_Regular}" src-bold="${nsfont.NotoSansCJKkr_Bold}" bytes="2" />
	<#elseif .locale == "th_TH">
		<link name="NotoSansThai" type="font" subtype="opentype" src="${nsfont.NotoSansThai_Regular}" src-bold="${nsfont.NotoSansThai_Bold}" bytes="2" />
	</#if>
    <macrolist>
        <macro id="nlheader">
            <table class="header" style="height:100px;width:1009px;"><tr>
	<td align="left" style="width: 537px; height: 119px;"><#if subsidiary.logo?length != 0><img height="50px" src="${subsidiary.logo@url}" style="float: left; margin: 5px" vertical-align="top" width="150px" /></#if></td>
	<td align="left" style="width: 460px; height: 119px;">
	<h1>Tax Invoice</h1>

	<h2 style="font-size: 13pt;">Invoice#&nbsp; &nbsp; &nbsp;${record.tranid}</h2>
	<br />&nbsp;</td>
	</tr></table>
        </macro>
        <macro id="nlfooter">
            <table align="right" border="0" class="footer"><tr>
	<td align="right" style=" padding-right: -21px;"><pagenumber/> of <totalpages/></td>
	</tr></table>
        </macro>
    </macrolist>
    <style type="text/css">table {
				<#if .locale == "zh_CN">
				  font-family: stsong, sans-serif;
        <#elseif .locale == "zh_TW">
          font-family: msung, sans-serif;
        <#elseif .locale == "ja_JP">
          font-family: heiseimin, sans-serif;
        <#elseif .locale == "ko_KR">
          font-family: hygothic, sans-serif;
        <#elseif .locale == "ru_RU">
          font-family: verdana;
        <#else>
          font-family: sans-serif;
        </#if>
      
      font-size: 9pt;
				margin-top: 10px;
				table-layout: fixed;
				width: 100%;
                               
			}
			th {
				font-weight: bold;
				font-size: 10pt;
				vertical-align: middle;
				padding-right: 8px;
				padding-left: 8px;
				padding-bottom: 3px;
				padding-top: 5px;
                                background-color: #00467F;
				color: #ffffff;

			}
			td {
				padding-right: 6px;
				padding-left: 6px;
				padding-bottom: 4px;
				padding-top: 4px;

			}
			b {
			   font-weight: bold;
			   color: #333333;
			}
      table.shiptab{
        border-collapse: collapse;
      }

                        body {
                           background-color: #ffffff;
                        }

                        table.border_bottom tr{
                           border-bottom: 3px solid #black;
                        }
      table.header{
        margin-top:-10px;
      }
                        
			table.header td {
				padding: 0px;
				font-size: 10pt;
                
			}
      table.itemtable{
        border:0.5px;
      }
      
			table.itemtable th {
				padding-bottom: 5px;
				padding-top: 5px;
			}
                        table.itemtable td {
				border-left: 0.5px solid #808080;
                border-right: 0.5px solid #808080;
			}
			table.body td {
				padding-top: 2px;
			}
			table.total {
				page-break-inside: avoid;
			}

                        table.total td{
				color: #2B547E;
			}

			tr.totalrow {
				background-color: #ffffff;
				line-height: 200%;
                                color: #2B547E;
			}
			
			td.addressheader {
				font-size: 8pt;
				padding-top: 8px;
				padding-bottom: 2px;
                text-transform: uppercase;
                                
			}
			td.address {
				padding-top: 0px;
               font-weight: normal;
               color:black;
			   text-transform: uppercase;
                               
			}
                        td.item {
				padding-top: 0px;
                          font-size: 7pt;
                                border: 0px solid #ffffff;
			}
			
			span.title {
				font-size: 14pt;
			}
			span.number {
				font-size: 16pt;
                                color:#00467f;
			}
                        span.total {
				<!--color:#00467f;-->
                                font-size: 10pt;
			}
			
			hr {
				width: 100%;
				color: #d3d3d3;
				
				height: 1px;
			}
</style>
</head>
<body header="nlheader" header-height="8%" footer="nlfooter" footer-height="8%" padding="0.2in 0.5in 0.5in 0.5in" size="Letter-LANDSCAPE">
    <table border="0" cellpadding="1" cellspacing="1" class="shiptab" style="width: 830px; border-collapse: collapse;"><tr>
	<td rowspan="4" style="width: 533px; border-color: rgb(255, 255, 255); white-space: nowrap; height: 111px;">PO Box 540, Pukekohe 2340, New Zealand<br />9-15 Sweetcorn Place, Pukekohe 2120<br />P: +64 9 238 3402, F: +64 9 238 3405<br />E: admin@furtex.co.nz | www.furtex.co.nz&nbsp; &nbsp; &nbsp;<br />GST No. 106-705-690</td>
	<th colspan="2" rowspan="1" style="width: 265px; background-color: rgb(187, 187, 187); height: 22px; border-width: 0.5px; border-style: solid; border-color: rgb(128, 128, 128);">Shipment ID</th>
	</tr>
	<tr>
	<td colspan="2" rowspan="1" style="width: 269px; height: 27px; border-width: 0.5px; border-style: solid; border-color: rgb(128, 128, 128);">${record.custbody_jj_fl_related_if_num}</td>
	</tr>
	<tr>
	<th style="width: 96px; background-color: rgb(187, 187, 187); border-width: 0.5px; border-style: solid; border-color: rgb(128, 128, 128);">${record.trandate@label}</th>
	<th style="width: 56px; background-color: rgb(187, 187, 187); border-left: 0.5px solid rgb(128, 128, 128); border-right: 0.5px solid rgb(128, 128, 128);">${record.entity@label}</th>
	</tr>
	<tr>
	<td style="width: 100px; border-width: 0.5px; border-style: solid; border-color: rgb(128, 128, 128);">${record.trandate}</td>
	<td style="width: 100px; border-width: 0.5px; border-style: solid; border-color: rgb(128, 128, 128);">${record.entity}</td>
	</tr></table>

<table align="left" border="0" width="100%"><tr>
	<td class="addressheader" colspan="6"><b>${record.billaddress@label}</b></td>
	<td>&nbsp;</td>
	<td class="addressheader" colspan="6"><b>${record.shipaddress@label}</b></td>
	</tr>
	<tr>
	<td class="address" colspan="6"><span>${record.billaddress}</span></td>
	<td>&nbsp;</td>
	<td class="address" colspan="6"><span>${record.shipaddress}</span></td>
	</tr></table>

<table align="left" class="itemtable" width="100%">
<thead>
	<tr>
	<th colspan="8" style="background-color: rgb(187, 187, 187); width: 211px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${record.otherrefnum@label}</th>
	<th colspan="9" style="background-color: rgb(187, 187, 187); width: 168px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${record.custbodyspot_vendor_no@label}</th>
	<th colspan="7" style="background-color: rgb(187, 187, 187); width: 158px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">Tracking #</th>
	<th colspan="7" style="background-color: rgb(187, 187, 187); width: 196px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${record.currency@label}</th>
	</tr>
</thead><tr>
	<td colspan="8" style="width: 215px;"><span style="color:#0f0e0e;">${record.otherrefnum}</span></td>
	<td colspan="9" style="width: 172px;"><span style="color:#0f0e0e;">${record.custbodyspot_vendor_no}</span></td>
	<td colspan="7" style="width: 162px;">${record.custbody_avt_ifs_trackingid}</td>
	<td colspan="7" style="width: 200px;"><span style="color:#0f0e0e;">${record.currency}</span></td>
	</tr></table>

<table align="left" class="itemtable" style="width:815px;" width="100%">
<thead>
	<tr>
	<th colspan="8" style="background-color: rgb(187, 187, 187); border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${record.terms@label}</th>
	<th colspan="9" style="background-color: rgb(187, 187, 187); border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${record.duedate@label}</th>
	<th colspan="7" style="background-color: rgb(187, 187, 187); border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${record.custbody_appro@label}</th>
	<th colspan="13" style="background-color: rgb(187, 187, 187); width: 259px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${record.createdfrom@label}</th>
	</tr>
</thead><tr>
	<td colspan="8" style="align: left;"><span style="color:#0f0e0e; ">${record.terms}</span></td>
	<td colspan="9" style="align: left;"><span style="color:#0f0e0e;">${record.duedate}</span></td>
	<td colspan="7" style="align: left;"><span style="color:#0f0e0e;">${record.custbody_appro}</span></td>
	<td colspan="13" style="width: 263px;"><span style="color:#0f0e0e;">${record.createdfrom}</span></td>
	</tr></table>
<#if record.item?has_content>

<table align="left" class="itemtable" width="100%"><!-- start items --><#list record.item as item><#if item_index==0>
<thead>
	<tr>
	<th colspan="8" style="background-color: rgb(187, 187, 187); width: 305px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.description@label}</th>
	<th style="background-color: rgb(187, 187, 187); width: 96px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.custcolean_no@label}</th>
	<th colspan="9" style="background-color: rgb(187, 187, 187); width: 82px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.quantity@label}</th>
	<th colspan="4" style="background-color: rgb(187, 187, 187); width: 82px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.quantityremaining@label}</th>
	<th colspan="3" style="background-color: rgb(187, 187, 187); width: 46px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.units@label}</th>
	<th colspan="6" style="background-color: rgb(187, 187, 187); width: 81px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.rate@label}</th>
	<th colspan="7" style="background-color: rgb(187, 187, 187); width: 68px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.amount@label}</th>
	<th style="background-color: rgb(187, 187, 187); width: 79px; border-bottom: 0.5px solid #808080; border-right: 0.5px solid #808080; 
                           border-left: 0.5px solid #808080; border-top: 0.5px solid #808080;">${item.custcol_item_code@label}</th>
	</tr>
</thead>
</#if><tr>
	<td colspan="8" style="width: 309px;"><span style="color:#0f0e0e; "><#if item.description?length gt 50>${item.description?substring(0, 50)}...<#else>${item.description}</#if></span></td>
	<td style="width: 100px;">${item.custcolean_no}</td>
	<td colspan="9" style="width: 86px;"><span style="color:#0f0e0e;">${item.quantity}</span></td>
	<td colspan="4" style="width: 86px;">${item.quantityremaining}</td>
	<td colspan="3" style="width: 50px;"><span style="color:#0f0e0e;">${item.units}</span></td>
	<td colspan="6" style="width: 85px;"><span style="color:#0f0e0e;">${item.rate}</span></td>
	<td colspan="7" style="width: 72px;"><span style="color:#0f0e0e;">${item.amount}</span></td>
	<td style="width: 83px;">${item.custcol_item_code}</td>
	</tr>
	</#list><!-- end items --></table>
</#if>

<table align="left" border="0" class="itemtable" style="width: 820px;" width="100%"><tr>
	<td class="item" colspan="24" rowspan="4" style="width: 578px; height: 89px;font-size:8pt; ">${subsidiary.custrecordjj_sub_disclaimer}</td>
	<td colspan="6" style="border-color: rgb(255, 255, 255); width: 101px; height: 9px; font-size: 11pt;"><b>${record.subtotal@label}</b></td>
	<td colspan="7" style="border-color: rgb(255, 255, 255); width: 90px; height: 9px; font-size: 11pt;"><b>${record.subtotal}</b></td>
	</tr>
	<tr>
	<td colspan="6" style="width: 101px; border-color: rgb(255, 255, 255); height: 6px; font-size: 11pt;"><b>Freight(Freight)</b></td>
	<td colspan="7" style="width: 90px; border-color: rgb(255, 255, 255); height: 6px; font-size: 11pt;"><b>${record.shippingcost}</b></td>
	</tr>
	<tr>
	<td colspan="6" style="width: 101px; border-color: rgb(255, 255, 255); height: 6px; font-size: 11pt;"><b>Total Tax</b></td>
	<td colspan="7" style="width: 90px; border-color: rgb(255, 255, 255); height: 6px; font-size: 11pt;"><b>${record.taxtotal}</b></td>
	</tr>
	<tr>
	<td colspan="6" style="border-color: rgb(255, 255, 255); width: 101px; height: 6px; font-size: 11pt;"><b>Total</b></td>
	<td colspan="7" style="border-color: rgb(255, 255, 255); width: 90px; height: 6px; font-size: 11pt;"><b>${record.total}</b></td>
	</tr>
	<tr>
	<td class="item" colspan="24" style="width: 578px; height: 21px;">&nbsp;</td>
	<td colspan="6" style="width: 101px; border-color: rgb(255, 255, 255); height: 17px; font-size: 11pt;"><b>Amount Due</b></td>
	<td colspan="7" style="width: 90px; border-color: rgb(255, 255, 255); height: 17px; font-size: 11pt;"><b>${record.amountremaining}</b></td>
	</tr></table>

<hr style="border-top: dotted 2px;" />
<table align="left" border="0" class="itemtable" style="width:706.85px;" width="100%"><tr>
	<td class="item" colspan="24" rowspan="4" style="width: 389px; height: 136px; font-size: 8pt;">${subsidiary.custrecordjj_remit_advise}<br /><br /><br /><br /><br /><br /><br /><b>Make Cheques Payable To </b><br />Furtex Limited<br />PO Box 540 Pukekohe 2340</td>
	<td colspan="7" style="border-color: rgb(255, 255, 255); width: 281px; height: 9px; font-size: 9pt;"><br /><b>Furtex Limited</b><br /><br /><br /><br /><b>Remittance Slip</b><br />&nbsp;&nbsp;
	<table border="0" cellpadding="1" cellspacing="1" style="width: 570px;"><tr>
		<td style="width: 180px; border-color: rgb(255, 255, 255); font-size: 8pt;"><b>Customer</b></td>
		<td style="width: 357px; border-color: rgb(255, 255, 255); font-size: 8pt;">${record.entity}</td>
		</tr>
		<tr>
		<td style="width: 180px; border-color: rgb(255, 255, 255); font-size: 8pt;"><b>Invoice #</b></td>
		<td style="width: 357px; border-color: rgb(255, 255, 255); font-size: 8pt;">${record.tranid}</td>
		</tr>
		<tr>
		<td style="width: 180px; border-color: rgb(255, 255, 255); font-size: 8pt;"><b>Amount Due</b></td>
		<td style="width: 357px; border-color: rgb(255, 255, 255); font-size: 8pt;">${record.amountremaining}</td>
		</tr>
		<tr>
		<td style="width: 180px; border-color: rgb(255, 255, 255); font-size: 10pt;"><b>Amount Paid</b></td>
		<td style="width: 357px; border-color: rgb(255, 255, 255);">___________________</td>
		</tr></table>
	</td>
	</tr>
	<tr>
	<td colspan="6" style="width: 233px; border-color: rgb(255, 255, 255); height: 6px;">&nbsp;</td>
	<td colspan="7" style="width: 4.85004px; border-color: rgb(255, 255, 255); height: 6px;">&nbsp;</td>
	<td style="width: 1px; border-color: rgb(255, 255, 255); height: 6px;">&nbsp;</td>
	</tr>
	<tr>
	<td colspan="6" style="width: 233px; border-color: rgb(255, 255, 255); height: 6px;">&nbsp;</td>
	<td colspan="7" style="width: 4.85004px; border-color: rgb(255, 255, 255); height: 6px;">&nbsp;</td>
	<td style="width: 1px; border-color: rgb(255, 255, 255); height: 6px;">&nbsp;</td>
	</tr>
	<tr>
	<td colspan="6" style="border-color: rgb(255, 255, 255); width: 233px; height: 20px;">&nbsp;</td>
	<td colspan="7" style="border-color: rgb(255, 255, 255); width: 4.85004px; height: 20px;">&nbsp;</td>
	<td style="border-color: rgb(255, 255, 255); width: 1px; height: 20px;">&nbsp;</td>
	</tr>
	<tr>
	<td class="item" colspan="24" style="width: 389px; height: 41px;">&nbsp;</td>
	<td colspan="6" style="width: 233px; border-color: rgb(255, 255, 255); height: 37px;">&nbsp;</td>
	<td colspan="7" style="width: 4.85004px; height: 37px; border-color: rgb(255, 255, 255);">&nbsp;</td>
	<td style="width: 1px; border-color: rgb(255, 255, 255); height: 37px;">&nbsp;</td>
	</tr></table>
</body>
</pdf>

Leave a comment

Your email address will not be published. Required fields are marked *