La Web del Programador: Comunidad de Programadores
 
    Pregunta:  19748 - MANDAR DATOS DE ASP A CAMPOS EN WORD
Autor:  Jose D
Buenas con todos,
tengo el siguiente codigo que me envia datos de un asp a un archivo word tipo plantilla el cual tiene campos de texto , una vez hehco esto se abre el archivo word. Pero cuando lo paso mi codigo a formato de servidor no hace nada, no sale error tampoco, tengo instalado el word en el servidor , mi pc es servidor y cliente a la vez ademas

codigo en vbscript lado cliente :(funciona perfecto)
-------------------------
Sub Generar()
Set Doc=CreateObject("Word.Document")
Set App=CreateObject("Word.Application")
Set Doc=App.Documents.Add("C:\Plantilla.dot")
Doc.FormFields("txtDato1").Result="uno"
Doc.FormFields("txtDato2").Result="dos"
Doc.FormFields("txtDato3").Result="tres"
Doc.FormFields("txtDato4").Result="cuatro"
end sub

codigo en vbscript lado servidor :(no funciona y no sale error tampoco - la ruta del archivo es correcta y tengo instalado word en el server)
-------------------------

Call Generar

Sub Generar()
Dim Doc
strDocsPath = "Plantilla"
strDocsPhysicalPath = Server.MapPath(strDocsPath)


Set Doc=Server.CreateObject("Word.Document")
Set App=Server.CreateObject("Word.Application")
Set Doc=App.Documents.Add(strDocsPhysicalPath & "\Plantilla.dot")
Doc.FormFields("txtDato1").Result="uno"
Doc.FormFields("txtDato2").Result="dos"
Doc.FormFields("txtDato3").Result="tres"
Doc.FormFields("txtDato4").Result="cuatro"

App.Visible=True

End Sub

  Respuesta:  Fernando Fernández Lobillo
Con respecto a tener en el servidor instalado office, nosotros tuvimos le mismo problema. La solución que optamos tomar fue la de crear un ActiveX que incluyera las funciones de tratamiento de Word.

¿Por qué? En principio porque el servidor comenzaría a sobrecargarse con las diferentes posibles sesiones de Word que comenzaran a abrir los usuarios a lo largo de las sesiones que iniciaran y accedieran a la página en cuestión.

Por otro lado en el servidor no es suficiente instalar la aplicación en modo servidor, si no además instalar en modo cliente. Esto es lo que haría al servidor reducir sus recursos radicalmente debido a la aplicación office que quisieras utilizar. No merece la pena. Plantea el formato ActiveX. Aquí hemos dado un montón de cabezazos con el tema.

Un saludo. Si tienes alguna duda escribeme a la dirección de arriba.