Yo tengo una dll hosteada en internet explorer y funciona bien, los métodos los tenes que llamar en la página mediante JavaScript... vas a tener que utilizar Caspol para darle permisos a IE para que le pase las credenciales a la dll.
Tenes que hacer algo visual ?, por que no montas un webservice / pagina en un servidor local que haga la impresión y lo invocas desde la tu página ? From: Jorge Monsalvo Sent: Wednesday, May 12, 2010 10:53 AM To: [email protected] Subject: [puntonet] Re: [puntonet] Re: [puntonet] Impresión en ASP.NET Diego, Gracias por la sugerencia. Estuve probando, pero si bien en el artículo dice que los métodos públicos se pueden ejecutar, en las pruebas no pasa nada. En realidad genera el mismo error "el objeto no soporta la propiedad o metodo"... Veo tambien que en el atriculo sugiere ejecutar métodos de acuerdo al valor de una propiedad.... En el peor de los casos invento algo con esto.... Saludos Jorge -------------------------------------------------------------------------------- De: Diego Jancic <[email protected]> Para: [email protected] Enviado: martes, 11 de mayo, 2010 13:58:29 Asunto: [puntonet] Re: [puntonet] Impresión en ASP.NET Hola, No te es mas facil incluir directamente el control de .net en la pagina? Sin usar un activeX? http://codebetter.com/blogs/peter.van.ooijen/archive/2007/06/18/including-a-winforms-user-control-in-an-asp-net-web-page.aspx No tenes que hacer nada raro, pero tene en cuenta las limitaciones: For this to work well the following requirements are put on the client a.. Use Internet Explorer. This does not work in any of the other browsers. b.. Have the .NET framework installed on the client machine. c.. The site should be included in the trusted sites list of the browser. d.. The browser should be allowed to download files from the (trusted) site. 2010/5/11 Jorge Monsalvo <[email protected]> Estimados, Me surgió el siguiente problema. Tengo una aplicación local (winforms) que tiene una dll para la impresión de unos tickets en formato especial (el papel es formulario continuo con troqueles). Por cuestiones comerciales ajenas al desarrollo original tengo que portar esa impresión a una aplicación web cuyo servidor va estar alojado en algun proveedor comercial. Como todo buen programador, no tengo ganas (ni tiempo) de hacer un nuevo desarrollo, por lo que surgió la idea de armar un ActiveX en .NET Seguí algunos ejemplos en la red y logré qué se expusiera una propiedad, pero ningún método (Obviamente los métodos expuestos en realidad llaman a métodos de la dll original) . Por supuesto cada a dll utilizada le agregamos una firma, y la compilamos con la opcion de visibilidad COM activada. Les adjunto algunos fragmentos de código como para entender que estoy tratando de hacer, pero mas alla de la ayuda con el código fuente (que se agradece desde ya) quisiera sus opiniones para ver si voy por buen camino, si hay componentes disponibles para bajar o comprar, o si existen alternativas de bajo costo (esto es con el menor tiempo de codificación posible) Muchas Gracias!!! Jorge. Esto es el código de prueba de la DLL que generaría el componente ActiveX namespace {AxPrinting publicinterfaceAxInterface { } [ { { } publicstringSeleccionarImpresora(stringbuscar) returnprt.SeleccionarImpresora(buscar); { } publicvoidImprimirCargoPorID(intidcargo) { prt.PrintCargoByID(idcargo); } } Página web de prueba <headrunat="server"></ < <title></title>head>body> <objectid="miClase"name="miClase"classid="clsid:0b41245e-5f3c-4371-91bb-22d95134e446"width="400"height="100"></object> <formid="form1"name="form1"action=""> <inputtype="text"name="txt"value="enter text here"><inputtype=buttonvalue="Click me"onClick="doScript();"></ scriptlanguage="javascript"type="text/javascript">alert(form1.txt.value); miClase.Connstr = form1.txt.value; miClase.SeleccionarImpresora( alert(miClase.Connstr); //Si obviamos el error esto muesta el valor correcto.</ </script>html> }functiondoScript() {"Cute"); //Aca falla "El objeto no soporta esa propiedad o metodo" < </form>body> stringSeleccionarImpresora(stringbuscar); voidImprimirCargoPorID(intidCargo); stringConnstr { get; set; }ClassInterface(ClassInterfaceType.AutoDual)] publicclassAxClass: AxInterface privateClasePrintingprt = newClasePrinting(); //Esta es la clase original publicstringConnstr get{ returnprt.Connstr; } set{ prt.Connstr = value; }
