in reply to Possible to use variable in printf statement?

It's just a string like any other. You can build it however you want.
printf "%-".$width."s ", $AoA[$x][$y]; printf "%-${width}s ", $AoA[$x][$y];

You can also use "*":

printf "%-*s ", $width, $AoA[$x][$y]; printf "%*s ", -$width, $AoA[$x][$y];