Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal, eu trabalho em uma escola e sei o básico do básco do php, e preciso criar um sisteminha para gerar declarações escolar com 4 modelos diferentes, e que seja impressso, hoje é feito pelo Word, que tem timbre do estado do RJ.
A idéia seria assim, ao abrir o sistema aparece um formulário com radio para selecionar o tipo de declaração, e um box para colocar o nome do aluno, e um botão para imprimir, o sistema iria ler o tipo de declaração, pegaria o nome do aluno e montava a impressão no modelo da declaração escolhida, e enviava para impressão.
Não sei se consegui explicar direito, e nem sei sei se é PHP, e nem como disponibilizar os modelos para o sistema usar, quem puder me orientar eu agradeço.
com javascript faça:
window.print();
Entendi mais ou menos, mas como eu faço para usar o modelo padrão, que hoje é em word, pois tem um modelo padronizado pela seeduc.
>
Entendi mais ou menos, mas como eu faço para usar o modelo padrão, que hoje é em word, pois tem um modelo padronizado pela seeduc.
Para montar as declarações você vai utilizar HTML e CSS (que são as linguagens de marcação e estilo)
como o colega acima disse você pode usar html e css ou salvar esse modelo .doc em .rtf .... e fazer o php abrir esse arquivo e substituir as strings q mudam, depois configurar o header para "fazer download" do arquivo ja formatado.
Deixa ver se entendi, eu monto o modelo identico que uso no word em html? Ou eu posso usar o php para modificar o arquivo de word? Se for pelo php eu posso usar ele para modicar um trecho especifico?
Desculpe é que já foi muito alem do if e else, kkkkkkkkk.
A idéia seria mais ou menos isso:
http://www.criarweb.com/artigos/gerar-documentos-de-word-rtf-com-php.html
Alterar o documento padrão que eu tenho modificando as string que eu precisar.
isso, seria como no tutorial do link, mas o arquivo você deve conveter para .rtf, pq o .doc é codificado.
cara, usa as dicas do post 2 com o post3, t atendem perfeitamente...
Sim, mas eu não tenho conhecimento em css, em html é tranquilo, não sei se consigo montar os padrões das declarações que é feito em word identica pelo html e css.
Seria mais simples...
outro meio é converter para pdf usando o php..
Sim, mas convertendo para PDF poderia ainda modificar o conteúdo?
Sim, mas convertendo para PDF poderia ainda modificar o conteúdo?
Sim, existe programas que convertem de PDF para DOC, então bastaria isto para modificar e gerar outro PDF.
antonio jorge, pa kem trabalha com web, saber html, css e js eh o mais basico...
Sim Igor, mas meu ramo não é web, sou administrador de fórum onde o seguimento é eletrônica, e esse é o meu ramo, veja:
http://www.tectonny.com/forum/index.php
Eu faço minha edições html via dreamwever, e a parte de php (que tentei aprender) e consigo levar legal lendo muito sobre o que eu quero, e ainda faço alguns site gerenciável com wordpress, mas é como eu digo é um hoby, sobre o css ate entendo que o básico é aprender, mas não me aprofundei no assunto, talvez me falte um editor visual para css...
Mesmo assim eu agradeço a todos e vou tentar fazer o que eu achar mais próximo do original, e trago o resultado para todos verem.
cara, se você usa dreamwever da suite cs não devera ser dificil você utilizar o css, ja que o dreamwever faz tudo por você
>
cara, se você usa dreamwever da suite cs não devera ser dificil você utilizar o css, ja que o dreamwever faz tudo por você
concordo...como dizem na informatica: "um pessimo artesao culpa suas ferramentas", você usa o dreamweaver e nem sabe q ele meche com css pra você...seria bom você aprender a usa-lo corretamente...vera q ele faz maravilhas...at certo ponto...
Olá Igor, não falei que o dreamweaver não faz, e eu uso o MX e o CS5, e o CS5 é o que da melhor suporte ao css, sei que é uma ótima ferramenta, talvez realmente eu não consiga tirar tudo que posso dela, mas cada um fala o que quer, entãod eixa quieto.
Ao restante que tentou me ajudar, peguei um exemplo na net que é mais ou menos o que eu quero, vejam:
http://www.tectonny.com/geradoc/
Sendo que ao indicar o arquivo .rtf (que o exemplo tem teste.rtf) o arquivo geradoc.php não está pegando o template indicado, e a estrutara é assim:
index.php
<html>
<head>
<title>Exemplo - Gerar Documento em Doc/RTF</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="class.css" type="text/css">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<table border="0" align="center" width="400" bgcolor="#CCCCCC">
<tr>
<td bgcolor="#EEEEEE">
<form name="form1" method="post" action="geradoc.php">
<p align="center"><font face="Verdana, Arial, Helvetica, sans-serif" size="3"><b><font color="#666666"><br>
EXEMPLO - GERAR DOC/RTF 1.1</font></b></font></p>
<table width="75%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td width="23%" nowrap><font class="texto">Empresa:</font></td>
<td width="70%">
<input type="text" name="empresa" class="form_campos" size="35" maxlength="40">
</td>
</tr>
<tr>
<td width="24%"><font class="texto">Nome:</font></td>
<td width="70%">
<input type="text" name="nome" class="form_campos" size="35" maxlength="40">
</td>
</tr>
<tr>
<td width="24%"><font class="texto">Endereço:</font></td>
<td width="70%">
<input type="text" name="endereco" class="form_campos" size="30" maxlength="50">
</td>
</tr>
<tr>
<td width="24%"><font class="texto">Telefone:</font></td>
<td width="70%">
<input type="text" name="telefone" class="form_campos" size="20">
</td>
</tr>
<tr>
<td width="24%"><font class="texto">Email:</font></td>
<td width="70%">
<input type="text" name="email" class="form_campos" size="30" maxlength="50">
</td>
</tr>
<tr>
<td width="24%"><font class="texto">Site:</font></td>
<td width="70%">
<input type="text" name="site" class="form_campos" size="30" maxlength="50">
</td>
</tr>
<tr>
<td width="24%"><font class="texto">Template.<b>rtf</b>:</font></td>
<td width="70%">
<input type="text" size=30 name="file" class="form_campos">
</td>
</tr>
</table>
<p align="center">
<input type="submit" name="Submit" value="Gerar Documento" class="form_botao">
<input type="reset" name="Submit2" value="Limpar" class="form_botao">
</p>
</form>
</td>
</tr>
</table>
<p align="center"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="leiame.txt" target="_blank">leiame.txt</a>
</font></p>
<p align="center"><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Exemplo
criado por: <a href="http://www.phpbrasil.com/profile.php/id/282" target="_blank">Apoena
Machado Cunha</a></font><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><br>
</font></p>
</body>
</html>
geradoc.php
<?
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>";
} 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;
}
?>
Os templates para teste que tem no servido são:
etiquetas.rtf
teste.rtf
Não percebi nenhum erro no código acima, será que algum programador pode confirmar para mim?
antonio jorge, de forma alguma eu kiz lhe ofender (", mas cada um fala o que quer, entãod eixa quieto.")... você disse q ", talvez me falte um editor visual para css..." e o dreamweaver tem esse editor visual css...você apenas demonstrou nao saber usar o dreamweaver, eu tenho todas as versoes do dreamweaver, desde o mx, at o cs5.5, e conheco muito bem suas limitacoes....
Ok Igor sem problema, fique tranquilo, não me senti ofendido e sim limitado.
>
Ok Igor sem problema, fique tranquilo, não me senti ofendido e sim limitado.
tb me senti assim ao perceber q ja tinha dominado o dream, mas ele sim tem limites, nao nos, entao eu fui atras de aprender a fazer os codigos...e percebi q nao eh nada dificl...so precisa de pratica...
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>";
} 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:
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?
nesta linha você altera o nome do arquivo
header( "Content-Disposition: inline, filename=$file");
em $file...
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?
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...
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..
Usa sim php, mas só para pegar o nome do aluno dinamicamente e setar com o tipo de documento que irá imprimir.
Para montar as declarações você vai utilizar HTML e CSS (que são as linguagens de marcação e estilo) e para imprimir
você utilizará a função print(); que é em javascript.