Bir firmaya yazılım hazırlarken benzer bir problem ile karşılaşmıştım. Uygulama web tabanlı olması gerekiyordu, fakat çıktıların direkt yazıcıya gitmesi gerekiyordu.

Üst bilgi/alt bilgi olmadan, sayfa bilgisi olmadan ve printer seçtirmeden. Default printer a veya bizim baştan belirttiğiniz bir yazıcıya gitmesi gerekiyordu.

Ben bu olayı şu şekilde çözdüm.
1. Projeye boş bir exe ekledim, içinde sadece bir webbrowser var ve benim belirlediğim sunucuya bağlanıyor, adres çubuğu vs yok.
2. Yazdırılacak evrakları/çıktıları bir rapor componenti ile ayarladım. Ben DevexReport kullanmıştım, sen Devexreport veya fastReport veya benzeri birşey kullanabilirsin.
3. Yazdırma butonlarını direkt exe üzerinden çalıştırdım ve hazırladığım reportların veri toplamasını sağlayarak benim belirttiğim yazıcıya gitmesini sağladım.

Web tabanlı JS ile bir iki kod bulmuştum konu ile alakalı ama browser lara göre değişiyordu adam akıllı bir çözüm bulamadım, fakat yukarıda yazdığım çözüm benim için kesin çözüm olmuştu, umarım sizinde işinize yarar.

Dilerseniz, ücreti mukabil destek de verebilirim