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; }       








 

Responder a