Blog

Imprimindo um documento fiscal (CF-e, NFC-e, NF-e)

Os seguintes documentos podem ser impressos:

  1. NF-e Retrato ou Paisagem;
  2. NFC-e (Cupom);
  3. CF-e (Cupom);
  4. CT-e (Retrato);
  5. DF-e;

Para imprimir um XML de um documento fiscal siga os passos abaixo:

  1. SEFAZ – Configurar Impressora(Impressora, Parâmetros):
    • Impressora – É o nome completo da impressora no Sistema Operacional como apareçe no Painel de Controle do Windows.
    • Os parâmetros de configuração server para definir opções extras, deve ser passado como um mapa:
      • IMPRESSORA_FABRICANTE – Nome do fabricante: BEMATECH, DARUMA, TANCA, ELGIN, RAW;
      • IMPRESSORA_NOME – Nome completo da impressora;
      • COLUNAS_NUM – 40, 48, 50, 60, 64 ou 80;
      • REMOVER_ACENTOS ´- Informar “S” para forçar o texto sem açentos ou cedilha.
      • PORTA – Porta de comunicação “USB”, “COMX”
        • A Bematech pode trabalhar via porta COM, USB ou Ethernet. No caso de porta com é necessário configurar a velocidade (BAUD_RATE), na porta USB isso não se faz necessário;
        • No caso de Ethernet informe o IP.
      • BAUD_RATE – 115200
      • MODELO – Modelo da impressora.
    • Observações: No caso da Bematech deve-se informar o modelo com o número indicativo conforme tabela do fabricante:
      • 7 – para o modelo MP-4200 TH;
  2. SEFAZ – Imprimir DANFE(XML, Logo, cIdToken, csc, Extras, Impressora)
    1. Caminho do XML do DANFE ou XML do DANFE (Letras);
    2. Caminho da Logo (Letras) – Logomarca da empresa a ser impressa no topo do cupom, podendo ser:
      • Caminho completo da imagem que será impressa no inicio do documento se o formato do arquivo for suportado e a impressora compatível;
      • Imagem em base64 nos padrões HTML “data:<MIMETYPE>;base64,BASE64_ENCODED_IMAGE>”. Exemplo: “data:image/png;base64,iVBORw0KGgoAAAAN…”.
    3. cIdToken (Letras) – Usado na NFC-e apenas;
    4. csc (Letras) – Usado na NFC-e apenas;
    5. Extras (Variante) – Mapa com dados adicionais;
      • TEXTO_TOPO – Inicio do documento;
      • TEXTO_CABECALHO;
      • DETALHE_TITULO – Cabeçalho do detalhe (titulo acima dos itens), substitui completamente o cabeçalho se for informado.
      • DETALHE_ITEM – Texto com formato dos itens a serem impressos. Seguindo a seguinte formatação:
        • <field size=”X” path=”caminho relativo no XML” dataType=”tipo” dataMask=”mascára“>.
        • O ‘size’ indica o número de caracteres do campo. Será completado à diretia se for texto, ou à esquerda nos demais casos.
        • A máscara segue os seguintes padrões de acordo com o formato: number = java.text.DecimalFormat, date = SimpleDateFormat, text, sem máscara.
        •  Exemplos:
          • <field path=”prod/cProd” size=”2″ dataType=”number” dataMask=”00″ />
          • <field path=”prod/xProd” size=”30″ dataType=”number” dataMask=”” />
          • <field path=”prod/vProd” size=”10″ dataType=”number” dataMask=”0,00″ />
          • <field path=”prod/uCom” size=”3″ dataType=”number” dataMask=”000″ />

OBS: O suporte não cobre qualquer tipo de personalização, suporte referente a personalização da impressão deve ser contratado à parte.

      • TEXTO_DETALHE_RESUMO – Substitui o texto de resumo (abaixo) do detalhe;
      • TEXTO_FORMAS_PAGAMENTO – Substitui as formas de pagamento;
      • TEXTO_INTERESSE_CONTRIBUINTE – Substitui a mensagem de contribuinte;
      • TEXTO_MENSAGEM_FISCAL – Substitui a mensagem fiscal;
      • TEXTO_DADOS_CONSUMIDOR – Substitui os dados do consumidor;
      • TEXTO_QR_CODE – Substitui o QrCode;
      • RODAPE_TEXTO – Texto livre a ser impresso ao final do documento;
      • MODO_COMPACTO – Se informado com “S” força a geração de um documento mais compacto, com menos espaços em branco;
      • FORCAR_MODO_GRAFICO – Se infromado com “S” força a impressão em modo gráfico;
      • IMPRESSORA_FONTE_NOME – O nome de uma fonte monoespaçada, sendo as seguintes suportadas: “Courier”, “Courier New” e “Lucida Console” (Padrão);
      • LARGURA_MM – Largura do papel em milimetros (inteiro), padrão 80 (oitenta);
      • MARGEM_ESQUERDA_MM – (Inteiro) Margem esquerda em milimetros, padrão 0 (zero);
      • IMPRESSORA_PPM (Inteiro) – Pontos por milimetro (padrão 8).
    1. Impressora (Variante) (Deixe em branco para usar a última configurada).

Instalando impressoras

Algumas impressoras necessitam ser instaladas e/ou utilizarem bibliotecas de comunicação específicas

Bematech

Para uso das funções nativas das impressoras Bematech você deve copiar os arquivos da pasta de 32 ou 64 bits de acordo com a versão do Java, independente da versão do Windows.

  • \IMPRESSORAS\Java x86\Maker.Commons\   (Se for Java 32 bits)
  • \IMPRESSORAS\Java x64\Maker.Commons\   (Se for Java 64 bits)

Ao determinar a pasta correta faça o seguinte:

  • No Webrun (camada servidor):
    • Copie os arquivos para a pasta: systems\Maker.Commons
    • Reinicie o Webrun, acesse e reinicie novamente.
  • No Agente (camada cliente): Copie os arquivos para a pasta: \apis\sefaz

IMPORTANTE: Algumas versões do Tomcat mais modernas podem adicionar escapes (normalmente “%20”) aos espaços no caminho do arquivo impossibilitando a carga das DLLs. Neste caso crie uma pasta C:\L2MAKER\ e coloque as pastas mp2032 e mp2064 dentro dela com os arquivos, ficando assim: C:\L2MAKER\mp2064\

Daruma

A Daruma tem um framework próprio que deve ser instalado no computador do servidor ou no agente. No caso de servidor as DLLs também devem ser instalados de forma análoga ao que acontece com a Bematech.

  • IMPRESSORA_FABRICANTE = “DARUMA”
  • PORTA =”USB”
  • VELOCIDADE = “56000”
  • TIPO = “TERMICA”

Adicionar os arquivos na pasta da SEFAZ:

  • DarumaFrameworkJNA.jar
  • Copie as DLLs 32 bits para a pasta C:\Windows\SysWOW64\

Leave a comment