[Escovando Bits] Geração de Arquivos binários no ECF atendendo aos requisitos do PAF.ECF
Olá Escovadores de Bits! Recentemente foi publicada uma nova Especificação de Requisitos do PAF que mudou a obrigatoriedade de geração de arquivos de extensão .txt para arquivos binários.
Não se apavorem quanto à geração destes arquivos binários, nós temos uma solução em alto nível para esta mudança.
Neste escovando bits vamos aprender como gerar os arquivos binários e como assiná-los usando a DarumaFramework.
Gerando arquivos binários da MF – Memória Fiscal
- Clique aqui e faça o download do Executável em Delphi
- Após o download, extraia o pacote e abra a pasta “DarumaFramework_Delphi7exe”.
- Rode o exemplo “DarumaFramework_Delphi.exe”.
- Clique no menu “Impressoras Fiscal”.
- Agora procure o menu “Geração de Arquivos” e clique no submenu “Método rEfetuarDownloadMF_ECF_Daruma”.
- Na janela que abriu, defina o nome do seu arquivo binário da Memória Fiscal.
Veja o exemplo:
- Clique no botão “OK” e aguarde a geração do arquivo binário.
- Após o termino da geração, deverá aparecer uma mensagem de retorno.
- Arquivo binário gerado! Bem simples né?!
- Por padrão o arquivo é gerado na pasta “C:/”.
- Continue com o exemplo “DarumaFramework_Delphi.exe” aberto, pois vamos usá-lo.
Gerando arquivos binários da MFD – Memória Fita Detalhe
- Com o exemplo “DarumaFramework_Delphi.exe” aberto na parte de “Impressoras Fiscal”, siga os passos abaixo.Procure o menu “Geração de Arquivos” e clique no submenu “Método rEfetuarDownloadMFD_ECF_Daruma”.
- Na janela que abriu, selecione o tipo de intervalo, o intervalo inicial, intervalo final e o nome do arquivo binário da MFD.
Veja como ficou:
- Após o preenchimento de todos os campos, clique no botão “Enviar” para iniciar a geração do arquivo binário.
- Aguarde a geração ser concluída e receberá uma mensagem de retorno.
- Geração concluída! Agora nós temos também o arquivo binário da Memória Fita Detalhe.
- Por padrão o arquivo é gerado na pasta “C:/”.
- Continue com o exemplo “DarumaFramework_Delphi.exe” aberto, pois vamos usá-lo.
Gerando arquivos binários da MF + MFD e arquivos de texto com a MF + MFD
- Escovador de bits, se você já usa o método rGerarRelatorio_ECF_Daruma, fique despreocupado, pois este método além de gerar os arquivos com extensão .txt, já gera os arquivos binários, que agora são exigidos pelo PAF.
- Com o exemplo “DarumaFramework_Delphi.exe” aberto na parte de “Impressoras Fiscal”, siga os passos abaixo.
- Procure o menu “Geração de Arquivos” e clique no submenu “Método rGerarRelatorio_ECF_Daruma”.
- Na janela que abriu, selecione “MF” e “MFD”. Coloque a data inicial e a data final.
- Não é necessário definir o local de geração dos arquivos. A pasta padrão é “C:/”.
- Após preencher os campos, clique no botão “Gerar Relatório” para iniciar a geração dos arquivos.
- Ao terminar a geração, a mensagem de retorno será exibida.
- Geração concluída! Agora temos os arquivos binários da MF e MFD, temos também os arquivos ATO_MF_DATA.TXT e ATO_MFD_DATA.TXT.
- Ressalto que a pasta padrão de geração de arquivos é o “C:/”.
- Assinando os arquivos binários da MF e MFD
Agora vamos assinar os arquivos gerados nos passos anteriores, Daruma.mf e Daruma.mfd. - Para assinar, vamos continuar usando o exemplo “DarumaFramework_Delphi.exe”.
- Procure o menu “PAF-ECF” e clique no submenu “Método eRSAAssinarArquivo_ECF_Daruma”.;
- Uma janela será aberta. Preencha o campo “Caminho do arquivo a ser assinado:”(São os binários que nós já geramos) e também o campo “Caminho da chave gerada pelo Puttygen:”(É o seu arquivo.key, sua chave privada).
Veja como ficou:
- Pressione o botão “Enviar” para assinar o arquivo Daruma.mf.
- Após concluir a assinatura, você receberá uma mensagem de retorno.
- Arquivo Daruma.mf está assinado, vamos assinar agora o arquivo Daruma.mfd.
- Procure o menu “PAF-ECF” e clique no submenu “Método eRSAAssinarArquivo_ECF_Daruma”.
- Uma janela será aberta. Preencha o campo “Caminho do arquivo a ser assinado:”(São os binários que nós já geramos) e também o campo “Caminho da chave gerada pelo Puttygen:”(É o seu arquivo.key, sua chave privada).
Veja como ficou:
- Pressione o botão “Enviar” para assinar o arquivo Daruma.mfd.
- Após concluir a assinatura, você receberá uma mensagem de retorno.
- Pronto! Os dois arquivos estão assinados, Daruma.mf e Daruma.mfd.
- Viram só como não tem nada de difícil em assinar os arquivos binários?
Importante: Após assinar o arquivo Daruma.mf, ele não pode mais ser utilizado para geração off-line. Motivo: Sem assinatura o arquivo tem 1024 kbytes, que é o tamanho total da Memória Fiscal. Após a assinatura ele tem seu tamanho mudado para 1025 kbytes, ou seja, um tamanho superior ao da Memória Fiscal. Este 1kbyte a mais, impede a geração off-line. Codificando a geração dos arquivos binários e assinatura dos mesmos:
Delphi
//Declarações
function rEfetuarDownloadMF_ECF_Daruma(pszNomeArquivo:string): Integer; StdCall; External 'DarumaFramework.dll';
function rEfetuarDownloadMFD_ECF_Daruma(pszTipo:string;pszInicial:string;pszFinal:string;pszNomeArquivo:string): Integer; StdCall; External 'DarumaFramework.dll';
function rGerarRelatorio_ECF_Daruma(szRelatorio:string; szTipo:string; szInicial:string; szFinal:string): Integer; StdCall; External 'DarumaFramework.dll';
function eRSAAssinarArquivo_ECF_Daruma(pszPathArquivo:string;pszChavePublica:string): Integer; StdCall; External 'DarumaFramework.dll';
//Chamada de Métodos
//Geração do arquivo binário da MF
iRetorno := rEfetuarDownloadMF_ECF_Daruma(‘Daruma.mf’);
//Geração do arquivo binário da MFD
iRetorno := rEfetuarDownloadMFD_ECF_Daruma(‘DATAM’, ‘01052013’, ‘10052013’, ‘Daruma.mfd’);
//Gerando arquivos binários da MF + MFD e arquivos de texto com a MF + MFD
iRetorno := rGerarRelatorio_ECF_Daruma(‘MF+MFD’, ‘DATAM’, ‘01052013’, ‘10052013’);
//Assinando arquivo binário da MF
iRetorno := eRSAAssinarArquivo_ECF_Daruma(‘C:/Daruma.mf’, ‘C:/Privada/arquivo.key’);
//Assinando arquivo binário da MFD
iRetorno := eRSAAssinarArquivo_ECF_Daruma(‘C:/Daruma.mfd’, ‘C:/Privada/arquivo.key’);
C#
//Declarações
[DllImport("DarumaFrameWork.dll")]
[DllImport("DarumaFrameWork.dll")]
[DllImport("DarumaFrameWork.dll")]
[DllImport("DarumaFrameWork.dll")]
//Chamada de Métodos
//Geração do arquivo binário da MF
iiRetorno = rEfetuarDownloadMF_ECF_Daruma(“Daruma.mf”);
//Geração do arquivo binário da MFD
iRetorno = rEfetuarDownloadMFD_ECF_Daruma(“DATAM”, “01052013”, “10052013”, “Daruma.mfd”);
//Gerando arquivos binários da MF + MFD e arquivos de texto com a MF + MFD
iRetorno = rGerarRelatorio_ECF_Daruma(“MF+MFD”, “DATAM”, “01052013”, “10052013”);
//Assinando arquivo binário da MF
iRetorno = eRSAAssinarArquivo_ECF_Daruma(“C://Daruma.mf”, “C://Privada//arquivo.key”);
//Assinando arquivo binário da MFD
iRetorno = eRSAAssinarArquivo_ECF_Daruma(“C://Daruma.mfd”, “C://Privada//arquivo.key”);
Visual Basic 6
//Declarações Fiscais
Public Declare Function rEfetuarDownloadMF_ECF_Daruma Lib "DarumaFrameWork.dll" (ByVal pszNomeArquivo As String) As Integer
Public Declare Function rEfetuarDownloadMFD_ECF_Daruma Lib "DarumaFrameWork.dll" (ByVal pszTipo As String, ByVal pszInicial As String, ByVal pszFinal As String, ByVal pszNomeArquivo As String) As Integer
Public Declare Function rGerarRelatorio_ECF_Daruma Lib "DarumaFrameWork.dll" (ByVal pszRelatorio As String, ByVal pszTipo As String, ByVal pszInicial As String, ByVal pszFinal As String) As Integer
Public Declare Function eRSAAssinarArquivo_ECF_Daruma Lib "DarumaFrameWork.dll" (ByVal pszPathArquivo As String, ByVal pszPathChave As String) As Integer
//Chamada de Métodos
//Geração do arquivo binário da MF
iRetorno = rEfetuarDownloadMF_ECF_Daruma(“Daruma.mf”)
//Geração do arquivo binário da MFD
iRetorno = rEfetuarDownloadMFD_ECF_Daruma(“DATAM”, “01052013”, “10052013”, “Daruma.mfd”)
//Gerando arquivos binários da MF + MFD e arquivos de texto com a MF + MFD
iRetorno = rGerarRelatorio_ECF_Daruma(“MF+MFD”, “DATAM”, “01052013”, “10052013”)
//Assinando arquivo binário da MF
iRetorno = eRSAAssinarArquivo_ECF_Daruma(“C:/Daruma.mf”, “C:/Privada/arquivo.key”)
//Assinando arquivo binário da MFD
iRetorno = eRSAAssinarArquivo_ECF_Daruma(“C:/Daruma.mfd”, “C:/Privada/arquivo.key”)
Escovadores de bits, agora vocês já sabem como gerar arquivos binários, como assiná-los e como codificar tudo isso.
Sign up to our newsletter
Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.
Related articles
Indentificando consumidor no inicio ou no final do cupom fiscal.
Passagem de CPF em qualquer momento do cupom fiscal.
"Faltou 0,01 centavo no fechamento do cupom..."
Já ouvimos esta frase várias vezes, seja com impressora Daruma ou de outras marcas... Acabe de uma vez por todas com este problema!