This is a common problem with USB printers and there are several main reasons it can occur:
We discuss each one below.
Sometimes there can be some left over data in your 'print spooler' - the temporary area data is stored in as it is handed off to the printer. This can cause all sorts of issues with prints, including prints that only partially complete.
To fix a print spooler issue is relatively easy and this usually solves the problem.
Recent MacOS versions (certainly from 10.15 on, but it might be the same for earlier versions too) - use the GPU (Graphics Processing Unit - i.e. video card) - for a lot more general processing, including spooling files to printers. If the GPU is overloaded, it can cause image processing during spooling to fail. Unfortunately you don't get any particular warning or message about this....just another sheet of wasted paper!
In particular this often seems to occur in multi-monitor set ups. So try detaching any extra monitors as a first step. And/or try closing any GPU intensive applications during printing (includes things like graphics / raw processing applications, but also modern browsers are GPU intensive, and so on).
If you have tried to fix the GPU and/or print spooler issues as detailed above, and you are still having issues, it may be the case that your USB cord or port is not working correctly. Try a different USB cord or port and this will often solve the problem.
If you've checked your USB connections, then you can sometimes solve persistent issues like this by resetting the entire print system, but please note: this loses all your printers & print settings, so it's quite drastic. Apple have a support note with the process here.
Modern printers have various fancy features designed to 'help' you wit your printing.
One of the most frequently frustrating is 'skew detection'. Basically, the printer tries to detect if the page is not feeding perfectly squarely through the printer. If it detects (often, it seems, incorrectly) - that the page is ever so slightly skew-iff, some printers will simply spit out the half done image at that point - and of course without even providing any sort of informative message.
Great design, huh?
Our advice is to turn off all of those sort of automatic checks - they usually do more harm than good. We habitually turn off skew detection, automatic nozzle checking, and anything else it claims to automatically check. Of course we do then run regular manual checks. But in the case of, e.g. skew detection - I'd rather my print come out in full and be a mm or two not square on the page than waste a whole sheet of paper and ink when the printer decides three quarters of the way through that thing are screwy!