Recordad que para pedir soporte alguno, debéis facilitar los datos de soporte oportunos por favor, mirad aquí y leer las Normas generales del foro, esto nos servirá de ayuda para dar el mejor soporte..

Gracias.

La Administración de phpBB España.

Plantillas de word desde PHP

Sitios donde alojar nuestro proyecto, y hostings con PHP, MySQL, etc.
SPAM está sancionado con la exclusión.


Responder
asa72
Observador/a
Mensajes: 1
Registrado: 04 Oct 2013, 08:27

Plantillas de word desde PHP

#1

Mensaje por asa72 »

Hola, a ver si alguien me puede ayudar,
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\adeff31507\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 (y gracias, de antemano):

$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_find),$archivo);
file_put_contents('./etiquetas/et_doc_'.$num_documento_find.'_part_'.$partida_find.'.rtf',$archivo);
descargar('et_doc'.$num_documento_find.'_part_'.$partida_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;
}

konsatsna
Observador/a
Mensajes: 7
Registrado: 26 Sep 2015, 10:47

Re: Plantillas de word desde PHP

#2

Mensaje por konsatsna »

cuando en realidad se han generado todos los documentos (1 por cada registro) en el servidor.
royal1688 เข้าไม่ได้

Responder

Volver a “🗳️ Servidores”