
04/10/2013, 02:01
|
| | Fecha de Ingreso: septiembre-2013
Mensajes: 8
Antigüedad: 11 años, 5 meses Puntos: 0 | |
Respuesta: Plantillas para Word en PHP Hola,
sigo sin solucionarlo..., os comento el problema que tengo ahora (y gracias de antemano):
Tengo que generar un fichero de word a partir de una plantilla con extensión .RTF desde PHP.
Lo que hago es generar una query y por cada registro resultante, que genere un documento word (bueno, ,RFT); dichos documentos se generan bien pero sólo puedo visualizarlos bien si los arrastro manualmente desde el filezilla porque si le meto en el código fuente que se me descarguen automáticamente, luego lo abro y se muestra sólamente algo tal que así:
{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff3150 7\deff0\stshfdbch0\stshfloch31506, etc...
además, sólo me descarga el primer fichero (además de descargarlo mal, como he comentado), cuando en realidad se han generado todos los documentos (1 por cada registro) en el servidor.
Aquí os pongo el código fuente:
$sql = "SELECT ....";
$res = mysqli_query($link,$sql);
while ($row = mysqli_fetch_array($res)){
$pedido_find = $row["pedido"];
$archivo = file_get_contents('plantilla_etiquetas.rtf');
$archivo = str_replace('tag_pedido',csv_encode_conv($pedido_f ind),$archivo);
file_put_contents('./etiquetas/et_doc_'.$num_documento_find.'_part_'.$partida_fin d.'.rtf',$archivo);
descargar('et_doc'.$num_documento_find.'_part_'.$p artida_find.'.rtf');
}
function descargar($archivo){
$ruta = './etiquetas/'.$archivo;
if (is_file($ruta))
{
//header ("Content-Type: application/octet-stream");
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename='.$archivo);
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($ruta));
readfile($ruta);
}
//He probado a hacerlo sin usar esta función, pero nada, o usando ficheros .doc o .docx en lugar de .rtf pero nada
function csv_encode_conv($var, $enc='Windows-1252') {
$var = htmlentities($var, ENT_QUOTES, 'utf-8');
$var = html_entity_decode($var, ENT_QUOTES , $enc);
return $var;
} |