Text::Table does some of what you want I think.
In reply to Re: AoAoA to Text (or HTML table to text) by steves in thread AoAoA to Text (or HTML table to text) by PodMaster