IMPRIMIR EM FOLHA CONTINUA
O Objeto printer tem muitos métodos e propriedades. Provavelmente a propriedade que configura o tamanho do papel está errada
no windows XP só tem como configurar a pagina via PRINT se for A4, carta..
nao tem como ser definido como eu quero
tentei assim: Printer.PaperSize = vbPRPSUser
ocorre erro. Propriedade invalida.
nao tem como ser definido como eu quero
tentei assim: Printer.PaperSize = vbPRPSUser
ocorre erro. Propriedade invalida.
olha amigo usa o print mesmo, no teu caso como não tem tamanho definido. fica melhor !!
Citação::
olha amigo usa o print mesmo, no teu caso como não tem tamanho definido. fica melhor !!
tudo bem.. eu uso print.. sem problemas... o tamanho ai nao é problema..
mas ja expliquei que com print nao consigo fazer o que postei por ultimo...

NO BANCO DE DADOS TEM O SEGUINTE:
linha | coluna | desc_campo | campo_resultado
1 | 1 | Nome Cliente: | nome_cliente
2 | 1 | Endereço: | endereco_cliente
2 | 20 | Bairro: | bairro_cliente
VOU IMPRIMIR DESSA FORMA:
Print #1, Tab(TB!coluna) ; TB!desc_campo & [ô] [ô] & TB!campo_resultado;
se eu colocar um LOOP ele vai imprimir todos os campos na coluna certa, conforme o banco de dados.. mas nao na linha certa .. pois a cada PRINT ele avança uma linha
quero saber como tambem controlar a linha como se controla a coluna (TAB).. ou alguma gambiarra que de certo
linha | coluna | desc_campo | campo_resultado
1 | 1 | Nome Cliente: | nome_cliente
2 | 1 | Endereço: | endereco_cliente
2 | 20 | Bairro: | bairro_cliente
VOU IMPRIMIR DESSA FORMA:
Print #1, Tab(TB!coluna) ; TB!desc_campo & [ô] [ô] & TB!campo_resultado;
se eu colocar um LOOP ele vai imprimir todos os campos na coluna certa, conforme o banco de dados.. mas nao na linha certa .. pois a cada PRINT ele avança uma linha
quero saber como tambem controlar a linha como se controla a coluna (TAB).. ou alguma gambiarra que de certo
MAICONJG, humildade não faz mal a ninguem .. e grosseria não leva ninguem a lugar nenhum
O XP não aceita formatar a folha através do PRINT. Vc precisa definir o tamanho personalizado dessa folha nas propriedades do servidor de impressão.
Não dá pra ser feito através de programação!!! é preciso definir manualmente o tamanho
O XP não aceita formatar a folha através do PRINT. Vc precisa definir o tamanho personalizado dessa folha nas propriedades do servidor de impressão.
Não dá pra ser feito através de programação!!! é preciso definir manualmente o tamanho
mas até agora ninguem me deu uma resposta no qual realmente funcionaria...
com PRINT consigo programar, mas nao consigo controlar a linha...só as colunas
com PRINTER nao consigo configurar o tamanho da pagina...
realmente estou perdido. Nao sei qual usar.
Acabei de fazer tudo com PRINT, mas as LINHAS que o PRINT [Ô]Salta[Ô] é diferente das linhas do formulario... entao precisaria utilizar PRINTER..
mas como nao avançar tanto papel do final do formulario???
com PRINT consigo programar, mas nao consigo controlar a linha...só as colunas
com PRINTER nao consigo configurar o tamanho da pagina...
realmente estou perdido. Nao sei qual usar.
Acabei de fazer tudo com PRINT, mas as LINHAS que o PRINT [Ô]Salta[Ô] é diferente das linhas do formulario... entao precisaria utilizar PRINTER..
mas como nao avançar tanto papel do final do formulario???
1º Vc PRINT é um método do objeto PRINTER, portanto 2 coisas diferentes
2º Acho que vc não está lendo as respostas
Pra posicionara correto, eu já falei antes pra usar CurrentX e CurrentY para cada campo que vc irá inserir no formulário
Sobre o tamanho da folha, eu já expliquei que o XP não aceita que isso seja feito através do PRINTER, é preciso definir um Papel no Servidor de Impressão da Impressora
Dê uma olhada nesse artigo do Macoratti, uma das melhores explicações sobre uso do objeto PRINTER:
http://www.macoratti.net/printer.htm
Eu utilizo o objeto PRINTER nos meus relatorios e layouts para Nota Fiscal
2º Acho que vc não está lendo as respostas
Pra posicionara correto, eu já falei antes pra usar CurrentX e CurrentY para cada campo que vc irá inserir no formulário
Sobre o tamanho da folha, eu já expliquei que o XP não aceita que isso seja feito através do PRINTER, é preciso definir um Papel no Servidor de Impressão da Impressora
Dê uma olhada nesse artigo do Macoratti, uma das melhores explicações sobre uso do objeto PRINTER:
http://www.macoratti.net/printer.htm
Eu utilizo o objeto PRINTER nos meus relatorios e layouts para Nota Fiscal
Citação::
1º Vc PRINT é um método do objeto PRINTER, portanto 2 coisas diferentes
2º Acho que vc não está lendo as respostas
Pra posicionara correto, eu já falei antes pra usar CurrentX e CurrentY para cada campo que vc irá inserir no formulário
Sobre o tamanho da folha, eu já expliquei que o XP não aceita que isso seja feito através do PRINTER, é preciso definir um Papel no Servidor de Impressão da Impressora
Dê uma olhada nesse artigo do Macoratti, uma das melhores explicações sobre uso do objeto PRINTER:
http://www.macoratti.net/printer.htm
Eu utilizo o objeto PRINTER nos meus relatorios e layouts para Nota Fiscal
1º - quando eu falo do PRINT nao estou me referindo ao objeto PRINTER (Printer.print)... eu me refiro impressao direta para a impressora (Print #1, [Ô][Ô])
2º - Estou lendo sim, todas as respostas, porem, o pessoal parece estar respondendo sem ler as duvidas, metade dos usuarios indica PRINT #1, e outra metade indica PRINTER.
3º - esse link do macoratti eu ja li todinho, inclusive no meu do artigo ele explica sobre Print #1,
4º - realmente com PRINT #1, nao achei maneira nenhuma de controlar a impressao, vou ter com printer.
5º - obrigado, e desculpe qualquer coisa
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
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