How do I use an infinite scroll table and print it

I am working on a legacy application that shows data in a table with infinite scroll.

The data could be up to 5000 rows or more, but the users are only allowed to load 20 rows at a time. This is how lazy loading has been implemented.

Now the new feature would be to improve the "printing experience" to allow the users to print this table. When printing the users should be able to print the whole dataset, not only what they see on the screen.

The current user flow is as follow:

  1. the users load the table
  2. the table shows the first 20 items
  3. the users can scroll down to load the following 20 items
  4. there is a button on top of the table that says "print"
  5. by pressing the button the table starts loading the whole dataset and hides the table view with a spinning wheel till the data is fully loaded
  6. the browser shows the native print preview where the table is laid out on multiple pages.

I wonder if there is a better way to doing this. I have MAYBE room for redoing the whole table system altogether, but I will need to build a strong case to justify engineering effort around that.

How would i be able to improve the user flow?