CUPOM DE EMPRESTIMOS
eu utilizei o método printer.print mas está saindo tudo fora do lugar...
os campos que quero utilizar são estes:
[ô]Para Cabeçalho do cupom
Nome da instituição = txtInstituição.text
Nome da empresa = txtEmpresa.text
Site = txtSiteEmpresa.text
[ô]Dados do empréstimo
Data = DataAtual
Hora = HoraAtual
CódAluno = txtCodAluno.text
Aluno = txtAluno.text
Serie/Sala = txtSerie.text
CódLivro = txtCodLivro.text
Livro = txtLivro.text
Devolução = txtDevolucao.text
Frase = txtFrase.text [ô]Qualquer frase que o usuário queira colocar no rodapé do comprovante com fonte 8.
Já vi exemplos no site aqui que mostram em forms em tempo real, porém não imprimem, e não tem a mesma dimensão em impressão... por isso gostaria que me ajudassem já no formato para impressão.
Agradeço a ajuda;
vc quer imprimir exatamente como postou???
ou é um formulário pre impresso???
Por exemplo: http://www.vbmania.com.br/pages/index.php?varModulo=Detalhe&varID=654
Citação:Já vi exemplos no site aqui que mostram em forms em tempo real, porém não imprimem, e não tem a mesma dimensão em impressão... por isso gostaria que me ajudassem já no formato para impressão.
Ainda estou com muitas dúvidas...
tenho um exemplo de cupom de venda fiz apartir do exemplo que nosso amigo acima se refere. poste sua dúvida em relação ao código e não fique qurendo pronto.
Você terá que alterar as propriedades CurrentX e CurrentY para alterar a posição X (horizontal) e Y (vertical), respectivamente. Para utilizar estas propriedades é necessário alterar também a propriedade ScaleMode para alterar a escala, por exemplo, para centÃmetros. Ex:
Printer.ScaleMode = vbCentimeters
Printer.CurrentX = 2 [ô]a 2 cm na horizontal
Printer.CurrentY = 2 [ô]a 2 cm na vertical
Printer.Print [Ô]Este texto está a 2 cm da esquerda e 2 cm de cima.[Ô]
Printer.CurrentX = 2 [ô]a 2 cm da horizontal
Printer.CurrentY = 4 [ô]a 4 cm de cima
Printer.Print [Ô]Este texto está a 2 cm da esquerda e 4 cm de cima.[Ô]
Printer.EndDoc [ô]Começa a imprimir
Eu particulamente uso print
Sub imprimir_empresas()
Dim rsEmpresas As ADODB.Recordset
Dim I As Integer
I = FreeFile
Open App.Path & [Ô]\Relatorios\[Ô] & [Ô]Empresas[Ô] & [Ô].txt[Ô] For Append As I
Print #I, Tab(1); [Ô]Relatório Débitos Empresa Convêniadas[Ô]; Tab(65); Format(Date, [Ô]dd/mm/yyyy[Ô])
Print #I, [Ô]--------------------------------------------------------------------------------[Ô]
Print #I, [Ô][Ô]
Print #I, [Ô][Ô]
Call Conexao_Conectar_Banco
Set rsEmpresas = CONN.Execute([Ô]Select emp_codigo, emp_razaosocial, emp_nomefantasia, emp_endereço, emp_bairro, emp_cidade from cadempresa order by Emp_razaosocial[Ô])
[ô][ô]where emp_codigo = [Ô] & int_Empresa)
Do While Not rsEmpresas.EOF
Print #I, Tab(1); [Ô]|Empresa[Ô]; Tab(15); [Ô]|[Ô]; rsEmpresas!EMP_RAZAOSOCIAL
Print #I, Tab(1); [Ô]|Nome Fantasia[Ô]; Tab(15); [Ô]|[Ô]; rsEmpresas!emp_nomefantasia
Print #I, Tab(1); [Ô]|Endereço[Ô]; Tab(15); [Ô]|[Ô]; rsEmpresas!EMP_ENDEREÇO; Tab(60); [Ô]|Bairro[Ô]; Tab(68); [Ô]|[Ô]; rsEmpresas!EMP_BAIRRO
Print #I, Tab(1); [Ô]|Cidade[Ô]; Tab(15); [Ô]|[Ô]; rsEmpresas!EMP_CIDADE
Print #I, [Ô][Ô]
Print #I, [Ô][Ô]
Print #I, [Ô][Ô]
rsEmpresas.MoveNext
Loop
CONN.Close
Set rsEmpresas = Nothing
End Sub
Adapte a sua necessidade!!!
ai vc pode definir todas as propriedades
do texto,labels,fonte,cores e etc...
e imprimir exatamente como é visto
tenta ai
mas se alguém puder me ajudar.. o Script para o cupom que estou usando é este:
Citação:
Printer.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Printer.Print Tab((40 - Len(Empresa)) / 2); Empresa [ô]Centraliza N. Empresa
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab((40 - Len(Rua)) / 2); Rua [ô]Centraliza Rua
Printer.Print Tab((40 - Len(Dados)) / 2); Dados [ô]Centraliza Dados Adicionais
Printer.Print Tab((40 - Len(Cit)) / 2); Cit [ô]Centraliza Cidade
[ô] Fonte 12, True, False
Printer.Print Tab(10); [Ô]COMPROVANTE DE EMPRéSTIMO[Ô]
[ô] Fonte 10, False, False
Printer.Print Tab(2); Format(Date, [Ô]dd/mm/yyyy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô]);
CurrentY = 2150 [ô]Vai para a coluna do Form escolhida
[ô] Fonte 12, False, True
[ô] Fonte 10, False, False
Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô] Código Aluno SérieSala[Ô]
Printer.Print [Ô] Código Livro[Ô]
Printer.Print String(40, [Ô]-[Ô])
Printer.Print Tab(2); txtCodAluno.Text; Tab(11); Mid(txtAluno.Text, 1, 26); Tab(28); txtSerie.Text [ô]Limita a 26 letras
On Error Resume Next
Printer.Print Tab(5); txtCodLivro.Text; Tab(13); Mid(txtLivro.Text, 1, 25);
Printer.Print String(40, [Ô]-[Ô])
Printer.Print [Ô]Data de Devolução:[Ô]; Tab(28); txtDevolucao.Text
Printer.Print String(40, [Ô]-[Ô])
Se alguém puder me ajudar alinhando-o... agradeço...
OUTRA COISA...
Alguém sabe me dizer como imprimir naquela fonte que os programas em clipper imprimiam,... a agilidade e simplicidade na impressão seria interessante....
tente isso
coloca uma picturebox em seu projeto e tenta esse codigo
Picture1.Cls
Picture1.Print String(40, [Ô]-[Ô]) [ô]Faz uma Linha
Picture1.Print Tab((40 - Len(txtEmpresa.Text)) / 2); txtEmpresa.Text [ô]Centraliza N. Empresa
Picture1.Print String(40, [Ô]-[Ô])
Picture1.Print Tab((40 - Len(Rua)) / 2); Rua [ô]Centraliza Rua
Picture1.Print Tab((40 - Len(Dados)) / 2); Dados [ô]Centraliza Dados Adicionais
Picture1.Print Tab((40 - Len(Cit)) / 2); Cit [ô]Centraliza Cidade
[ô] Fonte 12, True, False
Picture1.Print Tab(10); [Ô]COMPROVANTE DE EMPRéSTIMO[Ô]
[ô] Fonte 10, False, False
Picture1.Print Tab(2); Format(Date, [Ô]dd/mm/yyyy[Ô]); [Ô] [Ô]; Format(Time, [Ô]hh:mm:ss[Ô])
CurrentY = 2150 [ô]Vai para a coluna do Form escolhida
[ô] Fonte 12, False, True
[ô] Fonte 10, False, False
Picture1.Print String(40, [Ô]-[Ô])
Picture1.Print Tab(2); [Ô]Código[Ô]; Tab(11); [Ô]Aluno[Ô]; Tab(28); [Ô]SérieSala;[Ô]
Picture1.Print Tab(2); txtCodAluno.Text; Tab(11); Mid(txtAluno.Text, 1, 26); Tab(28); txtSerie.Text [ô]Limita a 26 letras
Picture1.Print String(40, [Ô]-[Ô])
Picture1.Print Tab(2); [Ô]Código[Ô]; Tab(11); [Ô] Livro;[Ô]
Picture1.Print Tab(2); txtCodLivro.Text; Tab(11); Mid(txtLivro.Text, 1, 25)
Picture1.Print String(40, [Ô]-[Ô])
Picture1.Print [Ô]Data de Devolução:[Ô]; Tab(20); txtDevolucao.Text
Picture1.Print String(40, [Ô]-[Ô])
ai se ficar legal é só mandar para impressora