you can get the width of a MigraDoc Document and the left/right margins too - maybe even the .ContentArea? just work out the column widths from that. I personally pass in an array of doubles (which are percentages of the page width i.e. 10, 10, 20, 20, 40 to the function i use to create tables, this function then gets the .ContentArea of the document and set the .Width property on each column to be:
Code:
for(int i = 0; i < tableCols.length; i++)
col[i].width = (pageContentBox.width / 100) * widthsArray[i];
so long as you make sure the array of doubles always adds upto 100, then it should always "autofit", even if you change your page from Portrait to landscape or visa-versa.
Mike