View Single Post
 
Old 10-27-2016, 05:58 AM
Trailblazer Trailblazer is offline Windows 10 Office 2016
Novice
 
Join Date: Oct 2016
Posts: 2
Trailblazer is on a distinguished road
Default Mail Merge - how to pad mergefields

We are sending output from a mail merge to a virtual printer which takes the output and puts it into our electronic document imaging system.

While the actual printout and print-to-PDF options work just fine, when sent to the generic/text only printer the table is converted to text, which is expected, but unless each item in a column has the same number of spaces the alignment is messed up between columns.

In other software like Excel this is easy to fix; I would change the field to be something like: mergefield + space(80-len(field)):

Code:
Currently it looks like this:
Column1              Column2            Column3
Item1 desc           $1234                $123
Item2 description       $2341               $234
Item3              $4567         $456


Should look like this:
Column1                 Column2            Column3
Item1 desc              $1234                $123
Item2 description       $2341                $234
Item3                   $4567                $456
I can't use len unfortunately. Another issue interfering with this (potentially) is that the mergefield is actually a collection of items separated with a CR/LF; it isn't just one item value but a "paragraph" of values.

For example, <<item>> the merge field, when populated, looks like this:

ColumnHeading CR/LF
Item Line1 CR/LF
Item Line2 with more info CR/LF
Item Line 3 still different length than Line1 & Line2 CR/LF

Making each line the same character width solves the alignment problem. The end user cannot change the source data to match my requirements. I'm fine if this requires some scripting in a macro, whether that macro works on the merge template or the finished merge documents; I'm just not sure how to get "there" from "here".

Thank you!