Artigo

» Como gerar documentos RTF

Nesse artigo irei demonstrar como gerar um documento no formato RTF, compatível com o MS-Word, a partir de um modelo e substituir parte do seu conteúdo por valores fornecidos através de um script PHP.

O modelo também é um arquivo no formato RTF e o conteúdo variável (que será substituído) deve estar demarcado com os caracteres => e <=. Veja o exemplo a seguir:

Modelo de Documento (RTF)

=>titulo<=

Nome Telefone
=>nome1<= =>telefone1<=
=>nome2<= =>telefone2<=
=>nome3<= =>telefone3<=

O script PHP irá abrir esse arquivo e copiar o seu conteúdo para uma variável. A seguir irá substituir todos os campos demarcados pelos valores fornecidos e gravar o resultado final em um arquivo, geralmente com um nome diferente do modelo para não sobrescrevê-lo. No exemplo a seguir nós termos o arquivo modelo.rtf como modelo e o arquivo saída.rtf como arquivo de saída.

<?
// valores a serem substituídos
$Titulo = "Agenda Telefônica";
$Nome1 = "João";
$Telefone1 = "1111-1111";
$Nome2 = "Maria";
$Telefone2 = "2222-2222";
$Nome3 = "José";
$Telefone3 = "3333-3333";
// abre o modelo utilizado
$Ponteiro = fopen ("modelo.rtf","r");
$Saida = fread($Ponteiro,filesize("modelo.rtf"));
fclose($Ponteiro);
// substitui os campos do modelo pelos valores
$Saida = str_replace( "=>titulo<=",$Titulo,$Saida);
$Saida = str_replace( "=>nome1<=",$Nome1,$Saida);
$Saida = str_replace( "=>telefone1<=",$Telefone1,$Saida);
$Saida = str_replace( "=>nome2<=",$Nome2,$Saida);
$Saida = str_replace( "=>telefone2<=",$Telefone2,$Saida);
$Saida = str_replace( "=>nome3<=",$Nome3,$Saida);
$Saida = str_replace( "=>telefone3<=",$Telefone3,$Saida);
// grava o novo arquivo
$Ponteiro = fopen("saida.rtf","wb");
fwrite($Ponteiro,$Saida);
fclose($Ponteiro);
?>

Esse scipt pode ser alterado de várias maneiras, como, por exemplo, buscar os valores de um banco de dados ou receber através de uma página de formulário, tornando o seu funcionamento muito mais dinâmico.

Outra implementação interessante seria acrescentar comandos próprios do formato RTF diretamente no script PHP, tornando mais flexível o resultado final no arquivo de saída. São muitos os comandos disponíveis para manipulação desse formato.

» Download dos fontes do artigo. «

Fechar Janela