14.4. Utilidadades
14.4.8. Gerar PDF do DANFE
14.4.7. UpLoadNFe
« Anterior
14.5. CriaProc
Próximo »

14.4.8. Gerar PDF do DANFE

Gerar PDF do DANFE

Assinatura:

int geraPdfDANFE(string XML, string origemDadosEmissor, string quadroRecibo, string quadroFatura, string quadroISSQN, string DPEC, string separadorItem, string gravaPDF, out string msgResultado)

Descrição:

Funcionalidade gerar o PDF de XML da NF-e.

Requisitos de uso:

Personalização possíveis

Limitação de uso:

Parâmetros:

nome tipo fluxo descrição
XML string entrada informar uma string com o XML da NF-e ou procNFe que deseja gerar o PDF.
Os arquivos que não tiver sido emitido para ambiente de produção (tpAmb = 1) e não tiver a autorização de uso quando exigido (tpEmis=1 ou 3) ou não tiver os dados do DPEC (tpEmis=5) terão a expressão SEM VALOR FISCAL no DANFE gerado.
origemDadosEmissor string entrada informar a forma de identificação do emitente, possibilidades:
sem conteúdo - se o parâmetro for informado com vazio, os dados de identificação do emissor serão obtidos do XML da NF-e;
nome de arquivo - se informado com um nome de arquivo, a imagem do arquivo informado irá ocupar o quadro de identificação do emitente. A imagem deve ser um arquivo jpg de 339 x 114 pixels que deverá ter os dados cadastrais do emitente da NF-e, pois a imagem irá ocupar todo o quadro do emissor.
impresso personalizado - se informado o literal [SEM DADOS EMITENTE], nenhum dado será impresso no quadro de identificação do emitente.
quadroRecibo string entrada informar S ou I para indicar a posição onde será gerado o quadro do Recibo de Entrega: posição [S]uperior ou posição [I]nferior
quadroFatura string entrada informar S ou N para indicar a impressão do quadro Fatura/Duplicatas, se existir informação o quadro Fatura/Duplicatas será impresso independente do valor informado.
quadroISSQN string entrada informar S ou N para indicar a impressão do quadro ISSQN, se existir informação de ISSQN o quadro ISSQN será impresso independente do valor informado.
DPEC string entrada informar o número e a data e hora de registro do DPEC quando a NF-e tiver sido emitido em contingência DPEC
separadorItem string entrada informar L ou T ou B ou Z para indicar a forma de separação dos itens de detalhes nos casos em que a linha de detalhe ocupar mais de uma linha, significado das valores: [L]inha, [T]racejado, espaço em [B]ranco, e [Z]ebrado.
Para força a geração do separador, basta informar o literal em minúsculo: [l]inha, [t]racejado, espaço em [b]ranco, e [z]ebrado
gravaPDF string entrada Gerar arquivo PDF - informar o nome do arquivo PDF que será gravado, se o conteúdo for omitido, a PDF será gerado para visualização.
A visualização do PDF só é possível se existir o Acrobat Reader instalado no equipamento.
Este parâmetro permite a seguintes personalizações:
[IMPRIMIR=n], a DLL irá enviar o PDF para impressora padrão. O n pode variar de 1 a 5;
[NFeId.PDF] -> grava arquivo com nome = chave de acesso da NF-e;
[SEM COLUNA DESCONTO] -> não gera a coluna de desconto;
[RODAPE=texto do rodape] -> imprime o "texto do rodape" informado no RODAPE;
[PASTA=nomePasta] -> indica a pasta de gravação do PDF;
[VISUALIZAR] -> indica visualização da PDF;
[ARQUIVO=nomeArquivo] -> grava o PDF com o nome indicado;
[COM FATURA] -> indica que os dados da fatura devem ser impressos em informações adicionais;
[MENSAGEM=texto da mensagem] -> imprime o "texto da mensagem" informado no corpo do DANFE;
[SEM DADOS EMITENTE] -> não imprime os dados do emitente para atender quem tem impresso personalizado;
[SEM QUADRO EMITENTE] -> não imprime os dados do emitente e nem o quadro do emitente para atender quem tem impresso personalizado;
msgResultado string saída retorna a literal do resultado da chamada do WS.


Exemplos de parâmetros gravaPDF"

gravaPDF = "nomeArquivo.pdf"

Efeito - gera um PDF com nomeArquivo.pdf

gravaPDF = "[RODAPE=Powered by NFe_Util.dll - FlexDocs Documentos Eletronicos - (C) 2011 - Todos os direitos reservados.][VISUALIZAR][IMPRIMIR=1][ARQUIVO=TESTE.PDF][PASTA=C:\]";

Efeito - gera um PDF TESTE.PDF na pasta c:\ que tem a mensagem "Powered by NFe_Util.dll - FlexDocs Documentos Eletronicos - (C) 2011 - Todos os direitos reservados." no rodapé, além de imprimir uma via na impressora padrão e oferecer a visualização do DANFE.

gravaPDF = "[ARQUIVO=" + nomeArquivo + "][PASTA" + pasta + "][IMPRIMIR=" + copias + "]"

Efeito - gera um arquivo com o nome contido em nomeArquivo na pasta informada em pasta e imprime a quatidade cópias informada em copias


Retorno:

O resultado da chamada é um valor inteiro com um dos seguintes códigos:

código Mensagem origem regra
7900 PDF da DANFE da NF-e: [chave da NF-e] foi gerado com sucesso DLL -
7901 PDF da DANFE da NF-e: [chave da NF-e] foi gravado com nome [valor informado] com sucesso DLL -
7911 PDF do DANFE da NF-e : [chave da NF-e] foi enviado para impressora com sucesso" DLL -
7902 Erro: Indicador de Imprimir Quadro de Recibo informado [valor informado] inválido, divergente de: [S]uperior ou [I]nferior DLL -
7903 Erro: Indicador de Imprimir Quadro de Fatura informado [valor informado inválido, divergente de: [S]im ou [N]ão DLL -
7904 Erro: Indicador de Imprimir Quadro de ISSQN informado [valor informado] inválido, divergente de: [S]im ou [N]ão DLL -
7905 Erro: Tipo Separador informado [valor informado] inválido, divergente de: [T]racejado, [L]inha, [B]ranco ou [Z]ebrado" DLL -
7906 Erro: Falha na gravação do PDF [nome arquivo], motivo da falha: [Mensagem de Erro] DLL -
7907 Erro: Falha na leitura do XML da NF-e:[Mensagem de Erro] DLL -
7908 Erro: Situação imprevista Erro do Windows:[{Mensagem de Erro] DLL -
7909 Erro: Falha no processo de tratamento do XML, examine a mensagem de erro do Windows: [Mensagem de Erro] DLL -
7910 Erro: Falha na leitura do arquivo de logo:[Mensagem de Erro] DLL -
7912 Erro: Falha no processo de impressão do PDF, examine a mensagem de erro do Windows: [Mensagem de Erro] DLL -

Histórico de atualização:

Exemplos:

Visual Basic

 
'
' declaração das variáveis que serão utilizadas na passagem de parâmetros da DLL
'
Dim XML As String                 ' informar o XML da NF-e da versão 2.00
Dim OrigDadosEmissor As String    ' origem dos dados do emissor
Dim quadroRecibo As String        ' posicão de impressão do quadroRecibo [S]uperior [I]nferior
Dim quadroFatura As String        ' indicador de impressão do quadro de Fatura/Duplicata
Dim quadroISSQN As String         ' indicador de impressão do quadro ISSQN
Dim DPEC As String                ' data e número do registro do DPEC
Dim separadorItem As String       ' indicador do separador de item que será utilizado quando o item ocupar mais de
                                  ' uma linha: [L]inha, [T]racejado, espaço em [B]ranco, e [Z]ebrado.
Dim gravaPDF As String            ' serve para indicar o nome do arquivo que será gravado, se o conteúdo for omitido
                                  ' o PDF será visualizado na tela; 
                                  ' informe [NFeId.PDF] para gravar um arquivo com a chave da NF-e;
                                  ' Se informado o literal [IMPRIMIR=n], a DLL irá enviar o PDF para impressora padrão,
                                  ' o n pode varia de 1 a 5.
Dim cResultado As Long            ' código deretorno da chamada da DLL
Dim msgResultado As String        ' literal com resultado da chamada da DLL

'
'
'  Importante: todas as variáveis utilizadas como parâmetro da DLL devem ser inicializadas
'
'
Dim nomeArquivo As String   ' nome do arquivo que será assinado
'
nomeArquivo = "exemplo.xml"
'
'   Carrega o conteúdo do nome do arquivo em XMLString
'
Open nomeArquivo For Input As #1
XML = Input$(LOF(1), #1)
Close #1
'
OrigDadosEmissor = ""           ' origem dos dados do emissor no XML, possibilidades:
                                '  sem conteúdo -> os dados do emissor serão obtidos do XML;
                                '  nome arquivo -> a imagem informada irá ocupar todo o quadro dados do emitente;
                                '  literal [SEM DADOS EMITENTE] -> nenhum dado será impresso no quado dados do emitente;
quadroRecibo = "S"              ' quadro do recibo no topo
quadroFatura = "S"              ' imprimir o quadro de Fatura/Duplicatas
quadroISSQN = "S"               ' imprimir o quadro de ISSQN
DPEC = ""                       ' informar quando a NF-e tiver sido emitido em contingência DPEC
separadorItem = "T"             ' traço para separar o item quando o item ocupar mais de uma linha
gravaPDF = ""                   ' informar o nome do arquivo do PDF.
                                ' Se informado o literal [NFeId.PDF] a DLL irá gravar o PDF identificado com o chave de acesso da NF-e.
                                ' A omissão do nome gera uma visualização em tela.
                                '-----------------------------------------------------
                                'NOVO***NOVO***NOVO***NOVO
                                ' Parâmetro gravaPDF, valores válidos:
                                ' nomeArquivo -> grava PDF com nomeArquivo se existir apenas o nomeArquivo no parâmetro;
                                ' [NFeId.PDF] -> grava arquivo com nome = chave de acesso da NF-e;
                                ' [SEM COLUNA DESCONTO] -> não gera a coluna de desconto;
                                ' [RODAPE=texto do rodape] -> imprime o "texto do rodape" informado no RODAPE;
                                ' [PASTA=] -> indica a pasta de gravação do PDF;
                                ' [VISUALIZAR] -> indica visualização da PDF;
                                ' [ARQUIVO=nomeArquivo] -> grava o PDF com o nome indicado;
                                ' [COM FATURA] -> indica que os dados da fatura devem ser impressos em informações adicionais;
                                ' [MENSAGEM=texto da mensagem] -> imprime o "texto da mensagem" informado no corpo do DANFE;
                                '

cResultado = 0
msgResultado = ""
'
' instancia a DLL - late binding
'
Dim objNFeUtil As Object
'
Set objNFeUtil = CreateObject("NFe_Util_2G.util")
'
' chama DLL
'
cResultado = objNFeUtil.geraPdfDANFE(XML, OrigDadosEmissor, quadroRecibo, quadroFatura, quadroISSQN, DPEC, separadorItem, gravaPDF, msgResultado)
'
'  tratar retorno
'
If resultado < 7902 Then            ' sucesso, conversão OK

MsgBox msgResultado, vbInformation, "Informação"
 
Else
'

MsgBox "Processo de geração do PDF falhou..." & vbCrLf & msgResultado, vbExclamation, "Atenção"
 
End If
'
'  liberar DLL
'
Set objNFeUtil = Nothing
14.4.8. Gerar PDF do DANFE
14.4. Utilidadades
« Anterior
14.4.7. UpLoadNFe
Próximo »
14.5. CriaProc