- 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:
- Componente Report.NET, a DLL Reports.dll deve existir na mesma pasta da DLL MDFe_Util.dll;
Aplicativo visualizador de PDF para fazer a visualização e impressão do PDF, opções:
- Adobe Acrobat Reader - A DLL Reports.NET pode ter problemas com versões mais recentes do Acrobat Reader, pois ela foi escrita para as versões 5/6 do Acrobat Reader.
- SumatraPDF - Este aplicativo não requer instalação no equipamento e tem a vantagem de ser compacto.
Limitação de uso:
- O DACE não permite a customização do leiaute.
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