I am answering my own query, because I found the solution and feel that others may profit from it.
The problem is in lack of memory, probably in the printer. The solution is to write a subroutine which sends the array of points in small pieces; for example, I break up my original array of >300000 point structures into arrays of no more than 500 (that is what I did in my case).
It is important to overlap the individual subarrays by 1, since it is the first two points that define the first section of line. As I see it, the printer driver can handle 500 line segments at a time easily, but chokes somewhere between 500 and 300000, I don't care exactly where (and don't care).