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
Plantillas de word desde PHP
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;
}
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;
}
Re: Plantillas de word desde PHP
cuando en realidad se han generado todos los documentos (1 por cada registro) en el servidor.
royal1688 เข้าไม่ได้
royal1688 เข้าไม่ได้