Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/10/2011, 03:39
Avatar de navarone86
navarone86
 
Fecha de Ingreso: octubre-2009
Mensajes: 62
Antigüedad: 14 años, 7 meses
Puntos: 2
problema con COM y Word 2007

Hola,

tengo que sustitur en un fichero word unos marcadores. tengo un codigo que funciona perfectamente en el servidor, donde esta instalado el office 2003

al lanzarlo en mi equipo, donde tengo office 2007 me da el siguiente error:

Fatal error: Uncaught exception 'com_exception' with message '<b>Source:</b> Microsoft Word<br/><b>Description:</b> El comando no está disponible porque no hay ningún documento abierto.'

mi codigo es el siguiente:

Código PHP:
Ver original
  1. $template_file = $APPCONF_RutaInformes."/plantillas/a".$nombre_plantilla.".doc";
  2.    
  3.     //Comprobamos que el archivo exista y sea editable 
  4.     if(is_writable($template_file)){           
  5.         //2. Instanciate Word
  6.         $word = new COM("Word.Application") or die("Unable to instantiate Word");
  7.         $word->Documents->Open($template_file);
  8.         $word->Application->Visible = True;
  9.        
  10.         //Para cada equivalencia, buscamos su marcador y lo cambiamos
  11.         foreach ($equivalencias as $dato) {
  12.             //4. get the value
  13.              $value = $dato[1];
  14.              //5. get the bookmark and create a new MS Word Range (to enable text substitution)
  15.              $bookmarkname = $dato[0];
  16.              //Comprobamos que el marcador existe para hacer el reemplazo
  17.              if ($word->ActiveDocument->Bookmarks->Exists($bookmarkname)){
  18.                 $objBookmark = $word->ActiveDocument->Bookmarks($bookmarkname);
  19.                 $range = $objBookmark->Range;
  20.                 //6. now substitute the bookmark with actual value
  21.                 $range->Text = no_null($value);
  22.              }
  23.         }

y la aplicación me casca concretamente en la linea:

Código PHP:
Ver original
  1. if ($word->ActiveDocument->Bookmarks->Exists($bookmarkname)){

por la función "$word->Documents->Open($template_file);" pasa bien, pero parece que no abre el documento

sabeis si hay que hacer alguna otra cosa para trabajar con el word 2007??


un saludo y gracias

Última edición por navarone86; 03/10/2011 a las 04:12