Customer Statement PDF Customization

The client(Rabbit Hole Hay-US-NS) would like to create a custom pdf for the customer statement. The mapping and mock-up is already given by the client.
RHHUN-18

<?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd"><pdfset><#if statements?has_content><#list statements as statement>
<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 style="width: 100%;"><tr>
	<td align="right" style="padding-bottom: 4px; padding-right: 0px; padding-top: -9px;"><span style="font-size: 40px; color: #568b4e; font-family: Helvetica Neue, Helvetica, Arial, sans-serif; ">Statement</span></td>
	</tr>
	<tr>
	<td align="right" style="padding-bottom: -28px; padding-right: 0px;"><span style="font-size: 16pt; color: #568b4e; font-family: apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;">${statement.trandate}</span></td>
	</tr>
	<tr>
	<td align="right">&nbsp;</td>
	</tr>
	<tr>
	<td align="right">&nbsp;</td>
	</tr>
	<tr>
	<td align="right" style="padding-left: 476px;"><span style="font-size: 16pt; color: #568b4e; font-weight: bold; font-family: apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;">AMOUNT DUE</span></td>
	</tr>
	<tr>
	<td align="right" style="padding-right: 0px; padding-top: -5px;"><span style="font-size: 28pt; color: #568b4e; font-weight: bold; font-family: apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;">${statement.amountDue}</span></td>
	</tr>
	<tr>
	<td align="right" style="padding-left: 476px;"><span style="font-size: 16pt; color: #568b4e; font-weight: bold; font-family: apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Fira Sans, Droid Sans, Helvetica Neue, sans-serif;">AGING</span></td>
	</tr></table>

<table style="width: 100%;">
  <tr>
    <td style="width: 40%; vertical-align: top;">
    
    </td>
    <td style="width: 60%; vertical-align: top;">
      <table class="align" style="width: 100%;">
        <tr>
          
          <td align="center" style="font-size: 12px; line-height: 14px; color: #568b4e; font-weight: bold; border-right: 2.5px solid #568b4e;">1-30 Days</td>
          <td align="center" style="font-size: 12px; line-height: 14px; color: #568b4e; font-weight: bold; border-right: 2.5px solid #568b4e;">31-60 Days</td>
          <td align="center" style="font-size: 12px; line-height: 14px; color: #568b4e; font-weight: bold; border-right: 2.5px solid #568b4e;">61-90 Days</td>
          <td align="center" style="font-size: 12px; line-height: 14px; color: #568b4e; font-weight: bold; border-right: 2.5px solid #FFFFFF;">Over 90 Days</td>
        </tr>
        <tr>
         
          <td align="center" style="font-size: 12px; font-weight: lighter; color: #568b4e; border-right: 2.5px solid #568b4e;">${statement.aging2}</td>
          <td align="center" style="font-size: 12px; font-weight: lighter; color: #568b4e; border-right: 2.5px solid #568b4e;">${statement.aging3}</td>
          <td align="center" style="font-size: 12px; font-weight: lighter; color: #568b4e; border-right: 2.5px solid #568b4e;">${statement.aging4}</td>
          <td align="center" style="font-size: 12px; font-weight: lighter; color: #568b4e;">${statement.aging5}</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

        </macro>
        <macro id="nlfooter">
            <table style="width: 100%; font-size: 12pt;"><tr>
	<td class="address" colspan="2" rowspan="6">&nbsp;</td>
	<td align="center" class="address" colspan="2" style="color: #FFFFFF; padding-top:43pt;">&nbsp;</td>
	<td class="address" colspan="2">&nbsp;</td>
	</tr>
	<tr>
	<td align="center" class="address" colspan="2" style="color: #FFFFFF;">199 E. 13th St.</td>
	<td class="address" colspan="2">&nbsp;</td>
	</tr>
	<tr>
	<td align="center" class="address" colspan="2" style="color: #FFFFFF;">Chico, CA 95928</td>
	<td class="address" colspan="2">&nbsp;</td>
	</tr>
	<tr>
	<td align="center" class="address" colspan="2" style="color: #FFFFFF;">(530) 763-6900</td>
	<td class="address" colspan="2">&nbsp;</td>
	</tr>
	<tr>
	<td align="center" class="address" colspan="2" style="color: #FFFFFF;">accounting@rabbitholehay.com</td>
	<td align="right" class="address" colspan="2" style="padding-right: -34.5px; color: #FFFFFF;"><pagenumber/> of <totalpages/></td>
	</tr></table>
<!--</div>-->
        </macro>
        <macro id="watermark">
            <p><img src="http://4501420.shop.netsuite.com/core/media/media.nl?id=5066&amp;c=4501420&amp;h=bDbsLyjHGiqvO7yrDgXoFxQGHddBqfNNon2FZam9Ndn1yapt" style="width: 800; height: 600;" /></p>
        </macro>
    </macrolist>
    <style type="text/css">* {
			<#if .locale == "zh_CN">
				font-family: NotoSans, NotoSansCJKsc, sans-serif;
			<#elseif .locale == "zh_TW">
				font-family: NotoSans, NotoSansCJKtc, sans-serif;
			<#elseif .locale == "ja_JP">
				font-family: NotoSans, NotoSansCJKjp, sans-serif;
			<#elseif .locale == "ko_KR">
				font-family: NotoSans, NotoSansCJKkr, sans-serif;
			<#elseif .locale == "th_TH">
				font-family: NotoSans, NotoSansThai, sans-serif;
			<#else>
				font-family: NotoSans, sans-serif;
			</#if>
		}
		table {
			font-size: 9pt;
			table-layout: fixed;
		}
         th {
             font-weight: bold;
             font-size: 8pt;
             vertical-align: middle;
             padding: 5px 6px 3px;
            
            
         }
         td {
             padding: 4px 6px;
         }
		 td p { align:left }
         b {
             font-weight: bold;
             color: #333333;
         }
         table.header td {
             padding: 0;
             font-size: 10pt;
         }
         table.footer td {
             padding: 0;
             font-size: 8pt;
         }
         table.itemtable th {
             padding-bottom: 10px;
             padding-top: 10px;
         }
         table.body td {
             padding-top: 2px;
         }
         td.addressheader {
             font-weight: bold;
             font-size: 8pt;
             padding-top: 6px;
             padding-bottom: 2px;
         }
         td.address {
             padding-top: 0;
         }
         span.title {
             font-size: 28pt;
         }
         span.number {
             font-size: 16pt;
         }
         div.remittanceSlip {
             width: 100%;
             /* To ensure minimal height of remittance slip */
             height: 200pt;
             page-break-inside: avoid;
             page-break-after: avoid;
         }
         hr {
             border-top: 1px dashed #d3d3d3;
             width: 100%;
             color: #ffffff;
             background-color: #ffffff;
             height: 1px;
         }
       table.alignitem td p{
        align:left
      }
</style>
</head>
<body header="nlheader" header-height="33%" footer="nlfooter" footer-height="14%" background-macro="watermark" padding="0.5in 0.5in 0.5in 0.5in" size="Letter-LANDSCAPE">
   <table style="width: 100%;">
        <tr>
          <td align="left" colspan="3" style="font-size: 14px; padding: 6px 0px 2px -9px; font-weight: bold; color: #568b4e; margin-left: 12px;padding-top:-48pt; ">BILL TO</td>
        </tr>
        <tr>   
          <td align="left" colspan="3" style="padding:6px 0px 2px -9px; line-height: 12pt; color: #568b4e; font-size: 13px;margin-left: 12px;padding-top:-35pt;">
    <#if statement.billaddress?has_content>
        <#if customer.billattention?has_content><#assign attention = customer.billattention>${attention}<br /></#if>
        <#if customer.billaddressee?has_content><#assign addressee = customer.billaddressee><#if attention != addressee>${customer.billaddressee}<br /></#if></#if>
        <#if customer.billaddr1?has_content>${customer.billaddr1}<br /></#if>
        <#if customer.billaddr2?has_content>${customer.billaddr2}<br /></#if>
        <#if customer.billcity?has_content>${customer.billcity}</#if>
        <#if customer.billstate?has_content>${customer.billstate}</#if>
        <#if customer.billzip?has_content>${customer.billzip}<br /></#if>       
    </#if>

</td>
        </tr>
        
      </table>   
<#if statement.lines?has_content>

<table class="alignitem" style="width: 100%;  margin-left: -16px; padding-left: 15px; background-color: #f5f4e4;padding-top:13px;padding-bottom:10px;padding-right:15px;"><!-- start items --><#list statement.lines as line><#if line_index==0>
<thead>
	<tr>
	<th align="left" colspan="3" style="padding: 12px 0px; text-transform: uppercase; font-size: 15px; color: #464d30;padding-right:-28px; ">${line.datecol@label}</th>
	<th align="left" colspan="12" style="padding: 12px 0px; text-transform: uppercase; font-size: 15px; color: #464d30;">${line.description@label}</th>
	<th align="right" colspan="3" style="padding: 12px 0px; text-transform: uppercase; font-size: 15px; color: #464d30;">${line.charge@label}</th>
	<th align="right" colspan="4" style="padding-top: 12px; padding-bottom: 10px; padding-left:0px; font-size: 15px; padding-right:12px; text-transform: uppercase;  color: #464d30;">${line.payment@label}</th>
	<th align="right" colspan="4" style="padding-top: 12px; padding-bottom: 10px; padding-left:0px; font-size: 15px; padding-right:12px; text-transform: uppercase;  color: #464d30;">${line.balance@label}</th>
	</tr>
</thead>
</#if><tr>
	<td align="left" colspan="3" style="padding: 12px 0px;">${line.datecol}</td>
	<td align="left" colspan="12" style="padding: 12px 0px;">${line.description}</td>
	<td align="right" colspan="3" style="padding: 12px 0px;">${line.charge}</td>
	<td align="right" colspan="4" style="padding: 12px 0px;">${line.payment}</td>
	<td align="right" colspan="4" style="padding: 12px 0px;">${line.balance}</td>
	</tr>
	</#list><!-- end items --></table>

</#if></body></#list>
</pdf></#if></pdfset>

Leave a comment

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