OBJETO PRINTER

REINALDOALVES 06/12/2011 19:21:06
#390737
Ola Pessoal

Minha duvida é :

Fiz um programa mais estou com dificuldades na parte de ajustar o texto na folha

Como vcs ja devem ter reparado na imagem acima , o programa imprimi o q estiver no Text1.Text quando se clica no botão imprimir
mais na folha o texto do text1 não se ajusta automaticamente na folha

Presciso de saber o comando em que o texto não ultrapasse a largura da folha pelo objeto printer
de preferencia o mais simples possivel ou com comentarios para explicar o codigo
Obrigado
DIEGO.SLIVER 06/12/2011 20:58:22
#390745
Cara, to sem o VB6 instalado, mas vou te dar a ideia ai voce tenta implementar

TAMANHO = LEN(TXT)

LARGURA = TAMANHA DE CARACTERES DA LINHA

CONT =0

FOR CONT = 0 TO TAMANHO STEP LARGURA
PRINT.PRINTER mid(txt, cont, largura)
NEXT CONT

mais ou menos por ai tenta ai

REINALDOALVES 07/12/2011 23:38:51
#390819
NÃO DEU CERTO :/

PRESCISARIA DE UMA MANEIRA PARA DIZER :

OQ NAUM COUBER EM CIMA PASSA PRA LINHA DE BAIXO
MARCELO.TREZE 08/12/2011 09:53:58
#390829
Na realidade o caminho é seste mesmo exposto pelo colega diego, mas veja com esta alteração

Dim TamTexto As Integer
Dim LargLinha As Integer
Dim Resto As Integer

TamTexto = Len(Text1.Text)
LargLinha = 50[txt-color=#007100] [ô] aqui ajuste até uma Largura ideal para impressão[/txt-color]
Resto = TamTexto Mod LargLinha [txt-color=#007100][ô] é o resto da divisão do tamanho do texto com a largura da linha[/txt-color]
For F = 1 To (TamTexto - Resto) Step LargLinha
Printer.Print Mid(Text1.Text, F, LargLinha)
Next F
Printer.Print Mid(Text1.Text, (TamTexto - resto), Resto)
Printer.EndDoc


bom, acredito que funcione ou pelo mens chegará perto, pois não testei.

EDERMIR 10/12/2011 19:42:59
#391057
Vou aperfeiçoar.

Quando imprimimos, a quantidade de caracteres varia conforme o TAMANHO da fonte. Ainda mais de a fonte não possuir caracteres com o [Ô]mesmo tamanho[Ô].

Para não ultrapassar a margem DIREITA do papel, crio uma string com a linha e testo o tamanho da linha conforme os caracteres.

Wpalavras = split(text1.text,[Ô] [Ô])
Wlinha = [Ô][Ô]
for Wx = 0 to ubound(Wpalavras)
Wtamlinha = printer.textwidth(Wlinha)
if Wtamlinha > 9000 then [ô]margem direita do meu relatório
printer.print Wlinha
Wlinha = [Ô][Ô]
endif
Wlinha = Wlinha + Wpalavra[Wx] + [Ô] [Ô]
next Wx
if len(Wlinha) <> 0 then
printer.print Wlinha
endif
Tópico encerrado , respostas não são mais permitidas