Página 1 de 1

Win32Prn SetFont

Enviado: 23 Mai 2022 12:12
por jelias
Olá amigos,

Estou com uma dúvida quanto a configuração entre colchetes na linha abaixo:

oPrinter:SetFont("Courier New",10,{1,18},0,.F.,.F.)

Minha dúvida está no terceiro parâmetro do SETFONT que entre colchetes me permite configurar {altura da linha, largura da coluna}.
Este seria um parâmetros para configurar o espaçamento entre linhas e entre colunas?

Como utilizar corretamente este parâmetros para ajustar estes espaçamentos?

Saudações,

Júlio.

Win32Prn SetFont

Enviado: 23 Mai 2022 17:59
por Jairo Maia
jelias escreveu:Este seria um parâmetros para configurar o espaçamento entre linhas e entre colunas?
Não. Entre colchetes você define a compressão dos fontes, onde o segundo número é dividido pelo primeiro.

Para obtermos por exemplo a famosa compressão 17.5 cpp (caracteres por polegadas), colocariamos { 3, 52.5 }. Assim ficaria: 3/ 52.5 = 17,5 cpp. Não tem nenhuma relação com a altura da linha.

Win32Prn SetFont

Enviado: 23 Mai 2022 19:15
por jelias
Amigo Mário,

O meu problema é que preciso imprimir em um formulário pré-impresso pela montadora e encaixar todos os campos corretamente. Acontece, que, na última linha não está saindo corretamente, está cortando e somente aparece um traço.

Como poderia fazer para caber mais linhas por página?

Saudações,

Júlio

Win32Prn SetFont

Enviado: 23 Mai 2022 20:32
por Jairo Maia
Tente posicionar por tentativa e erro pegando a posição atual do cursor antes de imprimir a última linha e tentando ir subindo em pixels para acertar.

Antes de imprimir a última linha, tente algo como:

Código: Selecionar todos

oPrinter:newLine()

aLinCol := oPrinter:SetPos()

oPrinter:SetPos( aLincol[1] - 5, aLincol[2] )

oPrinter:textOut( "Seu Texto" )
Veja se vai funcionar...
jelias escreveu:Como poderia fazer para caber mais linhas por página?
Isso não sei. O número de linhas numa página é dinamizado pela altura da fonte (Height). Para você saber a altura de linha de acordo com a fonte usada use:

Código: Selecionar todos

nHeight := oPrinter:lineHeight

hb_Alert( Str( nHeight ) )