Ver Mensaje Individual
  #7 (permalink)  
Antiguo 05/10/2011, 01:28
Avatar de navarone86
navarone86
 
Fecha de Ingreso: octubre-2009
Mensajes: 62
Antigüedad: 15 años, 2 meses
Puntos: 2
Busqueda Respuesta: problema con COM y Word 2007

hola de nuevo,

el 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.         }
  24.        
  25.         //7. save the template as a new document
  26.         $pre= time();
  27.         $nombre_completo=$nombre_plantilla.$pre.".doc";
  28.     $new_file = $APPCONF_RutaInformes."/documentos/".$nombre_completo;
  29.     $word->Documents[1]->SaveAs($new_file);
  30.     $word->Application->Quit;  
  31.     $word = null;

y el contenido de $equivalencias es este:

Código PHP:
Ver original
  1. $equivalencias=array();
  2. $equivalencias[0][0]="mcd_nombre";
  3. $equivalencias[0][1]="fulanito";
  4. $equivalencias[1][0]="mcd_fecha";
  5. $equivalencias[1][1]="05/10/2011";

un saludo