Árvore de páginas

Melhoria para Imprimir DANFE Diretamente na Impressora - NFe (Nota Fiscal Eletrônica)

Características do Requisito

Linha de Produto:

RMS

Segmento:

VAREJO

Módulo:

Conector

Rotina:

Rotina

Nome Técnico

Emissão do DANFE.

Impressão do DANFE.

Rotina(s) envolvida(s)

Nome Técnico

Geração de XML da NFe.

Emissão de Nota Fiscal Eletrônica (NFe).

Transmissão de XML da NFe para Ambiente Nacional.

Transmissão de Nota Fiscal Eletrônica (NFe).
Consulta Retorno da NFe no Ambiente Nacional.Transmissão de Nota Fiscal Eletrônica (NFe).
Impressão do DANFE (Documento Auxiliar da Nota Fiscal Eletrônica).Transmissão de Nota Fiscal Eletrônica (NFe).

Cadastros Iniciais:

Deve existir 1 Nota Fiscal Eletrônica emitida e autorizada na Sefaz e o parâmetro NFEIMPRAS = 'RAW'.

Parâmetro(s):

NFEIMPRAS

Tickets relacionados

1114819/MRMS-10563

País(es):

BRAZIL

Banco(s) de Dados:

ORACLE

Tabelas Utilizadas:

VW50_NFE, NFE_CONTROLE

Descrição

Este documento tem como objetivo evidenciar o ajuste realizado no Conector e Service, para imprimir DANFE no novo modo de impressão, chamado 'RAW'.

Esta implementação está disponível a partir da versão 2.1.10.95.

Não foram alterados campos na geração do DANFE, contudo, foi criado uma nova forma de envio do DANFE em formato "*.PDF" para as impressoras.

Esta melhoria está disponível a partir da versão 2.1.10.95 do Conector.  

 

Procedimento para Implantação

É necessário atualizar a versão do Runtime do Crystal Reports para a utilização da NFE. O cliente deve baixar o instalador do runtime e instalá-lo.

O endereço de download do Crystal Reports Runtime Suport Pack 13 (v.13.0.13.1597) é :

 

Compilar os objetos de banco de dados constantes no pacote (*.PLB).


  1. NFE_SEQUENCE.PLB
  2. VW01_FILIAL.PLB
  3. VW02_USUARIOS.PLB
  4. VW03_NFENTRADA.PLB
  5. VW04_CCEVENTOS.PLB
  6. VW05_NFEXML.PLB
  7. VW50_NFE.PLB
  8. VW50_NFE_AUTORIZADOS.PLB
  9. VW51_NFE_REF.PLB
  10. VW52_NFE_DUP.PLB
  11. VW54_NFE_VOL.PLB
  12. VW60_DET.PLB
  13. VW61_DET_DI.PLB
  14. VW62_DET_DI_ADI.PLB
  15. VW63_DET_MED.PLB
  16. VW65_DET_ICM.PLB
  17. VW66_DET_IPI.PLB
  18. VW68_DET_PIS.PLB
  19. VW69_DET_COF.PLB
  20. VW67_DET_II.PLB
  21. VW71_DET_COMB.PLB
  22. VW70_DET_ICM_DES.PLB
  23. NFE_CONTROLE.PLB
  24. NFE_CONTROLE_SAIDA.PLB
  25. NFE_XML.PLB
  26. NFE_XML_SAIDA.PLB
  27. NFP01_LISTA.PLB
  28. NFE71_IMPR_LOCAL.PLB
  29. F_SERVIDOR_NFE.PLB
  30. PC_FIS_NFE.PLB

 

*** ATENÇÃO ***

Estes objetos de banco de dados constantes no pacote (*.PLB) estão relacionados ao RMS Retail e fazem parte do processo de Emissão da Nota Fiscal Eletrônica (NFe).

  1. AG1PANFE.PLB
  2. AG1LGNFE.PLB
  3. AA1DIVOL.PLB
  4. AA1DIIMP.PLB
  5. AG1NFNET.PLB
  6. AG1FENFS.PLB
  7. AA1CADCV.PLB
  8. AA1CPAIS.PLB
  9. AG1LGNFI.PLB
  10. AA1NFINU.PLB
  11. AG3PVECP.PLB
  12. AA4CENPG.PLB
  13. AG1MSGNF.PLB
  14. AA1DIFCI.PLB
  15. AA1DITEM.PLB
  16. AG1NFERF.PLB
  17. AA1LINHP.PLB
  18. AA1LINHF.PLB
  19. AA3MITEM.PLB
  20. AA4MITEM.PLB
  21. WG1GNOTA.PLB
  22. DEV_NF_EMITIDA.PLB
  23. F_EXTENSO_MONETARIO.PLB
  24. F_VALIDA_CPF_CNPJ.PLB
  25. PROC_NFE_CANCELAMENTO.PLB
  26. PROC_VGLDIMPO.PLB
  27. PC_CAD_PRODUTO.PLB
  28. PC_DST_QUEBRASOBRA.PLB
  29. PC_CAL_GNTA.PLB

 

*** ATENÇÃO ***

Estes objetos constantes no pacote (*.DLL) estão relacionados ao RMS Retail e fazem parte do processo de Emissão da Nota Fiscal Eletrônica (NFe).

  1. VGFNOTAE.DLL
  2. VGFPANFE.DLL
  3. VGFMONIT.DLL
  4. VABUPAIS.DLL
  5. VGLNFINU.DLL
  6. VGLDIMPO.DLL
  7. VGFRNOTA.DLL
  8. VGFMSGNF.DLL
  9. VABUAITE.DLL

 

  1. No RMS Retail, acesse Mercadorias/Cadastro/Tabelas e Parâmetros/Parâmetros (Programa VABUPARA):

Cadastro

Parâmetros

Código

030

 Acesso NFEIMPRAS

Conteúdo

Informar o valor 'RAW'

 

 *** ATENÇÃO ***

Se não for informado este parâmetro, o Conector irá emitir o DANFE normalmente, no modo de impressão normal, ou seja, o processo de impressão será gerenciado pelo software da impressora.

 

Procedimento para Configuração

 

O Procedimento de cadastro / configuração de parâmetros pode ser realizado tanto via RMS Retail quanto via Conector (NFe). Favor escolher uma das opções abaixo:

 

1 - No RMS Retail, acesse Mercadorias/Cadastro/Tabelas e Parâmetros/Parâmetros (Programa VABUPARA). Crie/configure o parâmetro a seguir:

Cadastro

Parâmetros

Código

030

 AcessoNFEIMPRAS

Conteúdo

Informar o valor 'RAW'

 

2 - No Conector (NFe), acesse Configuração / Parâmetros / Manutenção do Cadastro de Parâmetros Globais. Crie/configure o parâmetro a seguir:

Se não for informado este parâmetro, o Conector irá emitir o DANFE normalmente, no modo de impressão normal, ou seja, o processo de impressão será gerenciado pelo software da impressora. *** ATENÇÃO ***

Procedimento para Utilização

Para utilizar esta melhoria, é necessário cadastrar o parâmetro NFEIMPRAS = 'RAW' e observar os detalhes de configuração das impressoras a serem utilizadas no processo de impressão do DANFE.

Para imprimir o DANFE (Documento Auxiliar da Nota Fiscal Eletrônica) através do modo 'RAW' de impressão, é necessário observar os seguintes detalhes:

A impressora utilizada para demonstrar o modo de impressão 'RAW' é gerenciada via software, e o IP '10.71.2.29' da impressora não é o mesmo IP/PORTA utilizado para impressão, de fato, pelo gerenciamento automático do software da impressora, o IP é '10.71.10.11'. A sequência a seguir ilustra as configurações da impressora 'SSACloudPrinter'.

 

*** ATENÇÃO ***

Observe que o software da impressora gerencia automaticamente as portas por onde serão impressos os documentos na rede.

*** ATENÇÃO ***

Observe os detalhes do pool de impressão, como por exemplo: 

Colocar documentos no spool para imprimir mais rapidamente [DEFAULT]

Iniciar impressão depois que a última página estiver no spool [DEFAULT]

Iniciar a impressão imediatamente

Imprimir diretamente na impressora *** ATENÇÃO ***

 [ ] Manter documentos impressos.

*** ATENÇÃO *** O Usuário administrador deve todas as permissões para que o processo de impressão automática ocorra sem maiores problemas.

*** ATENÇÃO *** Versão do software que gerencia a impressora, utilizado para demonstrar o problema ao tentar imprimir através de impressoras gerenciadas por software.

Para demonstrar o funcionamento do modo de impressão 'RAW', utilizamos a impressora 'SSACloudPrinter', que  é gerenciada via software, e o IP '10.71.2.29' da impressora não é o mesmo IP/PORTA utilizado para impressão, de fato, pelo gerenciamento automático do software da impressora, o IP utilizado no instante da impressão é '10.71.10.11'. A sequência a seguir ilustra as configurações de uma impressora virtual, que utiliza o IP '10.71.10.11' e a porta '9001', que é padrão do modo RAW.

 

*** ATENÇÃO ***

Observe os detalhes do pool de impressão, como por exemplo: 

Colocar documentos no spool para imprimir mais rapidamente [DEFAULT]

Iniciar impressão depois que a última página estiver no spool [DEFAULT]

Iniciar a impressão imediatamente

Imprimir diretamente na impressora *** ATENÇÃO ***

 [ ] Manter documentos impressos.

 O modo 'RAW' envia os dados diretamente para a impressora, por esta razão, é necessário conhecer o IP e a PORTA que a impressora utiliza, para que o processo de impressão funcione corretamente.

Imprimir diretamente na impressora *** ATENÇÃO ***

Para que a impressão seja realizada diretamente na impressora, é necessário configurar o IP e PORTA.

*** ATENÇÃO *** Se não for possível detectar automaticamente a porta, configurar manualmente, através da tela abaixo:

 O IP e PORTA [DEFAULT] da impressora 'SSACloudPrinter' é: '10.71.2.29'

Contudo, no próprio display da impressora, o IP verdadeiro utilizado no processo automático de impressão é: '10.71.10.11'. O software da impressora redireciona os documentos para IP's e portas de forma automática, a depender das configurações realizadas pelo administrador do sistema. Neste exemplo, não foi possível alterar estas configurações, por esta razão, foi utilizado uma impressora virtual, que utiliza o mesmo IP da impressora que apresentou problemas na impressão.

*** ATENÇÃO ***

 A seguir, é ilustrado a emissão, autorização e impressão de 3 (três) notas fiscais eletrônicas - NF-e's. no modo automático 'RAW', utilizando o processo automático de impressão via Service NFe.

*** ATENÇÃO ***

 *** ATENÇÃO ***

Esta é a forma de monitorar a impressão via modo 'RAW'. Deixe o painel de documentos a serem impressos da impressora virtual aberto, que no instante em que o Service NFe envia o documento, diretamente para a impressora, o documento aparece na tela, muito rapidamente, mas dá tempo suficiente de perceber que os documentos estão sendo enviados diretamente para a impressora.

*** ATENÇÃO ***

 *** ATENÇÃO ***

 Documentos impressos, observe o campo "DANFE" no grid:

 *** ATENÇÃO ***

 *** ATENÇÃO ***

Registro do Log da impressão automática, que foi realizada pelo Service NFe, nota 6968:

 

19:42:23:923 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: GERANDO PDF (MemoryStream) 35170705320808000170550010000069681000000850-nfe.pdf 19:42:28:728 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: GERANDO IMPRESSAO... wViaDanfe : 1 19:42:28:732 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: ANTES  - RawPrinterHelper.SendFileToPrinter() 19:42:28:737 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: START[] 19:42:28:742 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: BinaryReader br = new BinaryReader(fileStream) 19:42:28:746 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Byte[] bytes = new Byte[fileStream.Length] 19:42:28:751 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: IntPtr pUnmanagedBytes = new IntPtr(0) 19:42:28:754 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: int nLength 19:42:28:758 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: nLength = Convert.ToInt32(fileStream.Length) 19:42:28:762 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bytes = br.ReadBytes(nLength) 19:42:28:765 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: pUnmanagedBytes = Marshal.AllocCoTaskMem(nLength) 19:42:28:769 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Marshal.Copy(bytes, 0, pUnmanagedBytes, nLength) 19:42:28:774 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: START[] 19:42:28:778 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: di.pDocName..: Print RAW 35170705320808000170550010000069681000000850-nfe.pdf 19:42:28:782 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: di.pDataType.: RAW 19:42:28:785 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: szPrinterName: CutePDF Writer 19:42:28:790 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: sNome........: 35170705320808000170550010000069681000000850-nfe.pdf 19:42:28:795 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero)) 19:42:28:807 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (StartDocPrinter(hPrinter, 1, di)) 19:42:28:811 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (StartPagePrinter(hPrinter)) 19:42:28:815 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: bSuccess = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten) 19:42:28:818 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: bSuccess: True 19:42:28:823 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: EndPagePrinter(hPrinter) 19:42:28:840 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: EndDocPrinter(hPrinter) 19:42:28:846 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: ClosePrinter(hPrinter) 19:42:28:852 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: return bSuccess 19:42:28:858 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bSuccess = SendBytesToPrinter(szPrinterName, sNome, pUnmanagedBytes, nLength) 19:42:28:862 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bSuccess: True 19:42:28:865 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Marshal.FreeCoTaskMem(pUnmanagedBytes) 19:42:28:874 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream.Close() 19:42:28:877 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream.Dispose() 19:42:28:882 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream = null 19:42:28:885 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: return bSuccess 19:42:28:889 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: FINISH[0] 19:42:28:893 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: DEPOIS - RawPrinterHelper.SendFileToPrinter() 19:42:28:897 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: DEPOIS - bSucesso: True 19:42:28:901 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: IMPRESSAO BEM SUCEDIDA!

 

 *** ATENÇÃO ***

Registro do Log da impressão automática, que foi realizada pelo Service NFe, nota 6969:

 

19:42:29:829 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: GERANDO PDF (MemoryStream) 35170705320808000170550010000069691000000865-nfe.pdf 19:42:33:879 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: GERANDO IMPRESSAO... wViaDanfe : 1 19:42:33:882 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: ANTES  - RawPrinterHelper.SendFileToPrinter() 19:42:33:886 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: START[] 19:42:33:890 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: BinaryReader br = new BinaryReader(fileStream) 19:42:33:894 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Byte[] bytes = new Byte[fileStream.Length] 19:42:33:897 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: IntPtr pUnmanagedBytes = new IntPtr(0) 19:42:33:901 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: int nLength 19:42:33:905 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: nLength = Convert.ToInt32(fileStream.Length) 19:42:33:911 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bytes = br.ReadBytes(nLength) 19:42:33:915 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: pUnmanagedBytes = Marshal.AllocCoTaskMem(nLength) 19:42:33:919 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Marshal.Copy(bytes, 0, pUnmanagedBytes, nLength) 19:42:33:924 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: START[] 19:42:33:928 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: di.pDocName..: Print RAW 35170705320808000170550010000069691000000865-nfe.pdf 19:42:33:932 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: di.pDataType.: RAW 19:42:33:937 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: szPrinterName: CutePDF Writer 19:42:33:941 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: sNome........: 35170705320808000170550010000069691000000865-nfe.pdf 19:42:33:945 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero)) 19:42:33:957 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (StartDocPrinter(hPrinter, 1, di)) 19:42:33:961 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (StartPagePrinter(hPrinter)) 19:42:33:965 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: bSuccess = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten) 19:42:33:969 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: bSuccess: True 19:42:33:974 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: EndPagePrinter(hPrinter) 19:42:33:989 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: EndDocPrinter(hPrinter) 19:42:33:995 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: ClosePrinter(hPrinter) 19:42:33:998 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: return bSuccess 19:42:34:200 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bSuccess = SendBytesToPrinter(szPrinterName, sNome, pUnmanagedBytes, nLength) 19:42:34:600 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bSuccess: True 19:42:34:900 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Marshal.FreeCoTaskMem(pUnmanagedBytes) 19:42:34:160 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream.Close() 19:42:34:190 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream.Dispose() 19:42:34:230 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream = null 19:42:34:270 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: return bSuccess 19:42:34:300 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: FINISH[0] 19:42:34:340 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: DEPOIS - RawPrinterHelper.SendFileToPrinter() 19:42:34:380 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: DEPOIS - bSucesso: True 19:42:34:420 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: IMPRESSAO BEM SUCEDIDA!                      

 

 *** ATENÇÃO ***

Registro do Log da impressão automática, que foi realizada pelo Service NFe, nota 6970:

 

19:42:35:330 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: GERANDO PDF (MemoryStream) 35170705320808000170550010000069701000000874-nfe.pdf 19:42:39:359 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: GERANDO IMPRESSAO... wViaDanfe : 1 19:42:39:362 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: ANTES  - RawPrinterHelper.SendFileToPrinter() 19:42:39:366 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: START[] 19:42:39:370 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: BinaryReader br = new BinaryReader(fileStream) 19:42:39:375 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Byte[] bytes = new Byte[fileStream.Length] 19:42:39:379 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: IntPtr pUnmanagedBytes = new IntPtr(0) 19:42:39:383 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: int nLength 19:42:39:387 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: nLength = Convert.ToInt32(fileStream.Length) 19:42:39:390 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bytes = br.ReadBytes(nLength) 19:42:39:394 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: pUnmanagedBytes = Marshal.AllocCoTaskMem(nLength) 19:42:39:398 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Marshal.Copy(bytes, 0, pUnmanagedBytes, nLength) 19:42:39:402 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: START[] 19:42:39:405 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: di.pDocName..: Print RAW 35170705320808000170550010000069701000000874-nfe.pdf 19:42:39:409 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: di.pDataType.: RAW 19:42:39:413 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: szPrinterName: CutePDF Writer 19:42:39:417 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: sNome........: 35170705320808000170550010000069701000000874-nfe.pdf 19:42:39:421 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (OpenPrinter(szPrinterName.Normalize(), out hPrinter, IntPtr.Zero)) 19:42:39:433 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (StartDocPrinter(hPrinter, 1, di)) 19:42:39:437 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: if (StartPagePrinter(hPrinter)) 19:42:39:441 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: bSuccess = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten) 19:42:39:444 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: bSuccess: True 19:42:39:448 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: EndPagePrinter(hPrinter) 19:42:39:462 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: EndDocPrinter(hPrinter) 19:42:39:468 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: ClosePrinter(hPrinter) 19:42:39:472 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendBytesToPrinter            Routine: PrintToPrinter                Message: return bSuccess 19:42:39:476 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bSuccess = SendBytesToPrinter(szPrinterName, sNome, pUnmanagedBytes, nLength) 19:42:39:480 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: bSuccess: True 19:42:39:484 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: Marshal.FreeCoTaskMem(pUnmanagedBytes) 19:42:39:489 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream.Close() 19:42:39:493 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream.Dispose() 19:42:39:496 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: fileStream = null 19:42:39:501 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: return bSuccess 19:42:39:504 == Class: NFe.Business.Classes.RawPrinterHelperMethod: SendStreamToPrinter           Routine: PrintToPrinter                Message: FINISH[0] 19:42:39:508 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: DEPOIS - RawPrinterHelper.SendFileToPrinter() 19:42:39:512 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: DEPOIS - bSucesso: True 19:42:39:515 == Class: NFe.Business.Classes.ImprimirDanfeMethod: imprimeDanfeRAW               Routine: imprimeDanfe                  Message: IMPRESSAO BEM SUCEDIDA!

 

Informações Técnicas

Tabelas Utilizadas

VW50_NFE - Tabela Principal do Projeto Nota Fiscal Eletrônica, responsável por armazenar as informações relacionadas à Nota Fiscal Eletrônica (NFe).

NFE_CONTROLE - Tabela responsável por armazenar as informações relacionadas ao Status da Nota Fiscal Eletrônica (NFe).

Funções Envolvidas

Nota Fiscal Eletrônica de Entrada / Saída.

Impressão do DANFE (Documento Auxiliar da Nota Fiscal Eletrônica).

Transmissão de XML da Nota Fiscal Eletrônica.

Sistemas Operacionais

Windows®/Linux®