Boa tarde pessoal!
Temos uma rotina de impressão de rótulos em formato A3 que usa a classe FwMsPrinter.
Criamos uma tabela que contém uma matriz de impressão, com campos, tamanho de fonte, posição e etc.
Quando um dado for maior que o espaço reservado para impressão do mesmo, nossa ideia é que o sistema vá diminuindo a fonte até que a informação caiba, sem perda de dados.
Pelo GetTextWidth consigo saber o tamanho que um texto vai ocupar de acordo com a fonte passada.
Porém, como calcular corretamente a largura do espaço para saber se o texto cabe (na linha, não podemos quebrar em mais de uma linha a informação) ou precisa ter sua fonte reduzida? Temos a largura dos componentes em centímetros.
Por exemplo: tenho um espaço de 15 centímetros para imprimir a informação "ESTADOS UNIDOS / UNITED STATES" iniciando a fonte em arial de 32:
Alguém tem alguma dica para trabalhar com esses valores?
Muito obrigada!
Boa tarde Mary, o problema seria que não foi possível imprimir o valor completo "ESTADOS UNIDOS / UNITED STATES"? Consegue colocar um POC dessa situação?
— Daniel Mendes 20 de Mar de 2020Bom dia Daniel!
Na realidade, o problema é como o Tiago comentou abaixo: estou tentando analisar o quanto determinada fonte vai ocupar para impressão e o quanto tenho de espaço disponível para saber se imprimo com a fonte pré-determinada ou vou diminuindo a fonte até caber.. rs
— Mary Christina Hergert 23 de Mar de 2020