To start with, 70 orders per week should not be choking your server unless it is a severely underpowered box or something is not well written in the code - like embeds within embed loops or something that is causing massive slowdowns. FWIW, I have an EC site that normally does around 50 orders per day on EE3/CT (php7) and another that runs about 80 per week on EE2/CT. (php 5.6)
In my case, I tend to rewrite much of the heavy EE code into exp:query tags because it is so much faster for data output due to a massive reduction in total page queries.
As to your invoice output question, I can think of a couple of ways that may be worth consideration.
The way we handle our order processing here is that all new orders get checked and then we flip the status to 'checked' or 'hold' or whatever. We then output the entire days' orders to a CSV file and that data is used to import data into the factory production system and fulfillment systems.
To put it simply - it may be better for you to run out all your order data into a CSV or output file and use that file to mail merge or print invoices via word or excel or something similar. Its easier to manage and easier to control the output when compared to setting up print css and trying to print everything from the browser. If I'm not mistaken, both Word and Excel are able to take data from a file and use it in templates.
If you must print from the browser, this might be painful, but its doable. You'll need to first setup a template that's optimized for fast output - exp:query or doing some smart embedding. Thats also why I mentioned status controls earlier. You'll want a way to target ONLY the orders that need to be printed and ignore everything else. Try and limit your query scope as much as possible prior to getting the data - i.e, status
and entry_date
to start with. Since printing each page individually is time consuming, you'll want to setup your template to handle all pages in a loop and you'll most likely want to set that template up with some css for printing thats formatted to fit your invoice page size and requirements. Use a css page break between entries to print each entry onto its own page.
Off the top of my head, the above is just two ways that I might try to develop into a more workable solution. I know its not specific information, but perhaps the concepts are enough to get you moving towards your goal. If you need more specific info, I'll be happy to help where I can.