views:

1805

answers:

5

If I have a printer hooked directly to a pc (a kiosk with a printer), how would I go about creating the ability for a web page (.net web app) to print a jpg to the kiosks printer with no user intervention other than clicking a button on the page?

+3  A: 

This has been asked several times already, and the result is always that you can't do it via normal web technologies (HTML + Javascript). The best you can do is open the print dialog, and that is by design. What you can do since you control the kiosks is create some kind of browser extension (like a flash object, .Net hosted control, java applet, etc) and make that available to your page, so that it handles the printing part for you.

Joel Coehoorn
+2  A: 

if you created an application that hosted the web browser control (rather than using a web browser directly) you could control the printing process much more directly.

(assuming using Windows + IE is possible)

here are some example articles that might help:

Configure a WebBrowser Control

Using the Web Browser Control in your C# Applications

and the ever changing MSDN docs for the WebBrowser class, which has the Print method.

From the print method remarks: "You can use this method to implement a Print button similar to the one in Internet Explorer. This method prints the current document without requiring further user input."

Steven Adams
A: 

I solve this problems in 2 different ways:

  1. Using ActiveX
  2. Creating a protocol like myprint://PRINT_DATA
Zote
+1  A: 

The other comments cover a scenario where you want to print on the computer of the web browser.

However, if you want to print to a printer connected to the web server (ie, the machine running the web application), you can use regular C# printing with the following twist: http://support.microsoft.com/kb/184291/

In my context, my kiosk runs both the web server and the web browser, so that solved my problem.

Jason Kealey
A: 

Hey Zote, Can u provide more details about how did you use/create Activex and other also like how to create your own protocol..

Any help/links to websites will be much appreciated.

Harshil Patel