Contratos em Word ou PDF

Olá a todos!

Sou novo com o scriptcase e estou sofrendo para gerar um contrato para meu cliente, já busquei dicas aqui no fórum, porém não encontrei alguma coisa que fosse no sentido que estou querendo fazer.

Gostaria que com os dados já previamente cadastrado no banco de dados o scriptcase pudesse gerar o contrato em word ou pdf. Seria formidável como algumas ideias que apurei no fórum que ele substituísse parâmetros no word predeterminado como {nome_cliente}, mas não consegui fazer. Tentei com o tcpdf porém esbarrei na formatação e como ainda não domino a ferramenta por completa gostaria de mais dicas para fazer esses contratos.

Se alguém conhecer algum tutorial que possa me indicar agradeço…

Eu tenho um contrato de adesão e no final das contas acabei fazendo um contrato HTML com substituições dos dados variáveis e com a impressão posterior em PDF, mas tem a biblioteca phpdoc que pode ser um caminho , não tentei usar

Olá, o mais viável é gerar em word um documento RTF, com a codificação dos campos a substituir do tipo #nome_cliente#, #morada_cliente#, etc

no exemplo seguinte criar o documento contratomodelo.rtf
Screenshot_4

criando um botão dentro do formulário efetua a substituição dos campos com os dados:
ROTINA:

$current_date = date(‘Y-m-d’);
// FORMATAR A DATA
$xwdata_instalacao ={data_instalacao};

$wdia= date( ‘d’, strtotime($xwdata_instalacao) );
$wmes= date( ‘m’, strtotime($xwdata_instalacao) );
$wano = date( ‘Y’, strtotime($xwdata_instalacao) );

switch (date( ‘m’, strtotime($xwdata_instalacao) ))
{
case 1: $vmes = ‘Janeiro’; break;
case 2: $vmes = ‘Fevereiro’; break;
case 3: $vmes = ‘Março’; break;
case 4: $vmes = ‘Abril’; break;
case 5: $vmes = ‘Maio’; break;
case 6: $vmes = ‘Junho’; break;
case 7: $vmes = ‘Julho’; break;
case 8: $vmes = ‘Agosto’; break;
case 9: $vmes = ‘Setembro’; break;
case 10: $vmes = ‘Outubro’; break;
case 11: $vmes = ‘Novembro’; break;
case 12: $vmes = ‘Dezembro’; break;
}

$xmarca={marca};
$xmodelo={modelo};
$xnumero_contrato={numero_contrato};
$xnumero_serie={numero_serie};
$xnome_cliente={cliente_nome};
$xcontador_inicial_cor={contador_inicial_cor};
$xcontador_inicial_preto={contador_inicial_preto};
$xmorada_cliente={cliente_morada};
$xnif_cliente={cliente_nif};
$xdata_inicio={data_inicio};
$xtipocontrato={tipo_contrato};
$xvalortotalfatura={valor_total_fatura};
$xvalorcopiacor={valor_cor};
$xvalorcopiapreto={valor_preto};
$xincluipapel={inclui_papel};
$xnomerepresentante={obs_constar_contrato};
$xobsconstar={obs_constar_contrato};
$current_date = date(‘Y-m-d’);
$vdata = ‘Funchal, ‘. $wdia.’ de ‘.$vmes.’ de ‘.$wano;
$xdatasistema= $wdia.’-’.$vmes.’-’.$wano;
$xvalidademeses={validade_meses};
$xdatainstalacao={data_instalacao};

$wdiacontrato= date( ‘d’, strtotime( $xwdata_instalacao ) );
$wmescontrato= date( ‘m’, strtotime( $xwdata_instalacao ) );
$wanocontrato = date( ‘Y’, strtotime($xwdata_instalacao ) );
$xdata_instalacao= $wdiacontrato.’-’.$wmescontrato.’-’.$wanocontrato;

$wxdiacontrato= date( ‘d’, strtotime( $xdata_inicio ) );
$wxmescontrato= date( ‘m’, strtotime( $xdata_inicio ) );
$wxanocontrato = date( ‘Y’, strtotime($xdata_inicio) );
$xxxdatainicio= $wxdiacontrato.’-’.$wxmescontrato.’-’.$wxanocontrato;

// INICIO FORMATA WORD
$arquivo = “…/_lib/templates/contratomodelo.rtf”;

$arq = fopen($arquivo,“r”);

// LER O ARQUIVO
$mensagem = fread($arq, filesize($arquivo));

// FECHA O ARQUIVO
fclose($arq);

// VALORES DOS CAMPOS
$mensagem = str_replace(’#marca#’, $xmarca, $mensagem);
$mensagem = str_replace(’#modelo#’, $xmodelo, $mensagem);
$mensagem = str_replace(’#contrato#’, $xnumero_contrato, $mensagem);
$mensagem = str_replace(’#numeroserie#’, $xnumero_serie, $mensagem);
$mensagem = str_replace(’#nomecliente#’, $xnome_cliente, $mensagem);
$mensagem = str_replace(’#contadorinicialcor#’, $xcontador_inicial_cor, $mensagem);
$mensagem = str_replace(’#contadorinicialpreto#’, $xcontador_inicial_preto, $mensagem);
$mensagem = str_replace(’#moradacliente#’, $xmorada_cliente, $mensagem);
$mensagem = str_replace(’#nifcliente#’, $xnif_cliente, $mensagem);
$mensagem = str_replace(’#datainicio#’, $xxxdatainicio, $mensagem);
$mensagem = str_replace(’#nmeses#’,$xvalidademeses, $mensagem);
$mensagem = str_replace(’#tipocontrato#’, $xtipocontrato, $mensagem);
$mensagem = str_replace(’#valortotalfatura#’, $xvalortotalfatura, $mensagem);
$mensagem = str_replace(’#valorcopiapreto#’, $xvalorcopiapreto, $mensagem);
$mensagem = str_replace(’#valorcopiacor#’, $xvalorcopiacor, $mensagem);
$mensagem = str_replace(’#incluipapel#’, $xincluipapel, $mensagem);
$mensagem = str_replace(’#datasistemaextenso#’, $vdata, $mensagem);
$mensagem = str_replace(’#datasistema#’, $xdata_instalacao, $mensagem);
$mensagem = str_replace(’#obsconstarcontrato#’, $xobsconstar, $mensagem);
$mensagem = str_replace(’#nomedorepresentante#’, $xnomerepresentante, $mensagem);

//$mensagem = str_replace(‘campo05’, [var_usuario_nome], $mensagem);

// SALVA ARQUIVO
$vtipo =“contratoN”.$xnumero_contrato;
$vtipo =“contratoN”.$xnumero_contrato;
//$vtipo =“contratoN”;

$vtipo = strtr($vtipo, “áàãâéêíóôõúüçÁÀÃÂÉÊÍÓÔÕÚÜÇ”, “aaaaeeiooouucAAAAEEIOOOUUC”);
$vtipo = strtolower($vtipo);
$vtipo = str_replace(’ ‘, ‘_’, $vtipo);
$vtipo = $vtipo.’.rtf’;

$arquivo2 = “…/_lib/templates/”.$vtipo;

$fp = fopen($arquivo2, ‘w’);
fwrite($fp, $mensagem);
fclose($fp);

// DIRECIONA
// Não esquecer desbloquear janelas popups do browser
echo “";
sc_exit(sel);

o resultado será gerar um documento word no formato RTF que abre automáticamente, posteriomente poderá exportar para PDF.

2 Curtidas

Vê se esta antiga dica do Mestre dos Mestre Jailton: Gerar Contrato

@Fmorais, muito obrigada pela dica, vou dar uma verificada na biblioteca.

@herberto Super dica meu amigo, já estou tentando implementar, se conseguir aviso, muito obrigada mesmo…

@periodicosbrasil vlw pela dica, vou verificar…