Most invoice templates are a design someone laid out by hand: text boxes positioned by eye, a logo anchored to nothing, a total in a field that recalculates on open. Move one line and the layout slides. Open it anywhere but Word and it falls apart quietly — which you find out after the client has it.
Ours are generated by a script, which is why they behave: every block is a table with stated column widths, every piece of type is a named paragraph style, nothing floats, and the build converts the file to PDF and reads the pages back to check the words and the money are still on them.