A big difference is that the smart client runs on the client machine and the headless client (batch processor) runs on the server machine.
Does the server have access to the same printer as the client?
What does your code look like?
That file that you are talking about, is that created by both clients?