-
Notifications
You must be signed in to change notification settings - Fork 7
Configurações do Extrato (até a versão 0.2)
Vários detalhes da impressão dos extratos podem ser configurados. A aplicação poderá indicar onde o arquivo de configurações pode ser encontrado invocando a função satextrato.config.configurar()
antes de comandar a impressão:
from satextrato import config
config.configurar(arquivo='/caminho/para/arquivo.cfg')
Invocar a função
configurar()
uma segunda vez não terá qualquer efeito. Se a aplicação precisar recarregar as configurações invoque a funçãosatextrato.config.reconfigurar()
.
Se um caminho não for especificado o arquivo de configurações será gravado no diretório do usuário, normalmente em ~/.satcfe/extrato.cfg
. O formato do arquivo de configurações é simples, como em um arquivo INI, cujo conteúdo padrão é:
[cupom]
avancar_linhas = 7
cortar_documento = no
cortar_parcialmente = no
exibir_nome_consumidor = no
itens_modo_condensado = yes
[qrcode]
tamanho_modulo = 4
nivel_correcao = L
nome_aplicativo = De Olho Na Nota
mensagem = Consulte o QRCode pelo aplicativo %(nome_aplicativo)s, disponivel na AppStore (Apple) e PlayStore (Android)
mensagem_modo_condensado = yes
[code128]
ignorar = no
altura = 56
quebrar = yes
quebrar_partes = 14,14,14,2
truncar = yes
truncar_tamanho = 22
[rodape]
direita = http://git.io/vJRRk
esquerda = Extrato CF-e-SAT
Para saber quais valores usar dependendo do tipo de dados de cada opção, consulte a documentação do módulo ConfigParser
da biblioteca padrão do Python.
Note que algumas opções podem fazer com que o extrato não seja impresso em conformidade com a legislação. Algumas opções são úteis quando estiver em desenvolvimento. No entanto, tenha certeza de consultar o "Manual de Orientação" do SAT, item 4, "Leiaute de Impressão" antes de modificar certas opções de impressão, ou de permitir que o usuário as modifique, quando estiver imprimindo extratos SAT em produção.
Corpo do extrato e opções para finalização do cupom.
Opção | Tipo | Comentários |
---|---|---|
avancar_linhas |
int |
Número de linhas a avançar no final do documento, antes de guilhotinar (se for o caso). |
cortar_documento |
bool |
Indica se ao final do documento a guilhotina deverá ser acionada (se disponível). |
cortar_parcialmente |
bool |
Indica se o documento deverá ser apenas parcialmente guilhotinado. Esta opção terá efeito apenas se cortar_documento estiver ligada. |
exibir_nome_consumidor |
bool |
Indica se o nome do consumidor (se houver) deverá ser impresso no extrato. Normalmente, apenas o número do documento é impresso. |
itens_modo_condensado |
bool |
Indica se os itens deverão ser impressos em modo condensado. Senão, serão impressos no modo normal. |
O avaço de linhas será honrado mesmo que a opção para cortar o documento esteja ligada e a impressora possuir uma guilhotina. Isso é útil devido ao fato de que a posição do cabeçote de impressão (e isso depende de cada modelo de impressora) pode requerer que o documento avançe um pouco antes da guilhotina ser acionada, para evitar que o documento seja cortado com dados abaixo da guilhotina.
Código bidimensional QRCode
e a mensagem logo após, sobre o aplicativo para autenticação/validação do documento emitido. O código QR contém diversas informações à respeito do documento fiscal. Para detalhes, consulte a "Especificação de Requisitos" do SAT-CF-e e/ou o "Manual de Orientação".
Opção | Tipo | Comentários |
---|---|---|
tamanho_modulo |
int |
Tamanho do módulo QRCode. Consulte a documentação da PyESCPOS para mais detalhes sobre esta opção. |
nivel_correcao |
str |
Nível de correção de erros. Consulte a documentação da PyESCPOS para mais detalhes sobre esta opção. |
nome_aplicativo |
str |
Nome do aplicativo capaz de consultar a validade do documento fiscal através do QRCode impresso no extrato. Veja sobre isso mais adiante. |
mensagem |
str |
Mensagem a ser impressa logo após o QRCode. Veja sobre isso mais adiante. |
mensagem_modo_condensado |
bool |
Se a mensagem deverá ser impressa em modo condensado ou em modo normal de impressão. |
A mensagem a ser impressa logo após o QRCode normalmente irá instruir o consumidor a utilizar um certo aplicativo que, em tese, é capaz de verificar a autenticidade do documento fiscal que aquele extrato representa. O nome do aplicativo é configurado separado da mensagem e, embora a mensagem possa incluir o nome do aplicativo diretamente (hardcoded), você poderá optar por usar o recurso de interpolação para facilitar a configuração da mensagem, caso esta precise conter o nome do aplicativo, por exemplo:
nome_aplicativo = Super Validador
mensagem = Utilize o app %(nome_aplicativo)s para validar este extrato.
Mais sobre interpolação na documentação do módulo ConfigParser
da biblioteca padrão do Python.
Opções para impressão do código de barras Code128
. Este código contém os quarenta e quatro dígitos da "Chave de Acesso" que identifica o documento fiscal.
Opção | Tipo | Comentários |
---|---|---|
ignorar |
bool |
Ignora a impressão do código de barras. |
altura |
int |
Determina a altura das barras. Para saber o significado desse valor, consulte a documentação da PyESCPOS . |
quebrar |
bool |
Indica se o código de barras deverá ser quebrado em partes. Mais detalhes abaixo. |
quebrar_partes |
str |
Lista de tamanhos para quebra do código de barras. Mais detalhes abaixo. |
truncar |
bool |
Indica se o código de barras deverá ser truncado ao invés de ser quebrado. Um código truncado irá renderizar apenas um número especificado de dígitos da chave de acesso. |
truncar_tamanho |
int |
Se for para truncar, esta propriedade indica quantos digitos da chave de acesso serão considerados na impressão do código. |
As opções para truncar e quebrar o código de barras são mutuamente exclusivas e truncar possui precedência sobre quebrar. Veja os detalhes sobre estas opções, a seguir.
A motivação para quebrar o código de barras é devido a uma limitação em que certos modelos de impressoras podem não ser capazes de imprimir todos os 44 dígitos da chave de acesso em uma única linha. Assim, o código de 44 dígitos pode ser quebrado em partes para tornar a impressão possível. Por exemplo, para quebrar o código em duas partes, você poderá especificar quebrar_partes = 22,22
, ou seja, duas partes com 22 dígitos cada. Certas impressoras com bobinas muito estreitas podem ter uma quebra especificada em mais partes com menos dígitos em cada parte. A regra é que a lista em quebrar_partes
deverá especificar apenas números inteiros, pares, maiores que zero, cuja soma seja igual a 44.
Truncar é uma opção que lhe permitirá imprimir o código de barras contendo apenas parte dos dígitos da chave de acesso. Truncar tem precedência sobre a quebra, o que significa que, se a opção truncar
estiver ligada, então a opção para quebra será ignorada.
Opções para configuração do rodapé.
Opção | Tipo | Comentários |
---|---|---|
esquerda |
str |
Texto (curto) para ser exibido no rodapé do extrato, à esquerda da borda do cupom. |
direita |
str |
Texto (curto) para ser exibido no rodapé do extrato, à direita da borda do cupom. |