How to Pad Data in a Script

Description

A label value needs to be padded, but padding in formula doesn't work or user needs to pad with a character not offered via properties. This article demonstrates how this can be done using a label script.

How to Pad Data in a Script

  1. Set up a scripting field, an input field, an output field, and padding character field on the label.
  2. Copy the example below to a text editor and modify using the names of the fields on your label.
  3. Choose section of code you want to use left padding, right padding, or center padding and remove the other padding types from the script.
  4. Copy the modified script into the scripting field data source window and save the label.
  5. Test and validate the label output.

//part 1 define variables
var input = String(label.fields.field.(@name=='INPUT').@data);
var padchar = String(label.fields.field.(@name=='PAD_CHAR').@data);
// xml parser strips out spaces so spaces have to be represented as the #x20; string
if (padchar == "" || padchar == " ")
{
padchar = "#x20;";
}
var padlimit = label.fields.field.(@name=='PAD_LIMIT').@data;
var inputL = input.length;
var leftpad= new String;
var rightpad = new String;
var centerpad = new String;
var i;
var j; 

//part 2 left pad
leftpad = input;
for (i=inputL;i<padlimit;i++)
{
leftpad = padchar + leftpad;
} 
label.fields.field.(@name=='LEFT_PAD').@data = leftpad;

//part 3 right pad
rightpad = input;
for (i=inputL;i<padlimit;i++)
{
rightpad = rightpad + padchar;
} 
label.fields.field.(@name=='RIGHT_PAD').@data = rightpad;

//part 4 center pad
centerpad = input;
var padlimiti = (padlimit - inputL)/2; 
for (i=0;i<padlimiti;i++)
{
centerpad = padchar + centerpad;
} 
var padlimitj = (padlimit - i)-inputL;
for (j=0;j<padlimitj;j++)
{
centerpad = centerpad + padchar;
} 
label.fields.field.(@name == 'CENTER_PAD').@data = centerpad;