Я на эти грабли уже наступал. Почему Вы решили что проблема именно в спуллере принтера? Он что, как-то проверяет влезет в него пришедший пакет или нет еще ДО собственно попытки что-то там принять?
Судя по описанию, проблема именно в порядке
отправки заданий на печать. Если у Вас процесс печати накладной и счета фактуры по одному и тому же заказу разнесены во времени, то не удивляйтесь, что между ними "втиснется" накладная от другого заказа. Принтер тут вообще не при чем! Это стандартная ситуация в многопользовательских приложениях.
Вам надо сделать следующее:
1) Процесс печати накладной и счета фактуры должен быть организован одним пакетом без вмешательства пользователя.
Под "пакетом" в данном случае я понимаю программную отправку на печать документов. Без открытия окон предварительного просмотра. Совсем грубо, нечто вроде
PHP код:
reportRunPacking.printJobSettings().setTarget(PrintMedium::Printer);
reportRunPacking.run();
reportRunInvoice.printJobSettings().setTarget(PrintMedium::Printer);
reportRunInvoice.run();
2) Как уже было описано ранее, эта отправка на печать должна быть окружена установкой и снятием некоего флага, свидетельствующего о том, что идет печать "пакета", просьба подождать.
Это НЕ проблема спуллера принтера - это проблема AXAPTA.