Gerar PDF de um DANFE a partir do XML em PHP

Deseja gerar PDF de um DANFE a partir de um arquivo XML de uma NFe através do PHP. Leia este artigo, que lhe mostro como.

O problema

Hoje comecei um projeto em que meu cliente (usuário) irá comparar ordens de compra em um legado com as notas fiscais de entrada existentes no ERP.

Preciso exibir em uma página web o DANFE, lido a partir do arquivo XML disponível no ERP, utilizando para isso PHP.

 

Ambiente

Windows Server 2008 Standard / IIS 7

 

Solução

Somente hoje descobri que existe uma excelente API desenvolvida completamente em PHP, que executa todas as funções de manipulação da NFe: NFePHP

NFePHP é uma API para gerenciamento das comunicações entre o emitente de NFe e os serviços dos SEFAZ estaduais. Inteiramente construído em PHP para rodar sob qualquer sistema operacional.

 

Dependências

Aqui só me preocupei com o que seria necessário para a geração do arquivo PDF do DANFE a partir do XML, portanto não me preocupei com as demais operações relativas a NFe.

Como executei testes em um servidor, em que somente havia o servidor web e o PHP em funcionamento, aqui listo todos os programas que serão necessários para o tutorial.

Infelizmente não entrarei em maiores detalhes da instalação do composer ou do git. Neste tutorial o foco é a instalação da NFePHP e seu uso.

Há diversos tutoriais de instalação de ambas ferramentas pela web.

 

Configurações Necessárias

No arquivo php.ini é necessário habilitar algumas extensões. Localize as linhas onde estão as definições e retire os comentários à frente de cada linha:

  • extension=php_openssl.dll
  • extension=php_fileinfo.dll
  • extension=php_mbstring.dll

 

Passos

Os passos iniciais do tutorial, são todos executados em linha de comando do Windows.

  1. Abra uma janela de linha de comando.

  2. Se posicione no diretório onde o programa de teste ficará disponível no servidor web, para que possa ser executado através do browser.

  3. Clone o repositório do NFePHP para o disco local.


    git clone --branch=develop https://github.com/nfephp-org/nfephp.git

  4. Instale as dependências para o NFePHP.

    cd nfephp
    composer install
    ./vendor/bin/phpunit

  5. Copie um arquivo XML de uma nota fiscal qualquer para o local onde o programa será executado.

  6. Crie um arquivo com o nome “exibe_danfe.php”, com seguinte conteúdo:


    montaDANFE();
    $teste = $danfe->printDANFE($id.'.pdf', 'F');
    ?>


    alt : test.pdf



  7. No código fonte da rotina, troque o nome do arquivo XML pelo nome do arquivo que você copiou no passo 5. Faça o mesmo com o nome do arquivo PDF que será gerado.

  8. Através de seu browser acesse o arquivo criado no passo anterior. O DANFE será exibido em uma div no tamanho definido.

A rotina proposta é bastante simples, mas pode ser adaptada facilmente a rotinas mais complexas que atendam a sua necessidade.

 

Outros artigos relacionados

 

Gostou do post?

Gostaria muito de saber sua opinião sobre o conteúdo através de um comentário seu logo aqui abaixo.

Caso ele tenha sido útil para você, aproveite para compartilhá-lo com um amigo ou amiga que precise de idéias como essas para ajudar em seu dia a dia.

Se quiser que avise sempre que houver uma atualização, deixe seu email abaixo.

[rsnippet id=”1″ name=”automacao-email-post”]

Até o próximo post!

39 Comments

Add a Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.