6. Utilidades
6.7. Gerar PDF do DACE
6.6. Elimina Identação XML
« Anterior

6.7. Gerar PDF do DACE

Gerar PDF do DACE

Assinatura:

int geraPdfDACE(string XML, string logo, string visualizar, string parametros, out string msgResultado)

Descrição:

Funcionalidade gerar o PDF de XML do DC-e.

Requisitos de uso:

Limitação de uso:

Parâmetros:

nome tipo fluxo descrição
XML string entrada informar uma string com o XML do DC-e ou procDCe 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) a expressão SEM VALOR FISCAL no DACE gerado.
visualizar string entrada informar S ou N para indicar a visualização do PDF.
parametros string entrada [ARQUIVO=nomeArquivo], a DLL irá gravar um PDF com no nome indicado na pasta da aplicação;
[DCeId.PDF] -> grava arquivo com nome = chave de acesso do DC-e;
[RODAPE=texto do rodape] -> imprime o "texto do rodape" informado no RODAPE;
[PASTA=nomePasta] -> indica a pasta de gravação do PDF;
[IMPRIMIR=n], a DLL irá enviar o PDF para impressora padrão. O n pode variar de 1 a 5;
[MENSAGEM=texto da mensagem] -> imprime o "texto da mensagem" informado no corpo do DAMDFE;
[SumatraPDF] -> indica o uso do SumatraPDF para visualização e impressão do PDF, necessário ter o SumatraPDF na pasta da aplicação.
msgResultado string saída retorna a literal do resultado da chamada do WS.


Exemplos de parâmetros parametros"

parametros = "[RODAPE=Powered by DCe_Util.dll - FlexDocs Documentos Eletronicos - (C) 2025- 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 DCe_Util.dll - FlexDocs Documentos Eletronicos - (C) 2025 - Todos os direitos reservados." no rodapé, além de imprimir uma via na impressora padrão e oferecer a visualização do PDF do DAMDFE.

parametros = "[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
7900 PDF da DAMDFE do DC-e: [chave do DC-e] foi gerado com sucesso
7901 PDF da DAMDFE do DC-e: [chave do DC-e] foi gravado com nome [valor informado] com sucesso
7902 Erro: Indicador de visualização informado [valor informado] inválido, divergente de: [S]im ou [N]ão
7903 Erro: A DLL não oferece suporte para geração do PDF para a versão do DC-e: [versão do XML]
7904 Erro: Falha na gravação do PDF [nome arquivo], motivo da falha: [Mensagem de Erro]
7905 Erro: Falha na leitura do XML do DC-e:[Mensagem de Erro]
7906 Erro: Situação imprevista Erro do Windows:[Mensagem de Erro]
7907 Erro: Falha no processo de tratamento do XML, examine a mensagem de erro do Windows: [Mensagem de Erro]
7908 Erro: Falha no processo de visualização do PDF, examine a mensagem de erro do Windows: [Mensagem de Erro]
7909 Erro: Falha no processo de impressão do PDF, examine a mensagem de erro do Windows: [Mensagem de Erro]
7910 Erro: SumatraPDF.exe inexiste na pasta da DLL: [pasta da DLL]

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 do DC-e da versão 1.00
Dim visualizar As String          ' visualizar PDF (S/N)
Dim parametros As String          ' parametros da geracao do PDF
Dim cResultado As Long            ' código deretorno da chamada da DLL
Dim msgResultado As String        ' literal com resultado da chamada da DLL

Dim nomeArquivoDCe As String      ' nome do arquivo procDCe que será lido

nomeArquivoDCe = "c:\procDCe.xml"
 
 
On Error GoTo 0
'   Carrega o conteúdo do nome do arquivo em XMLS
'
Open nomeArquivoDCe For Input As #1
XML = Input$(LOF(1), #1)
Close #1
'
visualizar = "S"                ' visualizar PDF "S" ou "N"

                                ' Parâmetro, valores válidos:
                                ' [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;
                                ' [MENSAGEM=texto da mensagem] -> imprime o "texto da mensagem" informado no corpo do DACE;
                                ' [IMPRIMIR=n] -> imprime n cópias do DACE
                                ' [SumatraPDF]** -> indica o uso do SumatraPDF para visualização e impressão do PDF, necessário ter o SumatraPDF.exe na pasta da aplicação
                                '
parametros = "[RODAPE=Powered by DCe_Util.dll - FlexDocs Documentos Eletronicos - (C) 2025 - Todos os direitos reservados.][SumatraPDF]"
 
cResultado = 0
msgResultado = ""
'
' instancia a DLL - late binding
'
Dim objDCeUtil As Object
'
Set objDCeUtil = CreateObject("DCe_Util.Util")
'
' chama DLL
'

cResultado = objDCeUtil.geraPdfDACE(XML, _
                                    visualizar, _
                                    parametros, _
                                    msgResultado)
 
'
'  tratar retorno
'

If cResultado < 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
6.7. Gerar PDF do DACE
6. Utilidades
« Anterior
6.6. Elimina Identação XML