CONFIGURACAO DE IMPRESSAO DE RECIBO

MICHAELL 01/07/2010 16:26:33
#346312
olá boa tarde pessoal..

ja vi em alguns sistemas, aonde é possivel o usuario configurar os campos da impressao de um recibo apenas arrastando os campos, s em precisar informar altura ou largura dos campos aonde vai ser impresso.

Alguem sabe se existe algum componente que faça isso? se nao existe, como é feito esse processo?

obrigado
FEDERHEN 02/07/2010 13:13:21
#346391
Não conheço nenhum componente, mas tenho um amigo que fez alguma coisa neste estilo.
Ele criou um form com um picturebox e dentro colocou labels representando os campos do documento (no teu caso, os campos do recibo)
Para pocisionar é só arrastar os labels dentro da picturebox e depois guarda a pocisão de cada label.
MICHAELL 02/07/2010 17:13:52
#346405
estou utilizando assim

Print #1, Tab(10); [Ô]1º texto[Ô];
Print #1, Tab(10); [Ô]2º texto[Ô];

mas esta imprimindo assim:

1º texto
2º texto

teria como ficar na mesma minha, sem eu utilizar assim

Print #1, Tab(10); [Ô]1º texto 2º texto[Ô];

queria dar varios print mas salvar a linhar só quando eu solicitasse. Pois tudo na mesma linha fica algo meio embaralhado

FEDERHEN 02/07/2010 17:56:25
#346417
Pode utilizar assim:

Printer.CurrentX = 100
Printer.CurrentY = 300
Printer.Print [Ô]TEXTO[Ô]

Printer.EndDoc


MICHAELL 03/07/2010 04:08:35
#346437
Citação:

:
Pode utilizar assim:

Printer.CurrentX = 100
Printer.CurrentY = 300
Printer.Print [Ô]TEXTO[Ô]

Printer.EndDoc





mas tenho que utilizar PRINT e nao PRINTER...

com printer ele solta papel no final ate completar uma folha de oficio.. e nao pode ser assim
MICHAELL 20/07/2010 16:06:25
#347951
Bem, quero deixar aqui a solução de um dos problemas mais discutidos aqui no forum.

Muitos aqui, inclusive eu, ja tivemos a grande dificuldade com o objeto PRINTER.PRINT. Parece não existir uma maneira de configurar a impressora matricial para NÃO avançar a

folha demais no final da impressão, principalmente quando é utilizado folha de papel continua. No final da impressão, o papel avança exatamente o tamanho de uma folha A4. Então

voce troca o tipo de folha para CARTA e observa que não mudou absulutamente nada? sim, isso acontece.

Bem, existe sim uma solução, no qual encontrei na internet aos poucos e então montei um quebra cabeça.

1º - Antes de imprimir utilizando o objeto printer, voce deve primeiro escolher o tipo de escala = TWIPS.
Não adianta utilizar escala em centimetros, milimetros, polegadas, que não vai funcionar.
Exemplo: Printer.ScaleMode = vbTwips

2º - Voce deve definir o tamanho da folha nas propriedades width e height do objeto printer.
Exemplo: Printer.Width = 21.6 * 567 (multipliquei por 567, pois cada 567 twips equivale a 1cm)

3º - Voce deve criar no servidor de impressão do windows o tipo de formulário que voce deseja imprimir.
Para isso, faça o seguinte:
- Acesse painel de controle > impressoras
- Clique no menu arquivo > Propriedades do servidor
- Adicione um novo formulario e selecione nas propriedades da impressora
- Não se esqueça de clicar no botao Salvar Formulario.
- Existe limite minimo na altura, para que o formulario apareça nas propriedades da impressora. Dependendo do drive da impressora pode não aparecer se voce configurar

um papel for muito pequeno. Nesse caso deve-se tentar utiliza um outro drive.
- Se voce configurar um tamanho do papel menor que da impressão, a impressao ficará cortada

4º - Voce deve selecionar o formulario criado nas propriedades da impressora.
Para isso, faça o seguinte:
- Acesse painel de controle > impressoras
- Clique com o botao direto na impressora desejada > propriedades
- Acesse a guia Configuracoes do dispositivo e selecione o formulario criado
- Acesse a guia Geral > no botao Preferencia da impressao > guia Papel / Qualidade > no botao avançado e selecione o papel / formulario criado

5º - No final da impressão, antes de EndDoc, envie o comando de nova pagina. Dessa forma a impressora vai avançar até a proxima folha e ainda deixara um espaço para voce

destacar a folha. Quando voce mandar imprimir novamente, a impressora recolhe automaticamente o que deixou de espaçamento e começa a imprimir normalmente. Se voce nao informar

essa nova pagina, esse espaçamento não acontecerá. Exemplo: Printer.NewPage

Segue abaixo um exemplo:

Printer.ScaleMode = vbTwips
Printer.Width = 21.6 * 567 [ô] largura da folha
Printer.Height = 27.9 * 567 [ô] altura da folha
Printer.Print [Ô]Qualquer texto[Ô]
Printer.NewPage
Printer.EndDoc

Essa solução que postei, serve mais para aqueles que desejam imprimir em formulario continuo, pois deve-se definir o tamanho do papel.
Não consegui fazer por exemplo parar a impressão exatamente aonde termina a impressão, assim como funciona com o PRINT. Se alguem souber, poste ai pra nós.
Bem, espero ter ajudado e ajudar a muitos que terão essa mesma duvida.
Abraço a todos
Tópico encerrado , respostas não são mais permitidas