Autor Tópico: PHP+MYSQL para o MS-WORD com PHPWord  (Lida 5686 vezes)

George Carvalho

  • Expert
  • *****
  • Mensagens: 1371
    • Email
Re:PHP+MYSQL para o MS-WORD com PHPWord
« Responder #15 Online: Dezembro 07, 2015, 09:10:18 pm »
Quero agradecer ao colega Jailton pelas dicas, sem sua ajuda não teria conseguido criar o script para gerar o arquivo 'rtf' e abri-lo com o Word.

Muito obrigado.
George Carvalho
Porto de Galinhas/PE

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 334
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:PHP+MYSQL para o MS-WORD com PHPWord
« Responder #16 Online: Dezembro 08, 2015, 07:18:16 am »
Olá poderiam enviar os exemplos para criar o doc word e preencher os dados rtf
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

George Carvalho

  • Expert
  • *****
  • Mensagens: 1371
    • Email
Re:PHP+MYSQL para o MS-WORD com PHPWord
« Responder #17 Online: Dezembro 08, 2015, 07:40:03 am »
Bom dia,

Crie o arquivo Word conforme sua necessidade;

Nomeie os campos que vão receber valor, estou utilizando cab01, cab02, campo01, campo02, etc...;

Salve o arquivo Word como .rtf 'Rich Text Format ';

Estou salvando na pasta 'tamplates' criada dentro do diretório _lib do sistema.

O código: - Parte do código é inerente a minha aplicação

// PA
$pa_numero = 'Processo administrativo n° '.substr({documento_seq}, 0, -4).'/'.substr({documento_seq}, -4);

// FORMATAR A DATA
switch (date("m")) {
        case "01":    $vmes = 'Janeiro';     break;
        case "02":    $vmes = 'Fevereiro';   break;
        case "03":    $vmes = 'Março';       break;
        case "04":    $vmes = 'Abril';       break;
        case "05":    $vmes = 'Maio';        break;
        case "06":    $vmes = 'Junho';       break;
        case "07":    $vmes = 'Julho';       break;
        case "08":    $vmes = 'Agosto';      break;
        case "09":    $vmes = 'Setembro';    break;
        case "10":    $vmes = 'Outubro';     break;
        case "11":    $vmes = 'Novembro';    break;
        case "12":    $vmes = 'Dezembro';    break;
 }

$vdata = 'Recife, '. date("d").' de '.$vmes.' de '.date("Y");

sc_lookup(ds_tipo, "select tipo
                    from doc_tipos
                    where tipo_id = '{tipo_id}'");
$vtipo = {ds_tipo[0][0]};
$vtipo = trim($vtipo);

$vdocumento = $vtipo.' n° '.substr({documento_numero}, 0, -4).'/'.substr({documento_numero}, -4);
$vassunto   = 'Assunto: '.{assunto};

// INICIO FORMATA WORD
$arquivo = "../_lib/templates/layout_documentos.rtf";

$arq = fopen($arquivo,'r');

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

// FECHA O ARQUIVO
fclose($arq);

// VALORES DOS CAMPOS
$mensagem = str_replace('cab01', $pa_numero, $mensagem);
$mensagem = str_replace('campo01', $vdata, $mensagem);
$mensagem = str_replace('campo02', $vdocumento, $mensagem);

if({requer} == '3'){
   $mensagem = str_replace('campo03', $vassunto, $mensagem);
   $mensagem = str_replace('campo04', 'Destinatário: ', $mensagem);   
}elseif({requer} == '1'){
        $mensagem = str_replace('campo03', $vassunto, $mensagem);
       $mensagem = str_replace('campo04', '', $mensagem);
}elseif({requer} == '2'){
        $mensagem = str_replace('campo03', 'Destinatário: ', $mensagem);
       $mensagem = str_replace('campo04', '', $mensagem);
}else{
     $mensagem = str_replace('campo03', '', $mensagem);
      $mensagem = str_replace('campo04', '', $mensagem);   
}

$mensagem = str_replace('campo05', [var_usuario_nome], $mensagem);

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

$arquivo = "../_lib/templates/".$vtipo;

$fp = fopen($arquivo, 'w');
fwrite($fp, $mensagem);
fclose($fp);

// DIRECIONA
sc_redir(doc_word_exibir_cons, vcaminho=$arquivo; vdocumento={documento_id});

Redireciono para uma aplicação consulta que exibe o link para o arquivo.

No evento onRecord da consulta:

$caminho_fil = [vcaminho];            
{word} = "<a target='_self' href='$caminho_fil'><img src='../_lib/img/word.png' border='0'></a>";

É imprescindível configurar a máquina do cliente para abrir arquivos rtf com o Word.
« Última modificação: Dezembro 08, 2015, 07:49:12 am por George Carvalho »
George Carvalho
Porto de Galinhas/PE

Herberto Silva

  • Avançado
  • ****
  • Mensagens: 334
  • Programador Freelancer
    • Desenvolvimento de Software
    • Email
Re:PHP+MYSQL para o MS-WORD com PHPWord
« Responder #18 Online: Dezembro 08, 2015, 09:05:38 am »
Obrigado!.... vou testar
Cumprimentos,
Herberto Silva
herberto.silva@sapo.pt
skype: herbertobfsilva
www.software-global.info

Kleyber

  • Expert
  • *****
  • Mensagens: 2237
    • Email
Re:PHP+MYSQL para o MS-WORD com PHPWord
« Responder #19 Online: Dezembro 08, 2015, 09:21:18 am »
Muito bom, George e Jailton. Vou guardar estas dicas aqui também.
Kleyber Derick

ITIL® V3 Foundation Certified
Analista de Sistemas
São Luís - Maranhão
www.tkinformidia.net