IMPRIMIR TEXTO
Olá galera vbmania blz? Eu tenho um txtPublica com propriedade multiline=True como faço pra imprimir o texto digitado com o metodo printer? eu usei Printer.Print Tab(10); txtPublica.text so que imprime a tabulação na primeira linha eu queria tabulação 10 em todas as linha se alguem puder me ajudar eu agradeço
Posta o código que usou, e se possivel uma imagem do texbox, para sabremos o que realmente vc deseja
Veja ai o exemplo
Cara, o problema é que o texto é corrido. O textbox não coloca [Ô]chr(13)[Ô] ou qualquer outro caracter delimitando a linha. A quebra é meramente visual. Você vai ter que fazer algum código para quebrar, colocando chr(13).
Usa a rotina abaixo q funciona certinho
Printer.Print WordWrap$(txtconteudo.text, 55, 0.5)
Private Function WordWrap$(St$, Length, Pos)
[ô]- Onde St$ - textbox
[ô]- Onde Length - Tamanho da linha a ser impressa
[ô]- Onde Pos - Posição da CurrentX
[ô]- Alterada por Cássio Junqueira Franco Fabbri em 11/11/1998
Length = Length + 1
St$ = Trim$(St$)
Cr$ = Chr$(13)
Crlf$ = Chr$(13) & Chr$(10)
Do
l = Len(Nextline$)
s = InStr(St$, [Ô] [Ô])
c = InStr(St$, Cr$)
If c Then
If l + c <= Length Then
Printer.CurrentX = Pos
Printer.Print Left$(St$, c - 1)
Nextline$ = [Ô][Ô]
St$ = Mid$(St$, c + 2)
GoTo LoopHere
End If
End If
If s Then
If l + s <= Length Then
DoneOnce = True
Nextline$ = Nextline$ & Left$(St$, s)
St$ = Mid$(St$, s + 1)
ElseIf s > Length Then
text$ = text$ & Crlf$ & Left$(St$, Length)
St$ = Mid$(St$, Length + 1)
Else
Printer.CurrentX = Pos
Printer.Print Nextline$
Nextline$ = [Ô][Ô]
End If
Else
If l Then
If l + Len(St$) > Length Then
text$ = text$ & Nextline$ & Crlf$ & St$ & Crlf$
Else
text$ = text$ & Nextline$ & St$ & Crlf$
End If
Else
Printer.CurrentX = Pos
Printer.Print St$
End If
Exit Do
End If
LoopHere:
Loop
Printer.CurrentX = Pos
Printer.Print text$
End Function
Printer.Print WordWrap$(txtconteudo.text, 55, 0.5)
Private Function WordWrap$(St$, Length, Pos)
[ô]- Onde St$ - textbox
[ô]- Onde Length - Tamanho da linha a ser impressa
[ô]- Onde Pos - Posição da CurrentX
[ô]- Alterada por Cássio Junqueira Franco Fabbri em 11/11/1998
Length = Length + 1
St$ = Trim$(St$)
Cr$ = Chr$(13)
Crlf$ = Chr$(13) & Chr$(10)
Do
l = Len(Nextline$)
s = InStr(St$, [Ô] [Ô])
c = InStr(St$, Cr$)
If c Then
If l + c <= Length Then
Printer.CurrentX = Pos
Printer.Print Left$(St$, c - 1)
Nextline$ = [Ô][Ô]
St$ = Mid$(St$, c + 2)
GoTo LoopHere
End If
End If
If s Then
If l + s <= Length Then
DoneOnce = True
Nextline$ = Nextline$ & Left$(St$, s)
St$ = Mid$(St$, s + 1)
ElseIf s > Length Then
text$ = text$ & Crlf$ & Left$(St$, Length)
St$ = Mid$(St$, Length + 1)
Else
Printer.CurrentX = Pos
Printer.Print Nextline$
Nextline$ = [Ô][Ô]
End If
Else
If l Then
If l + Len(St$) > Length Then
text$ = text$ & Nextline$ & Crlf$ & St$ & Crlf$
Else
text$ = text$ & Nextline$ & St$ & Crlf$
End If
Else
Printer.CurrentX = Pos
Printer.Print St$
End If
Exit Do
End If
LoopHere:
Loop
Printer.CurrentX = Pos
Printer.Print text$
End Function
Uma boa saÃda, seria você utilizar um DATAREPORT com um RECORDSET DESCONECTADO alimentando o gerador, e no final chamar o mesmo com a linha abaixo:
A liberdade de formatação é muito maior do que o objeto PRINTER, pelo menos eu acho
E o resultado dá um [Ô]toque[Ô] profissional.
DataReport1.PrintReport, , rptRangeAllPages
A liberdade de formatação é muito maior do que o objeto PRINTER, pelo menos eu acho
E o resultado dá um [Ô]toque[Ô] profissional.
quem pode me mandar um exemplo. Obrigado ! Desde ja Agradeço a todos que postaram
sem datareport
Tópico encerrado , respostas não são mais permitidas