EXECUTAR MAIS QUE UM PRINTFORM PARA COMPOR UMA PAG

WANTED 09/10/2009 11:51:36
#324884
Bom dia!

Alguem conhece um modo de efetuar mais de um [Ô]me.printform[Ô] para compor uma página?

Meu problema é o seguinte, preciso imprimir boletos, porém só preciso da ficha de compensação, e considerando o tamanho dela, é possível imprimir até 3 fichas de compensação por página.

Problemas:
1 - Pelo método [Ô]me.printform[Ô], só consigo imprimir a área do cliente, logo se eu fizer um form com 3 boletos ele corta o início do terceiro boleto, pois o form é menor que os 3 boletos...
2 - Fiz um form com um único boleto, e fui armazenando as impressões em uma picturebox e enviava com o paintpicture para a impressora a cada 3 boletos. Isso funcionou, porem a impressão é de baixa qualidade e o boleto sai todo distorcido.

Imaginei algo do tipo, porém não consegui fazer:
Com o form que possui apenas um único boleto, imaginei realizar o me.printform 3 vezes e por fim um printer.enddoc. Algo Assim:
me.printform
me.printform
me.printform
Printer.EndDoc

Porem isso não funciona, pois o printform [Ô]entende[Ô] que a cada printform realizado é uma nova página, logo, fazendo isso saem 3 páginas com um boleto em cada uma...

Pensei em ir imprimindo o boleto linha a linha e enviando para a impressora, mas contem labels, lines, picturebox com código de barras etc, vai dar muito trabalho e sem a garantia que vai ficar bom, por isso pensei na saída de mais de um printform por página, pois a qualidade é boa e já está tudo pronto...

Alguem tem alguma idéia, ou outro método que resolva?

Obrigado!
DAVIDNUNES 09/10/2009 13:17:10
#324894
Não daria certo criar um 4 form que puxe os dados dos outros 3 forms?
WANTED 09/10/2009 13:22:51
#324895
DAVIDNUNES, não dá, pois volto ao começo novamente... Como vou imprimir os três boletos após o 4º form tê-los recebido???
MARCELO.TREZE 09/10/2009 13:27:07
#324896
Resposta escolhida
Minha dica é configure a a pagina para o tamanho do Boleto e faça um for para imprimir 03 vezes

exemplo:

Printer.PaperSize = vbPRPSUser [ô]definida pelo usuário
Printer.Height = [ô]altura da folha
Printer.Width = [ô]largura da folha
For f=1 to 3
Me.PrintForm
Next f
Printer.EndDoc

tente isto
WANTED 09/10/2009 14:20:41
#324902
Marcelo, valeu, mas não funciona, o resultado é o mesmo, 3 páginas com um boleto cada...
MARCELO.TREZE 09/10/2009 14:24:40
#324904
Me diz uma coisa você já tentou aumentar o form pra caber os tres boletos.

não sei como vc está fazendo mas esta é uma opção

a pagina que vc deseja imprimir está dentro de um MDIForm?


WANTED 09/10/2009 14:34:51
#324906
Marcelo, o problema é esse, os três boletos são grandes demais para um form, se não fosse isso, um único form com os três e um único [Ô]Me.PrintForm[Ô] resolveria.
O detalhe é que, como coloquei, é que para um forme é grande, mas não para um A4. Entendeu? No A4 cabem os 3, pois já fiz o teste utilizando uma picturebox, porem a resolução é muito ruim, o usuário vai reclamar...
DAVIDNUNES 09/10/2009 14:52:24
#324909
Coloca um exemplo anexado ai para entender melhor
MARCELO.TREZE 09/10/2009 15:09:13
#324913
Bom você vai fazer o seguinte, coloque um MDI form no seu projeto, mude o nome para mdiImpressao.

Neste form que você está usando para imprimir mude a propriedade mdichild para True.

no mdiImpressao coloque uma toolbar, com dois botoes um para imprimir e outro para sair.

o form que vc está usando para imprimir não possui o mesmo tamanho da folha A4 então vamos resolver este problema.

o Tamanho do form é definido em Twips e a Folha em Milimetros, então teremos de fazer uma conversão para termos o tamanho exato do form como a folha A4.

então vamos a conversão, 01 milimetro possui 56.7 Twips, multiplicando-se o tamanhoem militros por 56.7 teremos o tamanho do form

210 * 56.7 = 11907
297 * 56.7 = 16840

então o form deverá ser configurado da seguinte maneira

.Height = 16840 [ô]altura
.Width = 11907 [ô]Largura

bom agora basta colocar os seus boletos e e pronto.

veja este exemplo que fiz pra vc entender melhor

no form1 coloque os seus boletos veja se cabe, e faça o teste
WANTED 09/10/2009 15:10:07
#324914
David, não tem muito o que exemplificar, é um formulário com as seguintes dimensões:

Height = 6540
Width = 11580

Quero efetuar 3 prints dele em uma mesma página, pois não é possível colocar 3 deles no mesmo form. Entendeu?

A altura máxima suportada para um form é 15360, falta um pouco, mas não atende, o necessário seria 19620. Acredito que esta altura esteja relacionada com a área do cliente, logo se eu pegar um usuário do tipo [Ô]cegueta[Ô] que usa um monitor de 14[Ô] com resolução de 800x600 vai reduzir mais ainda estas dimensões.


DAVIDNUNES 09/10/2009 15:26:06
#324917
Ve se esse exemplo resolve não sei se ajuda mais tamo tentando
Página 1 de 2 [12 registro(s)]
Tópico encerrado , respostas não são mais permitidas