If a Jasper report document (such as invoice) is printed using direct print, the system's (your workstation's) default printer is always used. This is inconsistent to legacy report behaviour and as such a bug in the Jasper Report printing.
The legacy reports use the printer that's currently selected in Adempiere. The legacy reports also can have a specific printer defined on the print format itself. I.e. all documents of type X is printed on the printer Y.
This is rarely a problem since it's possible to select printer in the Jasper Report Preview. However when you want to print in batches, in the background or perhaps let the server print jasper documents by itself it is necessary to be able to select a printer without having to pick using the printer dialog.
I've modified org.compiere.report.ReportStarter and org.compiere.print.ReportCtl to regard the printer selected in Adempiere when printing using Jasper Reports.
I've also added some new convenience methods in ReportCtl for startDocumentPrint where it's possible to print using a specific printer name and/or a specific print format other than defaults. These convenience methods are to enable custom processes to take better advantage of the Adempiere printing API.
Feedback is welcome.