fix(NFCe): altera cálculo do tamanho da página única para utilizar UnlimitedHeight invés de calcular o tamanho de cada componente#1707
Conversation
…limitedHeight invés de calcular o tamanho de cada componente
ProblemaNo modo de impressão em página única do DANFE NFC-e, o final do cupom (QR Code, protocolo e rodapé) saía cortado. Nesse modo, o script do relatório soma a altura de todas as bandas impressas para definir a altura da página. Investigação
Causa da limitação na impressãoO spooler do Windows trabalha com tipos de papel de dimensões fixas: não existe tipo de papel de 70/80mm com altura ilimitada, e o formato de impressão não foi projetado para papel contínuo — página maior que o limite do tipo de papel tem o excedente descartado na impressão. Papel contínuo real só é possível com impressão direta em linguagem de impressora (ESC/POS), fora do escopo deste relatório. Historicamente, o modo "página única" foi criado para impressoras térmicas antigas que só faziam corte automático no fim da página. Impressoras atuais permitem corte no fim do documento, o que torna o modo desnecessário na maioria dos cenários. Solução adotada e limitação conhecida
|
Alterado o cálculo do tamanho da página única para utilizar
UnlimitedHeightem vez de somar o tamanho de cada componente. Isso evita erros de cálculo causados por propriedades comoCanGroweCanShrink, que podem alterar o tamanho do conteúdo depois que a página já foi dimensionada, cortando e sobrepondo informações quando configurado para imprimir em página única.Com
UnlimitedHeight, o tamanho da página é definido pelo próprio motor do relatório ao final da geração: exatamente a altura do conteúdo já renderizado (com CanGrow/CanShrink aplicados), mais as margens superior e inferior.Fonte: How to use “UnlimitedHeight” and “UnlimitedWidth” properties of a report page