Trying to space columns in a report

I have a program that calculates shipping cost for an item and prints the information to a file. I cannot seem to get the lines to print with equal spacing in columns.

I need data like this to be aligned into columns:

Optical Mouse 5 A $25
Compaq Presario 3 C $100
PS2 2 D $18

I am trying to use awk to do it but having no luck.

echo "$Name;$Quantity;$Class;$Total" | awk -F";" '{printf "%s %10s %10s %10s\n", $1, $2, $3, $4}' >> ShipInfo

Try:

echo "$Name;$Quantity;$Class;$Total" | awk -F";" '{printf "%-10s %-10s %-10s $%5.4f\n", $1, $2, $3, substr($4,2)}' >> ShipInfo

Thanks a lot, that is working.