Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Antonio Jorge

Tem como faze impressão pelo php?

Recommended Posts

COnsegui resolver o script adicionando as requisições assim no inicio do código:

 

<?
$file           = $_POST["file"];
$empresa        = $_POST["empresa"];
$nome           = $_POST["nome"];
$endereco       = $_POST["endereco"];
$telefone       = $_POST["telefone"];
$email          = $_POST["email"];
$site           = $_POST["site"];


if($file =="" || $file == "none")
{
echo "<center><a href='javascript:window.history.go(-1)' class='links'>";
echo "Você precisa selecionar um <b>Template</b>.";
echo "</a></center>";
}
else
{
   header( "Content-type: application/msword" );
   header( "Content-Disposition: inline, filename=$file");

   // Abre seu template
   $arquivo = "$file";
   $fp = fopen ( $arquivo, "r" );

   //Le o template na variavel
   $output = fread( $fp, filesize( $arquivo ) );

   fclose ( $fp );

   //Substitui as tags pelas variáveis
   $output = str_replace( "<<empresa>>", $empresa, $output );
   $output = str_replace( "<<nome>>", $nome, $output );
   $output = str_replace( "<<endereco>>", $endereco, $output );
   $output = str_replace( "<<telefone>>", $telefone, $output );
   $output = str_replace( "<<email>>", $email, $output );
$output = str_replace( "<<site>>", $site, $output );
   //Envia documento para o browser
   echo $output;
}	

?>


 

Agora vai outro teste:

 

http://tectonny.com.br/geradoc/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se o corretoreabrir esse tópico ou criar um novo, mas ficou alem do que sei em php e se tiver alguem para me orientar eu agradeço.

 

 

O scritp já está funcionando como informei acima, ele pega um exemplo RTF (teste.rtf), ler o arquivo e trocar os coringas que tiver (<<qualquercoisa>>) e manda para a saída $output, logo abre o arquivo para nós salvarmos. Até beleza.

 

O que preciso de ajuda é se tem como manipular o nome de saída do arquivo rtf, se usarmos o exemplo teste.rtf, o script vai trocar os coringas certinho mas a saida continua sendo teste.rtf.

 

Eu gostaria que o arquivo de saída saisse com nome em que colocarmos no campo nome do fórmulário que no arquivo php é o $nome.

 

Tem como fazer isso, podemos manipular o nome de saído do arquivo ou é obrigado ficar com o nome do modelo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Igor, sim eu sei, mas se alterar nesta linha o script vai da erro, porque é nesta linha que ele busca o modelo informado no formulário.

 

Eu preciso que o nome seja modificado na saída do arquivo, aproveitando o $nome para nomear o arquivo de saída, entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

nao, você nao entendi, eh nesta linha q você diz o nome de saida do arquivo, veja q a funcao header manda cabecahlos, ou seja, dados para o navegador, quando o arquivo sair la, vai sair com o nome escrito ali, se vai ler o arquivo, pode ser outra variavel...faça um teste...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu mudar o $file para qualquer coisa o script não pega os modelos .rtf no servidor, esse $file indica o modelo no no servidor que o script irá usar.

 

Tentei o seguinte, onde está:

<?
   // Abre seu template
   $arquivo = "$file";
   $fp = fopen ( $arquivo, "r" );

?>

Mudei para:

   // Abre seu template
   $arquivo = "$file";
   $fp = fopen ( $arquivo, "r" );
   $novo = fopen ( $nome, "w+");

 

E no final que está assim:

<?
   //Envia documento para o browser
   echo $output;
       }      
?>

 

Mudei para:

<?

$grava = fwrite( $novo, $output );

fclose ( $novo );

   //Envia documento para o browser
   echo $grava;
       }      
?>

 

O script gera o arquivo .rtf com o mesmo nome do modelo e vazio. Mas olhando na pasta do script no servidor apareceu um novo arquivo com o nome que eu coloque, só que sem extensão, ao abrir ele com o word apreceu o arquivo perfeito.

 

Ou seja ele gerou o arquivo com o nome Manuel da Conceição sem a extensão (o correto seria Manuel da Conceição.rtf) e não jogou para o navegador para baixar, e para piorar ele joga o modelo com o nome original só que vazio.

 

Niguem se habilita? Ou parada é dura mesmo? kkkkkkkkk..

Compartilhar este post


Link para o post
Compartilhar em outros sites

ja tentou isto?

if($file =="" || $file == "none") 	{ 	echo "<center><a href='javascript:window.history.go(-1)' class='links'>"; 	echo "Você precisa selecionar um <b>Template</b>."; 	echo "</a></center>"; 	} else 	{     header( "Content-type: application/msword" );     header( "Content-Disposition: inline, filename='algumacoisa.doc'");      // Abre seu template     $arquivo = "$file";     $fp = fopen ( $arquivo, "r" );      //Le o template na variavel     $output = fread( $fp, filesize( $arquivo ) );        fclose ( $fp );        //Substitui as tags pelas variáveis     $output = str_replace( "<<empresa>>", $empresa, $output );     $output = str_replace( "<<nome>>", $nome, $output );     $output = str_replace( "<<endereco>>", $endereco, $output );     $output = str_replace( "<<telefone>>", $telefone, $output );     $output = str_replace( "<<email>>", $email, $output ); 	$output = str_replace( "<<site>>", $site, $output );     //Envia documento para o browser     echo $output; 	}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema resolvido por um amigo de apenas 15 anos, o Vitor G.

 

Segue ai a solução encontrada por ele:

 

<?php
$file                 = $_POST["file"];
$nome                 = $_POST["nome"];
$aluno                = $_POST["aluno"];
$aluna                = $_POST["aluna"];
$matriculado          = $_POST["matriculado"];
$matriculada          = $_POST["matriculada"];
$serie                = $_POST["serie"];
$entra                = $_POST["entra"];
$sai                  = $_POST["sai"];


if($file =="" || $file == "none")
{
echo "<center><a href='javascript:window.history.go(-1)' class='links'>";
echo "Você precisa selecionar um <b>Template</b>.";
echo "</a></center>";
}
else
{
   header("Pragma: no-cache");
   header("Content-Type: application/rtf");
   header("Content-Disposition: attachment; filename=".$nome.".rtf");

// leitura das datas
$dia = date('d');
$mes = date('m');
$ano = date('Y');

// configuração mes

switch ($mes){

case 1: $mes = "janeiro"; break;
case 2: $mes = "fevereiro"; break;
case 3: $mes = "março"; break;
case 4: $mes = "abril"; break;
case 5: $mes = "maio"; break;
case 6: $mes = "junho"; break;
case 7: $mes = "julho"; break;
case 8: $mes = "agosto"; break;
case 9: $mes = "setembro"; break;
case 10: $mes = "outubro"; break;
case 11: $mes = "novembro"; break;
case 12: $mes = "dezembro"; break;

}

   // Abre seu template
   $arquivo = "$file";
   $fp = fopen ( $arquivo, "r" );

   //Le o template na variavel
   $output = fread( $fp, filesize( $arquivo ) );

   fclose ( $fp );

   //Substitui as tags pelas variáveis
   $output = str_replace( "<<nome>>", $nome, $output );
$output = str_replace( "<<aluno>>", $aluno, $output );
$output = str_replace( "<<aluna>>", $aluna, $output );
$output = str_replace( "<<matriculado>>", $matriculado, $output );
$output = str_replace( "<<matriculada>>", $matriculada, $output );
$output = str_replace( "<<serie>>", $serie, $output );
$output = str_replace( "<<entra>>", $entra, $output );
$output = str_replace( "<<sai>>", $sai, $output );
$output = str_replace( "<<dia>>", $dia, $output );
$output = str_replace( "<<mes>>", $mes, $output );
$output = str_replace( "<<ano>>", $ano, $output );


   //Envia documento para o browser
   echo $output;
}	

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.