Cyrus,
You should not have to require any specific p[rinter for your clients. The problem that you have is that since you have decided to handle printer specific stuff in your code you need to make it data driven so you can support more than only one printer command language. Your other choice is to let windows handle the printers for you by using the windows print services and consequently the windows printer drivers.
If you choose to continue managing the printer yourself then you need to design a mechanism of handling any client's specific printer configuration.