Thanks dragonfly, those are a good few avenues to explore. Your first instinct
I would try creating a python script which first calculates the area of the text corpus
was the same as mine. However, it feels like this could be very awkward to figure out. I've looked over the python API here
https://impagina.org/scribus-scripter-api/ and there doesn't seem like there's any built in functions for this.
Another thing is that I will absolutely need tables and currently there doesn't seem to be any function in the API to actually set a cell's contents.
I've done back and forth between Scribus and LaTeX, but Scribus feels quiet solid and LaTeX is just horrible to use.
Editing the XML directly is another option, but will eliminate the ability to see if text is overflowing, so I think it has to be done via the Scribus exe.